3

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

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

预先感谢您的任何帮助。

4

2 回答 2

2

根据经验,如果您需要做一些看起来不受 iOS 安全框架支持的事情,那么构建您自己的 OpenSSL 副本并将其链接到您的项目中。尽管 iOS 显然在内部使用了 OpenSSL,但很少向应用程序开发人员公开。

抓住许多 OpenSSL-for-iOS 项目之一,例如这个,然后开始吧。

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

更新:现在有多个版本的 OpenSSL 可通过 Cocopods 获得:OpenSSLOpenSSL-Universal,这将使将 OpenSSL 导入您的 iOS 或 OSX 项目变得更加容易。

于 2012-12-24T21:21:48.690 回答
2

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

这不是最容易找到的帖子,因此希望此链接可以在将来节省一些时间。

于 2012-12-26T04:10:45.437 回答