Создан сертификат с использованием SecCertificateCreateWithData на iOS - PullRequest
4 голосов
/ 14 марта 2012

Я хочу создать сертификат программно в приложении для iOS.Ближайший API, который я смог найти, это SecCertificateCreateWithData , для которого требуется двоичный ввод в кодировке DER.

Учитывая, что у меня есть все необходимые данные, доступные как объекты времени выполнения, Как я могу построить двоичные данные в кодировке DERввод?

Ответы [ 2 ]

6 голосов
/ 14 марта 2012

Вот как это можно сделать:

NSString* certPath = [[NSBundle mainBundle] pathForResource:@"myCertificate" ofType:@"cer"];
NSData* certData = [NSData dataWithContentsOfFile:certPath];
SecCertificateRef cert;
if( [certData length] ) {
    cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certData);
    if( cert != NULL ) {
        CFStringRef certSummary = SecCertificateCopySubjectSummary(cert);
        NSString* summaryString = [[NSString alloc] initWithString:(__bridge NSString*)certSummary];
        NSLog(@"CERT SUMMARY: %@", summaryString);
        CFRelease(certSummary);
    } else {
        NSLog(@" *** ERROR *** trying to create the SSL certificate from data located at %@, but failed", certPath);
    }
}
// play with cert here

myCertificate.cer должно быть в вашем комплекте приложений.Я создаю cer-файл с openssl.Если вы планируете использовать это в приложении iOS, убедитесь, что ваш сертификат содержит необходимые расширения, отметьте здесь .Хотя ответ -1, это помогло мне запустить его.

0 голосов
/ 24 июня 2013

Посмотрите на SecKeyGeneratePair Я думаю, это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...