Apple 向其 APNS 发出的请求必须使用 JWT(JSON Web Token),该 JWT 使用椭圆曲线数字签名算法(又称 ECSDA)进行签名,使用 p-256 曲线和 SHA256 哈希。如何在 openssl 中使用此类参数进行签名?
openssl ecparam -list_curves
显示:
secp256k1 : SECG curve over a 256 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field
答案1
您要使用的 p-256 曲线是 prime256v1。
尝试这个:
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