如何在 openSSL 中使用 p-256 和 SHA256 取得 ECSDA?

如何在 openSSL 中使用 p-256 和 SHA256 取得 ECSDA?

Apple 對其 APNS 的請求必須使用 JWT(JSON Web 令牌),並使用橢圓曲線數位簽章演算法(又稱 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

相關內容