OpenSSL を使用して private/public/(Certificate Signing Request) を生成し、後でデータに署名したいと考えています。しかし、 OpenSSL GOST エンジンを使用したいのです。
OpenSSL 1.0.0をダウンロードし、 openssl.cfgファイルを変更しました。
openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = ./gost.dll
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
秘密鍵と CSR ( 1 行のコマンド文字列)を生成できます。
openssl req -newkey gost2001 -pkeyopt paramset:A -passout pass:aofvlgzm \
-subj "/C=RU/ST=Moscow/L=Moscow/O=foo_bar/OU=foo_bar/CN=developer/ \
emailAddress=vany.egorov@gmail.com" \
-new > certificate_signing_request.csr
私は2つのファイルを取得します:
- certificate_signing_request.csr
- privkey.pem
私はできることを知っています(秘密鍵と公開鍵の(暗号化されていない)テキスト表現を出力します):
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -text
私はRSAの代わりにGOSTを使用しているため、次のことができません。
openssl rsa -in privkey.pem -pubout -out pubkey.pem
Enter pass phrase for privkey.pem:
6132:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting an rsa key:.\crypto\evp\p_lib.c:288:
私の質問は次のとおりです:gostを使用して公開鍵(秘密鍵またはcsrからmabye)を生成/取得するにはどうすればよいですか?
私が使う:
- Windows 7 プロフェッショナル x64;
- OpenSSL 1.0.0;
- ゴストエンジン。
助けてくれてありがとう。