我有一个存储在 PEM 文件中的公钥,我想加载这个文件并将公钥提取到一个 NSData 中,然后我可以将它发送到 [SecKeyWrapper addPeerPublicKey:keyBits:](参见http://developer.apple. com/library/ios/#samplecode/CryptoExercise/Listings/Classes_SecKeyWrapper_h.html)。
我如何在 Objective-C(在 iOS 上)中做到这一点?
我有一个存储在 PEM 文件中的公钥,我想加载这个文件并将公钥提取到一个 NSData 中,然后我可以将它发送到 [SecKeyWrapper addPeerPublicKey:keyBits:](参见http://developer.apple. com/library/ios/#samplecode/CryptoExercise/Listings/Classes_SecKeyWrapper_h.html)。
我如何在 Objective-C(在 iOS 上)中做到这一点?
假设您知道公钥存在并以“-----BEGIN PUBLIC KEY-----”开头并以“-----END PUBLIC KEY-----”结尾,您可以执行以下操作:
NSString *startPublicKey = @"-----BEGIN PUBLIC KEY-----";
NSString *endPublicKey = @"-----END PUBLIC KEY-----";
NSString* path = [[NSBundle mainBundle] pathForResource:@"mykey"
ofType:@"pem"];
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
NSString *publicKey;
NSScanner *scanner = [NSScanner scannerWithString:content];
[scanner scanUpToString:startPublicKey intoString:nil];
[scanner scanString:startPublicKey intoString:nil];
[scanner scanUpToString:endPublicKey intoString:&publicKey];
NSData *data = [NSData base64DataFromString:publicKey];