亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

openssl_sign 是否支持 Ed25519 密鑰?

openssl_sign 是否支持 Ed25519 密鑰?

PHP
飲歌長嘯 2021-06-11 18:08:27
根據OpenSSL ChangeLog,OpenSSL 1.1.1 添加了對 EdDSA(包括 Ed25519)的支持。我正在使用 OpenSSL 1.1.1b 運行 PHP 7.3.5,它應該支持它。我嘗試使用 Ed25519(來自https://tools.ietf.org/html/rfc8410#section-10.3的那些)。openssl_error_string()使用“沒有公鑰的 Ed25519 私鑰”密鑰,這給我帶來了以下錯誤(由 返回)。錯誤:0608D096:數字信封例程:EVP_PKEY_sign_init:此密鑰類型不支持操作“用屬性和公鑰編碼的 Ed25519 私鑰”密鑰給了我一個不同的錯誤。警告:openssl_sign():在第 3 行錯誤錯誤:0D078094:asn1 編碼例程:asn1_item_embed_d2i:序列長度不匹配,無法將提供的密鑰參數強制轉換為 /path/to/test.php 中的私鑰這是我使用的代碼。$r = openssl_sign('hello, world!', $signature, '-----BEGIN PRIVATE KEY-----MHICAQEwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhCoB8wHQYKKoZIhvcNAQkJFDEPDA1DdXJkbGUgQ2hhaXJzgSEAGb9ECWmEzf6FQbrBZ9w7lshQhqowtrbLDFw4rXAxZuE=-----END PRIVATE KEY-----');echo $r ? 'good' : 'bad';echo "\n";echo openssl_error_string();我猜 PHP 還不支持 Ed25519。
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

我想不是,如果我們查看文檔,看起來簽名/驗證要求與 openssl 庫的正常使用不同。

Ed25519 和 Ed448 EVP_PKEY 實現支持使用 PureEdDSA 和 Ed25519 或 Ed448(參見 RFC8032)生成密鑰、一次性摘要簽名和摘要驗證。

和評論如:

PureEdDSA 算法不支持使用 EVP_DigestUpdate() 等其他簽名算法的流機制。必須使用一次性 EVP_DigestSign() 和 EVP_DigestVerify() 函數傳遞要簽名或驗證的消息。

當調用 EVP_DigestSignInit() 或 EVP_DigestVerifyInit() 時,摘要類型參數必須設置為 NULL。

所以,除非你可以直接調用 openssl api 或者可以添加更多的 openssl 粘合函數來支持一次性簽名/驗證支持,否則我猜不會。


查看完整回答
反對 回復 2021-06-25
  • 1 回答
  • 0 關注
  • 364 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號