¿Puedo obtener una huella digital de una clave ec, usando openssl?

2

¿Puedo obtener una huella digital de una clave ec, usando openssl?

Ejecutar me openssl ec -in keys/secp256k1.pub.pem -fingerprintda un error diciéndome que -fingerprintno es una opción.


fuente
Las claves públicas de la CE ya tienen aproximadamente la longitud de las funciones hash utilizadas para las huellas digitales.
otus
@otus ¿Por lo tanto, no hay un estándar para las huellas digitales de la CE?
@otus Puede que ese no sea el caso para toda la clave codificada, suponiendo que contenga al menos el nombre (u OID) de los parámetros del dominio o, lo que es peor, los parámetros mismos (+ ASN.1 sobrecarga).
Maarten Bodewes
1
No hay un estándar. Las huellas digitales a menudo se usan para certificados X.509 , pero eso no es lo mismo que la clave pública. Los certificados X.509 a menudo contienen un hash del valor de clave pública como SubjectKeyId (y AuthorityKeyId en un certificado secundario), pero esto no se llama huella digital, y el formato que OpenSSL usa para una clave pública (separada) es el SubjectPublicKeyInfo (SPKI) de X.509, que no es el valor correcto para el hash. SSH utiliza con frecuencia las huellas digitales de las nuevas claves públicas del servidor para la verificación manual (supuestamente), para todos los algoritmos compatibles (RSA DSA y ECDSA), ...
dave_thompson_085
1
... utilizando el formato de clave pública SSH que es diferente de OpenSSL. PGP define la huella digital como un hash de la clave pública en formato de paquete PGP, diferente de SSH o OpenSSL; De nuevo, esto es lo mismo para todos los algoritmos, y ECC se especificó recientemente para PGP y todavía no se usa mucho. En el PGP moderno, el keyid para una clave son los bits bajos de la huella digital, y a menudo se usa el keyid en lugar de la huella digital completa. Respuesta corta: puedes hacer X.509 SKI con línea de comandos y un pequeño truco; podría hacer los otros con libcrypto y código, pero los programas SSH y PGP son más fáciles.
dave_thompson_085 17/10/2015

Respuestas:

0

Esto funciona para mi:

openssl x509 -noout -pubkey -in cert.pem | openssl ec -pubin -outform d | dd ibs=26 skip=1 | openssl dgst -sha256

Para encontrar la correcta, ibses posible que deba verificar conasn1parse

nyet
fuente