/ / OpenSSL com o mecanismo GOST - openssl, gost3410

OpenSSL com motor GOST - openssl, gost3410

Eu quero usar o OpenSSL para gerar private / public / (Certificate Signing Request) e assinar alguns dados mais tarde. Mas eu quero usar Mecanismo OpenSSL GOST.

Eu baixei o OpenSSL 1.0.0 e modificado openssl.cfg Arquivo:

    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

Eu posso gerar chave privada e CSR (string de comando de linha única):

    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

Eu recebo 2 arquivos:

  • certificate_signing_request.csr
  • privkey.pem

Eu sei que posso fazer (imprime uma representação de texto (sem criptografia) de chaves privadas e públicas):

    openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -text

Eu uso GOST em vez de RSA é por isso que não posso fazer apenas:

    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:.cryptoevpp_lib.c:288:

Minha pergunta é: como eu posso gerar / obter chave pública (mabye da chave privada ou do csr) usando o gost?</ strong>

Eu uso:

  • X64 profissional do Windows 7;
  • OpenSSL 1.0.0;
  • Motor Gost.

Obrigado por qualquer ajuda.

Respostas:

17 para resposta № 1

Eu resolvi meu problema.

Guia passo a passo para todos que querem uma alternativa КРИПТО-ПРО

Solicitação de Assinatura de Certificado (CSR) + chave privada

./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" -keyout private.key.pem -out csr.csr

Assine CSR (csr.csr) com private.key.pem (!!! ADMIN COMMAND PROMT ONLY !!!)

se não for admin: "incapaz de escrever" estado aleatório ""

./openssl x509 -req -days 365 -in csr.csr -signkey private.key.pem -out crt.crt

Obter chave pública

./openssl x509 -inform pem -in crt.crt -pubkey -noout > public.key.pem

Obter hex GOST2001-md_gost94

./openssl.exe dgst -hex -sign private.key.pem message.xml

Obter o aplicativo MIME / x-pkcs7-signature

./openssl smime -sign -inkey private.key.pem -signer crt.crt -in message.xml