解密Cocoa中的RSA公钥

时间:2013-02-23 16:02:46

标签: objective-c cocoa openssl sscrypto

我在Cocoa环境中解密RSA公钥时遇到了麻烦。 我在public.pem中使用-----BEGIN PUBLIC KEY-----警卫加密哈希公钥(由openssl生成)

NSData *encryptedData = base64dec(license);

NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public" ofType:@"pem"];
NSData *publicKeyData = [NSData dataWithContentsOfFile:publicKeyPath];

SSCrypto *crypto = [[SSCrypto alloc] initWithPublicKey:publicKeyData];

[crypto setClearTextWithData:encryptedData];
[crypto verify];

NSString *verifiedKey = [crypto clearTextAsString];

但是verifiedKey总是零。看起来SSCrypto无法将NSData转换为NSString。我怎样才能真正解密数据?


使用此代码结束(以消除base64解码步骤)

[crypto setCipherTextFromBase64String:license];
NSString *verifiedKey = [crypto clearTextAsString];

但是verifiedKey总是一个空字符串。这是什么意思?输入数据似乎是正确的。

1 个答案:

答案 0 :(得分:1)

由于您正在解密加密数据,您应该执行setCipherText:而不是setClearTextWithData:

此外,在不使用其返回值的情况下调用verify也没有用处。