gpt4 book ai didi

ios - 如何从 Objective C 中的文件创建私钥?

转载 作者:可可西里 更新时间:2023-11-01 06:15:59 24 4
gpt4 key购买 nike

我创建了一个这样的公钥:

 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

最佳答案

据我所知,没有简单的方法可以从 NSData 创建 SecPrivateKeyRef。如果可能 - 将您的私有(private)和公共(public)文件合并到 p12 中:

openssl pkcs12 -export -out combined.p12 -in public.der -inform DER -inkey private...
Password: 12345678

然后做

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

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

在我必须处理 DER/PEM 的情况下 - 我发现使用 openssl 链接最简单。然后从那里拿走它。

数据。

关于ios - 如何从 Objective C 中的文件创建私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15902653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com