Я пытаюсь создать client_secret
, и мой ключ «Войти через Apple» (PKCS # 8 / .p8) является одним из необходимых значений для продолжения. Я использую https://github.com/airsidemobile/JOSESwift.
Однако я не могу продолжить, потому что не знаю, как создать SecKey
из PKCS#8 key
. Я смог изучить синтаксис, но не могу заставить его работать. Я пробовал несколько реализаций и преобразований из .p8 -> .pem -> .der -> encode to base64, cast as NSData
, но он продолжает возвращать nil
при выполнении SecKeyCreateWithData
, и ошибка выглядит примерно как EC private key creation from data failed
.
Вот мой код для создания SecKey
:
let keyBase64 = "..."
let keyData = Data(base64Encoded: keyBase64)!
var error: Unmanaged<CFError>?
let key = SecKeyCreateWithData(keyData as NSData, [
kSecAttrKeyType: kSecAttrKeyTypeECSECPrimeRandom,
kSecAttrKeyClass: kSecAttrKeyClassPrivate
] as NSDictionary, &error)
2 дня искал, но безуспешно.
Надеюсь, что кто-то может помочь. Заранее благодарим за ваше время и помощь.