Как я могу получить 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.

Ответы на вопрос(3)

Ваш ответ на вопрос