如何从iOS SecKeyRef提取RSA参数?

安德鲁·阿诺特(Andrew Arnott)

我正在调用iOSSecKeyGeneratePair方法来生成RSA密钥对。现在,我想从中提取RSA参数(公共数据和私有数据)。我怎样才能做到这一点?

我找到了CryptoExercise示例,但是我没有看到它实际上是将密钥导出到其原始数据。此外,这是我真的很难理解的Objective-C。

我正在Xamarin.iOS(C#)移动应用程序中执行此操作,因此我需要通过将必需的互操作API调用到iOS中来最终实现用C#编写的解决方案(就像我对的调用一样SecKeyGeneratePair)。

对于熟悉Xamarin的人,是的,我知道我可以使用new RSACryptoServiceProvider()它来轻松得多。当我使用本机API生成RSA密钥(甚至加密位本身)时,差异是性能提高了2-3个数量级。因此,尽管我必须使用本机API来进行RSA工作,但我还需要获取原始数据,以便可以跨平台使用。

幸免

AFAIK,您不能直接提取参数。在Apple开发人员论坛上有一些关于此的讨论(您可能要检查一下)。可悲的是,苹果工程师的答案是假设(关于发布的代码)是实施细节,并且随时可能更改。

您仍然可以使用可用的API间接执行此操作,例如将其导出为PKCS#12,然后从中获取RSA参数。

更新:验证后,您只能导入PKCS#12-因此这无助于导出私钥。我回到目前尚无任何支持的方法除了使用托管代码外,我唯一想到的安全选择是包括本机代码(第3方库)以生成密钥对。

我曾经尝试过类似的操作(它是导入操作,而不是导出操作),但是额外操作所需的时间使我的代码比仅使用C#慢。您的情况与YMMV不同。

注意:在我看来,钥匙串访问(未进行处理,已加密...)导致了大部分速度下降。导入一次使用的公钥是不值得的-但是,如果您多次使用(重用)公钥,那么您(一次)的花费可能是可以接受的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自iOS中X.509 ASN.1 RSA公钥的SecKeyRef

来自分类Dev

如何从Apache提取RSA密钥

来自分类Dev

如何提取委托参数传递的参数

来自分类Dev

CryptoAPI-如何从私钥中提取RSA公钥

来自分类Dev

如何实现递归“使用” /提取模板参数

来自分类Dev

Python:如何从JSON文件提取参数?

来自分类Dev

如何从URL获取(提取)/设置参数?

来自分类Dev

如何提取模板参数中传递的类型?

来自分类Dev

如何正确提取请求参数的值?

来自分类Dev

如何实现递归“使用” /提取模板参数

来自分类Dev

此代码如何从元组中提取参数?

来自分类Dev

如何在php中提取POST参数

来自分类Dev

如何使用jQuery提取URL参数

来自分类Dev

如何从 NSInvocation 中提取“函数”类型的参数

来自分类Dev

如何从 SecCertificateRef 和 SecKeyRef 获取 SecIdentityRef

来自分类Dev

如何从模板函数参数包中提取参数?

来自分类Dev

从base64 RSA公钥生成SecKeyRef

来自分类Dev

从base64 RSA公钥生成SecKeyRef

来自分类Dev

iOS Swift:使用类型作为输入参数提取常用方法?

来自分类Dev

如何在iOS中从URL请求中提取数据

来自分类Dev

如何在NSDictionary(iOS)中从键/值对提取值

来自分类Dev

如何在iOS中提取隐藏的输入uiwebview?

来自分类Dev

iOS:如何为JSON对象中的键提取值

来自分类Dev

如何在iOS开发中从.a(静态库)中提取文件?

来自分类Dev

如何在iOS中使用URL提取图像

来自分类Dev

如何在iOS 10中从FBGraphApi的结果中提取数据

来自分类Dev

从SecKeyRef提取Objective-C / C私钥(模数)

来自分类Dev

如何安装ios应用并向其发送参数?

来自分类Dev

iOS:如何在TableView中显示响应参数?

Related 相关文章

热门标签

归档