【问题标题】:Exporting public key in pkcs#1 format on iOS?在 iOS 上以 pkcs#1 格式导出公钥?
【发布时间】:2012-12-24 19:38:11
【问题描述】:

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

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

提前感谢您的帮助。

【问题讨论】:

    标签: iphone objective-c ios encryption public-key-encryption


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      从众多 OpenSSL-for-iOS 项目中选择一个,例如 this one,然后开始吧。

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

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

      【讨论】:

      • 这是/是一个非常好的评论/建议,但是我最终偶然发现了一个更简单的解决方案,它更适合这个特殊情况。
      • 很高兴您找到了解决方案。
      猜你喜欢
      • 2012-05-21
      • 2021-06-22
      • 2018-08-04
      • 2017-10-14
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2011-11-28
      • 2016-11-01
      相关资源
      最近更新 更多