2012-07-18 54 views
5

RSA署名を検証したいと思います。私は検証するデータ、署名、モジュラスと指数の形式の公開鍵を持っています。私はopensslを使って検証したいと思います。出来ますか?私はopenssl rsautl -verify -in sig -inkey key.pemを使うことができると知っていますが、私はどのように(opensslを使って)それがモジュラスと指数を持つ公開鍵を作るのか分かりません。モジュラスと指数からrsa公開鍵を作成する

他のアイデアこの署名をチェックする方法(いくつかのプログラムを書くことを除いて)?

+1

のいずれかを使用することができ、あなたのキー

を使用して確認してくださいPEMキー

openssl rsa -in pubkey.der -inform der -pubin -out pubkey.pem 

に変換あなたが知っているだろう[FAQ](http://stackoverflow.com/faq)を読んでいればどのようなstackoverflowのためです。 –

+0

GregS:そうではありません:)私はそれを行うプログラムを持っていますが、私のクライアントの主張は正しく動作しません。彼が間違っていることを彼に証明するために、私のプログラムのように、openssl(彼が信じることができる)が同じように動作することを示したいと思います。 – emstol

+0

与えられたモジュラスと指数からRSA *構造を使いたいですか? – doptimusprime

答えて

-1

manページがこのすべてあなたが生の鍵をしたいと仮定し

# generate private key 
openssl genrsa > key.priv 

# use it to sign something 
echo "Dirk should be given $10" | openssl rsautl -inkey key.priv -sign > msg.sig 

# create a pub key (modules, exp) from the private key 
openssl rsa -pubout <key.priv> key.pub 

# use that to verify the signature. 
openssl rsautl -in msg.sig -verify -inkey key.pub -pubin 

の下にあなたを与える必要がありますチェック。あなたのコメントを正しく理解していれば、通常のフォーマットのmodules/expがないようです。したがって、まず通常のツールで使用するには、ASN.1 にパッケージする必要があります。

このためには、c/java/etcコードを記述する必要があります。これを行う簡単な方法は、opensslライブラリを使うことです。 RSA *構造体に記入してください。

+1

私の問題をどのように解決するのか分かりません。私はモジュラスと指数の2つの数字しか持っていません。そして、それらの数字に基づいて作成された公開鍵を含むファイルkey.pubを作成したいと思います。他に何もない。私はこの質問をずっと前に聞いていましたが、それをどうやって行うのかまだ分かりません。 – emstol

+0

通常のBERパッケージに含まれていないモジュールと指数がないと仮定すると、パッケージするためにASN.1パッケージを作成する必要があります。 –

4

opensslで使用するPEM形式のRSA暗号キーを生成するには、次の手順を実行します。

ASN1定義ファイルを作成します

あなたの係数および指数

​​

代わりの編集を含めるために、次のテンプレートを変更し、あなたはまた、スクリプトにこのsedの

を使用したい場合があります
sed -i "s/%%MODULUS%%/$(xxd -ps -c 256 mymodulus.bin)/" def.asn1 

-c 256はキーの長さに応じてバイト単位で選択されます。

指数にも同様のコマンドを使用できます。

あなたのRSAキー

次のopensslコマンドを使用を生成します。これにより、DERでエンコードされたRSAキーが得られます。その後

openssl asn1parse -genconf def.asn1 -out pubkey.der -noout 

あなたは、いくつかを書い除いて...「openssl dgst -verifyまたはopenssl rsautl -verify

関連する問題