我发现了类似这个问题的东西,但这对我不起作用
如何在 iOS 中使用 PKCS8 RSA DER 私钥?
不容易。 Apple 希望您使用证书(公钥(或身份(.p12 文件、公钥/私钥对(,并且使存储原始密钥变得困难。 这尤其适用于私钥 - 如果可以避免的话,您通常宁愿内存空间中没有未加密的私钥。 在OSX上,SecItemImport()
工作,但在iOS上不起作用,尽管我现在还没有检查几个操作系统版本。
如果你真的想要,你可以强制它,但它必须是PKCS#1 DER数据 - 所以你必须从PKCS#8数据中提取PKCS#1键,这意味着你必须手动解析DER。
这是公钥 PKCS#8 数据的较旧示例:
http://blog.flirble.org/2011/01/05/rsa-public-key-openssl-ios/
使用该代码,您可以获得公钥的SecKeyRef;私钥是稍微不同的DER结构,但想法相似。
最好的办法是获取一个 .p12 文件并使用 SecPKCS12Import()
. 这将为你提供一个SecIdentityRef,从那里你可以使用SecIdentityCopyPrivateKey()
来获取私钥SecKeyRef。
看看这个 GitHub 存储库。它演示了如何使用SecItemImport
加载用于签名和验证的密钥。
您还应该仔细查看SecExternalFormat
枚举,该枚举具有(除其他外(kSecFormatWrappedPKCS8
。这可能就是您要找的。