我正在尝试使用iOS的GMEllipticCurveCrypto库使用私有EC和公共JWK EC密钥创建共享机密。目前,该库支持使用以下方法创建共享密钥,而我已经尝试了这两种方法,并且由于相同的错误(无效密钥)而崩溃。有人可以帮助我如何使用私有EC和公共JWK EC密钥(使用或不使用GMEllipticCurveCrypto)创建共享密钥吗?我看过几个博客,没有人发布有效代码,但是下面是我要尝试做的事情。
代码:
let ecPublicKeyJson =
"""
{
"kty":"EC",
"crv":"P-256",
"x":"2_v-MuNZccqwM7PXlakW9oHLP5XyrjMG1W9oHLP5Xy",
"y":"rm1ktLmFIsP2R0YyJGXtsCbaTUesUXtsCbaTUesUdf"
}
"""
let ecPublicKeyJsonData = ecPublicKeyJson.data(using: .utf8)
let ecPublicKeyJsonBase64 = ecPublicKeyJsonData?.base64EncodedString()
let keyPair = GMEllipticCurveCrypto.generateKeyPair(for: GMEllipticCurveSecp256r1)
let sharedZ = keyPair.getSharedSecret(publicKeyBase64: ecPublicKeyJsonBase64!)
错误:由于未捕获的异常“无效密钥”而终止了应用程序