2012-12-24 30 views
3

如何导出已使用pkcs#8格式生成的SecKeyGeneratePair的RSA公钥?在iOS上以pkcs#1格式导出公钥?

我目前正在编写一个iOS应用程序,需要能够生成RSA私钥/公钥对,签名一段内容并以pkcs#8格式导出公钥发送到服务器。到目前为止,我生成我对与SecKeyGeneratePair,与SecItemCopyMatching检索我的公钥和私钥,并与SecKeyRawSign签约的事情,这一切似乎是工作的罚款和签名是检验蛮好的测试与SecKeyRawVerify。但不幸的是,我不知道如何在pkcs#8中正确导出公钥。

非常感谢您的帮助。

回答

2

从以往的经验,如果你需要做一些事情,并不像它是由iOS的安全框架的支持,然后建立与自己的OpenSSL复制链接到您的项目。虽然iOS显然在内部使用OpenSSL,但它很少暴露给应用程序开发人员。

抓住许多OpenSSL的换iOS的项目在那里的一个,例如this one,并走了。

直接使用OpenSSL有很多优点,其中有一些优点很多,例如http://openssl.org上的示例代码和联机文档,您几乎可以做任何与加密相关的任何事情。

更新:现在有可用的OpenSSL的多个版本通过Cocopods:OpenSSLOpenSSL-Universal这将使进口的OpenSSL到您的iOS或OSX项目容易得多。

+0

这是/是一个很好的意见/建议,但有一个可以说是比较容易的解决方案,我终于偶然发现适合这个特定的情况下更好。 – joshOfAllTrades

+0

很高兴你找到了解决方案。 –

2

http://blog.wingsofhermes.org/?p=42描述的方法允许容易地导出适当格式化的RSA公共密钥,而无需添加外部库。总之,iOS正在做的事情正确,只是它没有正确的编码导出密钥。

这不是最简单的岗位找到,所以希望这个链接,这样可以节省有人在未来的一段时间。

相关问题