如何在Objective C中从文件创建私钥?

4
我已经创建了一个公钥,如下所示:
 NSString *pkFilePath = [[NSBundle mainBundle] pathForResource:@"public_key" ofType:@"der"];
NSData *myCertData = [NSData dataWithContentsOfFile:pkFilePath];


SecCertificateRef cert = SecCertificateCreateWithData (kCFAllocatorDefault, (CFDataRef)myCertData);
CFArrayRef certs = CFArrayCreate(kCFAllocatorDefault, (const void **) &cert, 1, NULL);

SecTrustRef trust;
SecPolicyRef myPolicy   = SecPolicyCreateBasicX509();
SecTrustCreateWithCertificates(certs, myPolicy, &trust);
SecTrustResultType trustResult;
SecTrustEvaluate(trust, &trustResult);
SecKeyRef pub_key_leaf = SecTrustCopyPublicKey(trust);
NSLog(@"%@",pub_key_leaf);

如何从文件中创建私钥?

以下是一些相关的代码,用于创建私钥,但我不知道如何使用我的私钥文件来创建私钥。

https://developer.apple.com/library/mac/#documentation/security/conceptual/CertKeyTrustProgGuide/iPhone_Tasks/iPhone_Tasks.html#//apple_ref/doc/uid/TP40001358-CH208-SW10


你的私钥是什么格式? - Marcus Adams
@MarcusAdams 它在 privatekey.pem 文件中。 - Nitesh Meshram
2个回答

0
据我所知,从NSData创建SecPrivateKeyRef没有简单的方法。如果可能的话,请将您的私钥和公钥文件合并成p12格式。
openssl pkcs12 -export -out combined.p12 -in public.der -inform DER -inkey private...
Password: 12345678

然后执行

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: @"12345678", kSecImportExportPassphrase, nil];

OSStatus status = SecPKCS12Import((__bridge CFDataRef)pkcs12derAsData,  
     (__bridge CFDictionaryRef)options, &items);

在我需要处理DER/PEM的情况下,我发现与openssl链接最容易。然后从那里开始。
Dw.

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接