在iOS上导出pkcs#1格式的公钥



如何以pkcs#8格式导出SecKeyGeneratePair生成的RSA公钥?

我目前正在编写一个iOS应用程序,需要能够生成RSA私钥/公钥对,签署一段内容并以pkcs#8格式导出公钥以发送到服务器。到目前为止,我正在用SecKeyGeneratePair生成我的配对,用SecItemCopyMatching检索我的公钥和私钥,并用SecKeyRawSign签名,这一切似乎都很好,签名验证用SecKeyRawVerify测试很好。但不幸的是,对于如何在pkcs#8中正确导出公钥,我完全空白。

提前感谢您的帮助

http://blog.wingsofhermes.org/?p=42上描述的过程允许轻松导出正确格式化的rsa公钥,而无需添加外部库。简而言之,iOS做得很好,只是它没有正确编码地导出密钥。

这篇文章不容易找到,所以希望这个链接可以节省一些时间。

根据经验,如果你需要做一些看起来不像iOS安全框架支持的事情,那么构建并链接你自己的OpenSSL副本到你的项目中。虽然iOS内部显然使用了OpenSSL,但它很少暴露给应用程序开发人员。

选择一个面向ios的openssl项目,比如这个,然后开始吧。

直接使用OpenSSL有很多好处,其中一些是大量的示例代码和在线文档在http://openssl.org,你可以做任何你需要的加密相关的东西。

Update:现在有多个版本的OpenSSL可通过Cocopods: OpenSSL和OpenSSL- universal获得,这将使将OpenSSL导入到您的iOS或OSX项目中更加容易。

最新更新