openssl gost3410

OpenSSL con motor GOST



gost3410 (1)

Quiero usar OpenSSL para generar private / public / (solicitud de firma de certificado) y para firmar algunos datos más adelante. Pero quiero usar el motor OpenSSL GOST .

Descargué OpenSSL 1.0.0 y modifiqué el archivo 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

Puedo generar clave privada y CSR ( cadena de comando de una sola línea ):

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/ / [email protected]" / -new > certificate_signing_request.csr

Obtengo 2 archivos:

  • certificate_signing_request.csr
  • privkey.pem

Sé que puedo hacer (imprime una representación de texto (sin cifrar) de claves privadas y públicas):

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

Utilizo GOST en lugar de RSA y es por eso que no puedo hacer lo siguiente:

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:

Mi pregunta es: ¿cómo puedo generar / obtener una clave pública (mabye desde una clave privada o desde csr) usando gost?

Yo suelo:

  • Windows 7 profesional x64;
  • OpenSSL 1.0.0;
  • Motor de Gost .

Gracias por cualquier ayuda.


Resolví mi problema.

Guía paso a paso para todos los que quieran una alternativa a КРИПТО-ПРО

Solicitud de firma de certificado (CSR) + clave 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/[email protected]" -keyout private.key.pem -out csr.csr

Firme CSR (csr.csr) con private.key.pem (¡ADMIN COMMAND PROMT SOLAMENTE!)

si no admin: "no se puede escribir ''estado aleatorio''"

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

Obtener clave pública

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

Obtener GOST2001-md_gost94 hex

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

Obtenga la aplicación MIME / x-pkcs7-signature

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