Создайте SecKey из PKCS # 8 (файл .p8) - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать 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 дня искал, но безуспешно.

Надеюсь, что кто-то может помочь. Заранее благодарим за ваше время и помощь.

...