我需要一种在 Swift 中生成 RSA 非对称密钥对的方法。我不需要将它存储在钥匙串或任何东西中。我只需要生成一个密钥对并将两个密钥放入字符串变量中。
这些密钥确实需要与另一端的 PHP 兼容。我将使用对称加密来保护私钥并将其存储在手机上。我将把公钥发送到一个用 PHP 实现的 Web 服务,该 Web 服务会将公钥存储在数据库中。
Web 服务稍后将使用该公钥来加密一次性密码等值以及发往 IOS 应用程序的其他敏感值。我将为从 IOS 应用程序流向 Web 服务的小块数据实现类似的方案。
我能找到的唯一记录的用于在 Swift 中生成密钥对的 API 声明显示在developer.apple.com 上:
func SecKeyGeneratePairAsync(_ parameters: CFDictionary!,
_ deliveryQueue: dispatch_queue_t!,
_ result: SecKeyGeneratePairBlock!)
我试图弄清楚如何使用它,但 XCode 不喜欢下划线,而且我不确定我实际上应该用它做什么或如何使用它。
即使 XCode 会接受它,我也不确定如何调用该函数以及传递什么值等。我在顶部添加了“import Security”,所以这不是问题。
可笑的是,这竟然如此困难。我想做的就是生成一个非对称密钥对。
在 PHP、.NET、Java 或任何其他语言中执行此操作都是小菜一碟,但我找不到任何关于 Swift 的明确文档。我必须使用 Swift 来开发这个应用程序。我不想使用 OpenSSL,因为它已被弃用。
我使用 Swift 是因为我非常讨厌 Objective C。Swift 是我最终进入 IOS 开发的原因。
我不知道如何将 Objective C 类与 Swift 集成,如果有的话,我真的宁愿拥有一个纯粹的 Swift 解决方案。如果没有,我希望得到一些关于如何集成 Objective C 解决方案并使其工作的指导。
上面的代码片段是苹果提供的唯一函数调用,自然它是不完整的,没有意义,也不起作用。