デバイスに保存された証明書から公開鍵または秘密鍵を取得しようとしています。 が、私はこの方法で使用しています:問題だところ証明書から公開鍵/秘密鍵を取得する
- (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の程度であることを示します。それを質問のタイトルに追加する必要はありません。 –