如何将SecPKCS12Import与使用AES_256加密的私钥一起使用

时间:2017-03-19 22:05:34

标签: ios swift algorithm encryption openssl

我在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加密的私钥?

0 个答案:

没有答案