¿Puedo obtener una huella digital de una clave ec, usando openssl?
Ejecutar me openssl ec -in keys/secp256k1.pub.pem -fingerprint
da un error diciéndome que -fingerprint
no es una opción.
Las claves públicas de la CE ya tienen aproximadamente la longitud de las funciones hash utilizadas para las huellas digitales.
—
otus
@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
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
... 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