我上检索从形式的ASP.NET Web服务的RSA公钥一个iPhone应用程序的工作:转换XML Dsig的格式DER ASN.1公钥
<RSAKeyValue>
<Modulus>qdd0paiiBJ+xYaN4TKDdbEzrJJw9xlbRAltb5OPdegjLoW60yOjL/sni52WVsGC9QxpNitZR33dnUscmI0cTJoxkXypPjbD94UpH+p4el2tuKBypHlE7bERApuUp55y8BiRkbQNFH8smZFWDwtIc/PsJryeGf8fAryel8c5V3PU=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
我需要再转换这个响应的格式为NSData *
(从一些激烈的谷歌搜索,最有可能的'ASN.1 DER'二进制格式。我有代码将两个部分从Base64表示转换为原始二进制值,但我可以对我来说,找出一个合理的方法来创建单件二进制密钥。
等待密钥的代码是-addPeerPublicKey:(NSString *) keyBits:(NSData *)
来自Apple的CryptoExercise
示例项目(代码here)的SecKeyWrapper
类的方法。
我会非常乐意以另一种方式实现这一点 - 我需要的是加密单个字符串(不需要解密)。据我所知,内置的安全框架具有我所需要的,如果我能够缩小这种格式差距的话。如果有一种方法可以将密钥转换为Base64编码的web服务,那也适用于我 - 但我找不到任何可以ASN.1编码的方法。
嗨,你可以分享如何将ASN.1转换为Base64。我很难找到它。谢谢 – HelmiB 2012-10-29 04:55:37
@HelmiB - 它和任何其他二进制格式没有区别。 – 2012-10-29 17:02:53