0

JKJS

所見:

次のコマンドで RSA 秘密鍵が作成されたとします。

openssl genrsa -out mykey.pem 1024

次に、Cでそのファイルからキーを読み取るのに問題はありません:

RSA *privatekey=NULL;
privatekey=PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);
if(privatekey==NULL)
ERR_print_errors_fp(stderr);

ただし、次のコマンドで RSA キーペアを作成した場合:

openssl req -newkey rsa:1024 -sha1 -keyout mykey.pem -out rootreq.pem

次に mykey.pem から読み取るとエラーになります。なんで?

JKJS ハーディク

4

1 に答える 1

1

2 番目のコマンドで、パスフレーズを指定しましたか? 任意のエディターで 2 番目のコマンドによって作成されたキーを開きます。Hader に ENCRYPTED が表示されますか?

PEM_read_RSAPrivateKeyはいの場合、 3番目のパラメーターをNULLとして渡しているため、それを使用して読み取ることができないのはそのためです。

への呼び出しでパスワードを取得するためのコールバックを渡しますPEM_read_RSAPrivateKey

または、次のコマンドを使用してキーからパスワードを削除できます

openssl rsa -in mykey.pem -out mykey1.pem.

これにより、パスフレーズが求められます。正しいパスフレーズを入力すると、暗号化されていない形式のキーがmykey1.pem

于 2012-12-01T13:11:30.737 に答える