¿Cómo obtener ECSDA con p-256 y SHA256 en openSSL?

¿Cómo obtener ECSDA con p-256 y SHA256 en openSSL?

Las solicitudes de Apple a sus APNS deben utilizar JWT (JSON Web Token) firmado mediante un algoritmo de firma digital de curva elíptica, también conocido como ECSDA, que utiliza una curva p-256 y un hash SHA256. ¿Cómo se puede firmar con tales parámetros en openssl?

openssl ecparam -list_curves

muestra:

secp256k1 : SECG curve over a 256 bit prime field

prime256v1: X9.62/SECG curve over a 256 bit prime field

Respuesta1

La curva p-256 que desea utilizar es prime256v1.

Prueba esto:

Create private key:
openssl ecparam -genkey -name prime256v1 -noout -out private.pem

Create public key:
openssl ec -in private.pem -pubout -out public.pem

Sign something
openssl dgst -sha256 -sign private.pem yourinputdocument -out yourinput.sha256 yourinput 

To verify:
openssl dgst -sha256 -verify public.pem -signature yourinput.sha256 yourinputdocument

información relacionada