【发布时间】:2014-12-09 10:16:05
【问题描述】:
我正在尝试从 C 中的 p12 文件中获取私钥。 在控制台中我可以输入
openssl pkcs12 -in some.p12 -out kestore.pem -nodes
在 pem 中我有私钥。
我设法像这样加载 p12 文件
NSString *path = [[NSBundle bundleForClass:self.class] pathForResource:@"some" ofType:@"p12"];
const char *pathCString = [path cStringUsingEncoding:NSUTF8StringEncoding];
FILE *p12File = fopen(pathCString, "rb");
if (p12File == nil) {
return nil;
}
OpenSSL_add_all_algorithms();
ERR_load_crypto_strings();
PKCS12 *p12 = NULL;
p12 = d2i_PKCS12_fp(p12File, NULL);
if (p12 != NULL) {
const char *pw = "supersecretpass";
//int PKCS12_parse(PKCS12 * p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) * *ca);
EVP_PKEY *pkey;
X509 *cert;
STACK_OF(X509) * ca;
int result = PKCS12_parse(p12, pw, &pkey, &cert, &ca);
NSLog(@"result %d", result);
PKCS12_free(p12);
}
fclose(p12File);
return nil;
我现在如何获取私钥?
【问题讨论】:
标签: c openssl key extract private