【发布时间】:2011-02-16 16:32:16
【问题描述】:
我必须加密一个字符串并在我的 xCode 项目的 Resources 文件夹中有一个 .CER (x.509)。过去两天我一直在想象如何,但没有成功,所以是时候问了。
Apple 的文档很难阅读……而且我认为这个框架可能是最难理解的……这些示例都没有帮助。
所以,我尝试了以下代码:显然它不起作用:
在我的 Mac 上,我使用了 OPENSSL,但我发现无法在 SDK 中重新创建 OPENSSL 命令。所以,我很困惑......有人吗???
非常感谢:)
NSString *certPath = [[NSBundle mainBundle] pathForResource:@"Certificate" ofType:@"cer"];
SecCertificateRef myCertificate = nil;
NSData *certificateData = [[NSData alloc] initWithContentsOfFile:certPath];
myCertificate = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef)certificateData);
SecPolicyRef myPolicy = SecPolicyCreateBasicX509();
SecTrustRef myTrust;
SecTrustCreateWithCertificates(myCertificate, myPolicy, &myTrust);
SecKeyRef publicKey = SecTrustCopyPublicKey(myTrust);
uint8_t *pPlainText = (uint8_t*)"This is a test";
uint8_t aCipherText[1024];
size_t iCipherLength = 1024;
OSStatus status = SecKeyEncrypt(publicKey,
kSecPaddingPKCS1,
pPlainText,
strlen( (char*)pPlainText ) + 1,
aCipherText,
&iCipherLength);
}
【问题讨论】:
-
你找到解决这个@Fabio的方法了吗
标签: iphone security encryption sdk openssl