我上檢索從形式的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