2017-08-25 12 views
1

RSA鍵ペアを生成し、pubkeyパラメータ(モジュラスと指数、nとe)を記録したり、既存のキーセット(der形式)からパラメータを取得したり、私自身のパラメータのpubkeyペア。RSA鍵ペアからパラメータを取得する

私はtrying to do the first with Crypto++でしたが、吐き出したものはopensslによって無効と報告されています。 Crypto ++のwikiとdocのページは今晩もダウンしました!

次に、Crypto ++で作成されたランダムキーパラメータのいくつかを使用してopensslでキーペアを生成する方法を研究しましたが、数時間後にすべてのコマンドライン引数を解読しようとしています。

これはセキュアなキーではなく、JWKから(n、e)ペアとしてpubkeysを取得し、実際に署名を正しく検証できることを確認する必要があるプロジェクトの単体テストの単なる動作テストです。しかし、それを行うにはプライベート・デールとパブリック(n、e)が必要です。鍵ペアを生成するときにキー・パラメータをログに記録するために、opensslラッパー・ライブラリの1つを使用するよりも簡単な方法が必要です。

+1

JWKキーを使用している場合は、['Base64URLEncoder'](https://www.cryptopp.com/wiki/Base64URLEncoder)と[' Base64URLDecoder'](https://www.cryptopp.com)があります。/wiki/Base64URLDecoder)が役に立ちました。彼らはエンコードとデコードのためのWeb安全なアルファベットを使用します。 – jww

+1

* "今夜はCrypto ++ wikiとdocページもダウンしていませんでした!"どうしたのか分かりませんが、ファイル所有者は 'root:apache'から' root:root'に変更されました。 wikiのtempディレクトリが 'images/temp'から' images/tmp'に変更されました。私は他の管理者と話しましたが、誰もサイトを変更しませんでした。私たちは何が起こったのか分からない。 – jww

答えて

1

私は(リンクGitHubのから)暗号++で最初にやろうとしたが、opensslので無効とそれが吐き出すdersが報告されている...

RSA::PublicKey publicKey(params); 
FileSink pubsink("pubkey.der"); 
publicKey.DEREncode(pubsink); 

subjectPublicKeyInfoを保存する場合は、publicKey.Saveを使用してください。 subjectPublicKeyInfoは、あなたが考えているRSAキーとOIDやバージョン番号のような外側のX.509パッケージです。


は、私はその後作られたランダムキーパラメータのCrypto ++のいくつかを使用してのopensslで鍵ペアを生成する方法を研究しようとしたが、数時間後、私はまだすべてのコマンドライン引数を解読しようとしてこだわっています。

Keys and Formatsは、Crypto ++ wikiの参考になるかもしれません。また、OpenSSLおよびGnuTLSコマンドも提供します。私は、RSA鍵ペアを生成し、pubkeyでパラメータ(係数および指数、nおよびe)をログに記録するかしたい


、(DER形式で)キーの既存のセットのうちのパラメータを取得または生成します私自身のパラメータからpubkeyペア。バックの周りにこれまでのループに

... RSA CryptographyRSA Encryption SchemesRSA Signature Schemesでwikiに例がたくさんあります。

一般に、Crypto ++はASN.1/DERのすべてのキーをエンコードします。 LoadおよびSaveは「件名情報」部分を提供し、DEREncodeおよびは、「生の鍵」部分のみを提供します。再び、Keys and Formatsを見てください。

PEMでエンコードされたキーを処理する場合は、PEM Packが必要です。そのアドオンは、それをダウンロードしてから、PEM Packを付属してライブラリを構築する必要があります。

具体的なデータを入力すると、処理しようとしている16進数のエンコードされたキーのように、何をすべきかについてもっと詳しく言うことができます。

関連する問題