我正在嘗試使用 CryptoKit 生成密鑰對,但似乎密鑰對與https://8gwifi.org/ecsignverify.jsp等其他平臺不兼容
import CryptoKit
...
let privateKey = P256.Signing.PrivateKey()
let publicKey = privateKey.publicKey
//using this send this string to other platform
let publicKeyPem = publicKey.pemRepresentation
//keeping this one on my keychain
let privateKeyPem = privateKey.pemRepresentation
but this keypairs can't be verified in other platform, like when I sign some data with private key and can't be verified by someoneelse(but it works well on iOS platform, is there something I missed?)
uj5u.com熱心網友回復:
您正在使用兩條不同的曲線。您指定的鏈接顯示您正在嘗試啟動 secp256k1 密鑰,但這與 CryptoKit P256 不同 - 這是曲線 secp256r1,請注意最后兩個字符 k1 != r1。即使私鑰實體化成功,公鑰也會不同,所以簽名驗證(驗證)總是會失敗。
可以用 secp256r1 嗎?它出現在您鏈接到的站點的串列中,位于 sect571r1 上方。
你必須使用secp256k1嗎?如果是這樣,您可以使用
https://github.com/Sajjon/K1
以后想在 CryptoKit 中使用 secp256k1 嗎?幫助我支持我的提案,將其添加到 swift-crypto(CryptoKit 的開源變體)!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476601.html
