RSA 的"SecKey"对象创建失败,错误域代码=-50"从数据创建 RSA 私钥失败 swift-iOS



我无法从下面的私钥创建SecKey对象,我确实尝试了许多可用的答案,但没有任何帮助。

我的快速代码如下:

var error: Unmanaged<CFError>?
guard let keyData = Data(base64Encoded: key) else {
return nil
}
var keyAttributes: CFDictionary {
return [kSecAttrKeyType: kSecAttrKeyTypeRSA,
kSecAttrKeyClass: kSecAttrKeyClassPrivate,
kSecAttrKeySizeInBits: keySize] as CFDictionary
}
guard let secKey = SecKeyCreateWithData(keyData as CFData, keyAttributes, &error) else {
print(error.debugDescription) //Error Domain Code=-50 "RSA private key creation from data failed swift-iOS
return nil
}

预期结果是secKey应具有有效值,并且高于guard不应失败。

注意:公钥转换为相应的secKey工作正常(问题出在解密时唯一的私钥(。我尝试从上面的密钥中删除rn

搜索了很多后,发现这个 Apple 线程很有帮助。 我能够使用 SwiftyRSA 库管理这个 ASN.1 解析。

let privateKeySwifty = try PrivateKey(pemEncoded: privateKey)
let secPrivateKey = try PrivateKey(reference: privateKeySwifty.reference)

深入挖掘后,我可以看到,需要对keyData的标头进行条带化(ASN.1 解析(。

最新更新