我是这个话题的新手,如果这是一个愚蠢的问题,我很抱歉:\
我正在尝试使用给定的公钥解密消息。消息和公钥都是从 Web 服务提供的。
请参阅以下代码了解我目前如何进行解密:
for (NSValue *refVal in keyRefs) {
SecKeyRef p_key = NULL;
[refVal getValue:&p_key];
if (p_key == NULL) continue;
size_t dataLength = encryptedData.length;
size_t outPutLength = MAX(dataLength, SecKeyGetBlockSize(p_key));
void *outPutBuf = malloc(outPutLength);
if (outPutBuf) {
// Error handling
OSStatus status = SecKeyDecrypt(p_key,
kSecPaddingNone,
encryptedData.bytes,
encryptedData.length,
outPutBuf,
&outPutLength
);
NSLog(@"decryption result code: %ld (size: %lu)", status, outPutLength);
NSLog(@"FINAL decrypted text: %s", outPutBuf);
if (status == errSecSuccess) {
break;
}
} else {
//Error handling
}
}
我没有收到任何错误,但解密后的字符串显示如下(正确的输出应该是 JSON 数组):
decryption result code: 0 size:511)
FINAL decrypted text: ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ
是因为我使用带有“公钥”而不是“私钥”的“SecKeyDecrypt”吗?在那种情况下,我应该用什么来解密?
感谢您对此的任何帮助!
编辑:我正在使用来自:http ://blog.flirble.org/2011/01/05/rsa-public-key-openssl-ios/ 的代码来使用我从服务器获得的公钥(这是“代码片段中的 keyRefs" 来自)