iOS-使用公共​​JWK EC密钥和私有EC密钥从GMEllipticCurveCrypto创建共享密钥

时间:2020-05-28 11:02:32

标签: ios encryption jwe shared-secret seckeyref

我正在尝试使用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!)

错误:由于未捕获的异常“无效密钥”而终止了应用程序

0 个答案:

没有答案