【发布时间】:2016-10-21 11:25:43
【问题描述】:
我尝试从设备上保存的证书中获取公钥或私钥。 我正在使用这种方法:
- (SecKeyRef)publicKeyFromFile:(NSString *)path
{
NSData * certificateData = [[NSData alloc] initWithData:[[NSFileManager defaultManager] contentsAtPath:path]];
if (certificateData != nil && certificateData.bytes != 0) {
CFDataRef cfDataPath = CFDataCreate(NULL, [certificateData bytes], [certificateData length]);
SecCertificateRef certificateFromFile = SecCertificateCreateWithData(NULL, cfDataPath);
if (certificateFromFile) {
SecPolicyRef secPolicy = SecPolicyCreateBasicX509();
SecTrustRef trust;
SecTrustCreateWithCertificates( certificateFromFile, secPolicy, &trust);
SecTrustResultType resultType;
SecTrustEvaluate(trust, &resultType);
SecKeyRef publicKeyObj = SecTrustCopyPublicKey(trust);
return publicKeyObj;
}
}
return nil;
}
cfDataPath中有数据,但是certificateFromFile总是nil...
有谁知道问题出在哪里?
【问题讨论】:
-
您的标签已经表明这个问题是关于 iOS 的。无需将其添加到问题标题中。
标签: ios objective-c ssl-certificate x509certificate public-key-encryption