【发布时间】:2011-07-20 19:17:19
【问题描述】:
我正在开发一个 iPhone 应用程序,该应用程序从 ASP.NET 网络服务中检索 RSA 公钥,格式如下:
<RSAKeyValue>
<Modulus>qdd0paiiBJ+xYaN4TKDdbEzrJJw9xlbRAltb5OPdegjLoW60yOjL/sni52WVsGC9QxpNitZR33dnUscmI0cTJoxkXypPjbD94UpH+p4el2tuKBypHlE7bERApuUp55y8BiRkbQNFH8smZFWDwtIc/PsJryeGf8fAryel8c5V3PU=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
然后我需要将此响应转换为适当格式的NSData *(来自一些激烈的谷歌搜索,很可能是“ASN.1 DER”二进制格式。我已经准备好将这两个部分从它们的 Base64 转换的代码原始二进制值的表示形式,但我一生都无法找到一种合理的方法来创建单件二进制密钥。
等待密钥的代码是Apple的CryptoExercise示例项目中SecKeyWrapper类的-addPeerPublicKey:(NSString *) keyBits:(NSData *)方法(代码here)。
我非常乐意以另一种方式实现这一点——我只需要加密一个字符串(不需要解密)。不过,据我所知,如果我能缩小这种格式差距,内置的安全框架就可以满足我的需求。如果有办法转换密钥并从 web 服务发送 Base64 编码的密钥,那也适用于我——但我也找不到任何 ASN.1 编码方法。
【问题讨论】:
-
您好,您能分享一下如何将 ASN.1 转换为 Base64。我很难找到它。谢谢
-
@HelmiB - 它与任何其他二进制格式没有什么不同。
标签: ios rsa asn.1 xml-signature der