我正在使用带有 x509 证书的 SOAP 消息处理 iPhone 客户端。而且我不知道如何使用 x509 证书 (client.cert) 签署消息。
有关于使用 openssl 的线程讨论,但我不知道如何使用 openssl,所以我正在查看 Apple 文档:http: //developer.apple.com/library/mac/#documentation/Security/Conceptual/CertKeyTrustProgGuide/iPhone_Tasks /iPhone_Tasks.html 在上述文档中,有获取策略引用对象和评估信任的示例代码:
NSString *thePath = [[NSBundle mainBundle]
pathForResource:@"Romeo Montegue" ofType:@"cer"];
NSData *certData = [[NSData alloc]
initWithContentsOfFile:thePath];
CFDataRef myCertData = (CFDataRef)certData; // 1
SecCertificateRef myCert;
myCert = SecCertificateCreateWithData(NULL, myCertData); // 2
SecPolicyRef myPolicy = SecPolicyCreateBasicX509(); // 3
SecCertificateRef certArray[1] = { myCert };
CFArrayRef myCerts = CFArrayCreate(
NULL, (void *)certArray,
1, NULL);
SecTrustRef myTrust;
OSStatus status = SecTrustCreateWithCertificates(
myCerts,
myPolicy,
&myTrust); // 4
SecTrustResultType trustResult;
if (status == noErr) {
status = SecTrustEvaluate(myTrust, &trustResult); // 5
}
// 6
if (trustResult == kSecTrustResultRecoverableTrustFailure) {
...;
}
if (myPolicy)
CFRelease(myPolicy);
但是没有使用策略对象对消息进行签名的示例。你有什么线索吗?如果您对此有任何想法或经验,请帮助我。我真的很感谢你的帮助。
提前致谢。