我在Swift中使用OpenSSL库生成PKCS12文件。以下是我用来生成文件的代码:
guard let p12 = PKCS12_create(passPhrase, name, privateKey, certificate, nil, NID_aes_256_cbc, 0, 0, 0, 0) else {
ERR_print_errors_fp(stderr)
return
}
请注意我使用NID_aes_256_cbc来加密私钥。
然后当我使用以下代码在swift中导入p12文件时,我的错误代码为-26275。
var items: CFArray?
let certOptions: NSDictionary = [kSecImportExportPassphrase as NSString: passwordStr as NSString]
self.securityError = SecPKCS12Import(p12Data as NSData, certOptions, &items)
print(securityError!.description)
在咨询OSStatus以获取错误代码说明后,我发现它是errSecInvalidKey
。
如果我将参数从NID_aes_256_cbc
更改回使用默认3DES算法的0
,一切正常。
所以我想知道SecPKCS12Import
默认情况下是否使用3DES算法解密私钥。如果是,我应该如何使SecPKCS12Import
解密AES加密的私钥?