Как я могу получить SecKeyRef из файла DER / PEM
Мне нужно интегрировать приложение для iPhone с системой, и они требуют шифрования данных с помощью данного открытого ключа, есть 3 файла в 3 различных форматах .xml .der и .pem, я исследовал и нашел несколько статей о получении SecKeyRef из DER / PEM, но они всегда возвращают ноль. Ниже мой код:
<code>NSString *pkFilePath = [[NSBundle mainBundle] pathForResource:@"PKFile" ofType:@"der"]; NSData *pkData = [NSData dataWithContentsOfFile:pkFilePath]; SecCertificateRef cert; cert = SecCertificateCreateWithData(NULL, (CFDataRef) pkData); assert(cert != NULL); OSStatus err; if (cert != NULL) { err = SecItemAdd( (CFDictionaryRef) [NSDictionary dictionaryWithObjectsAndKeys: (id) kSecClassCertificate, kSecClass, (id) cert, kSecValueRef, nil ], NULL ); if ( (err == errSecSuccess) || (err == errSecDuplicateItem) ) { CFArrayRef certs = CFArrayCreate(kCFAllocatorDefault, (const void **) &cert, 1, NULL); SecPolicyRef policy = SecPolicyCreateBasicX509(); SecTrustRef trust; SecTrustCreateWithCertificates(certs, policy, &trust); SecTrustResultType trustResult; SecTrustEvaluate(trust, &trustResult); if (certs) { CFRelease(certs); } if (trust) { CFRelease(trust); } return SecTrustCopyPublicKey(trust); } } return NULL; </code>
Проблема происходит в SecCertificateCreateWithData, он всегда возвращает ноль, даже если чтение файла в порядке. Кто-нибудь сделал это, пожалуйста, помогите мне, спасибо!
РЕДАКТИРОВАТЬ: файл сертификата был подпись MD5.