Los datos equivalentes para ECDSA, o cualquier ECC, incluyendo ECDH, son el valor del punto público y una especificación de la curva utilizada. En la práctica, para la interoperabilidad, las personas usan una de las curvas identificadas por un OID estandarizado (NIST, SECG, etc.) y en su mayoría solo las dos "bendecidas" por NSA Suite B, a saber nistp256 y nistp384, aunque los formatos ASN.1 (y la biblioteca de openssl ) puede soportar cualquier (?) curva de forma de Weierstrass.
Pero los métodos sencillos son efectivamente los mismos que en ¿Determinar si la clave privada pertenece al certificado? , a la que agrego algunas posibles mejoras:
-
Utilice openssl x509 -in cert -pubkey
para obtener el campo del certificado y compárelo con (toda) la clave pública (en la misma codificación SPKI) obtenida de la clave privada con openssl ec -in key -pubout
1A. En lugar de diferentes comandos para claves privadas RSA y ECC, ya que openssl 1.0.0 en 2010 puede usar el algoritmo genérico openssl pkey -in key -pubout
para ambos.
-
Configure un programa basado en openssl para (intentar) usar la clave y el certificado "propio". Si no coinciden, la biblioteca openssl devolverá un error que el programa debería mostrar.
2A. En lugar de configurar un entorno de servidor completo o tomar temporalmente uno existente, simplemente puede ejecutar openssl s_server -accept X -cert cfile -key kfile
donde X es cualquier puerto que se pueda usar en su máquina = no está restringido y no está vinculado ni conectado actualmente. Si comienza bien (cert & key match), solo control-C (o equivalente).