Я пытаюсь создать общий секрет, используя частный ключ E C и publi c JWK E C, используя библиотеку GMEllipticCurveCrypto для iOS. В настоящее время библиотека поддерживает создание общего секрета с использованием следующих методов, и я пробовал оба и просто вылетает с той же ошибкой, которая является недопустимым ключом. Может ли кто-нибудь помочь мне, как создать общий ключ с использованием закрытого ключа E C и publi c JWK E C с использованием или без использования 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!)
Ошибка: завершение работы приложения из-за неперехваченного исключения «Недействительный ключ»