将SecKey导出为pkcs8格式

时间:2018-03-24 13:14:09

标签: ios swift cryptography rsa

目前我正在使用iOS安全框架生成RSAKeyPair

statusCode = SecKeyGeneratePair(keyPairAttributes as CFDictionary, &newPublicKey, &newPrivateKey)

然后我想用PKCS8将这些密钥导出为PEM格式。 apple提供导出密钥的标准方法是:

let cfData = SecKeyCopyExternalRepresentation(self, &error)

但是这些数据给了我PKCS1格式的密钥。有没有办法将PKCS1格式转换为PKCS8?

到目前为止,我所有的研究都让我对如何实际转换这些格式毫无头绪。

1 个答案:

答案 0 :(得分:0)

我无法翻译成Swift,但这里几乎是Objective-C:

SecItemImportExportKeyParameters keyParams = {};
keyParams.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION;
keyParams.passphrase = you_need_a_cfstringref_here;

SecExternalFormat dataFormat = kSecFormatWrappedPKCS8;
OSStatus status = SecItemExport(privateKey, dataFormat, 0, &keyParams, &cfData);