提问人:Nitkarsh Gupta 提问时间:10/10/2023 最后编辑:Nitkarsh Gupta 更新时间:10/11/2023 访问量:26
无法使用安全隔区密钥生成公钥的 pem 证书
Unable to generate a pem cert of public key using secure enclave keys
问:
我想使用安全隔区在 iOS 中生成公钥的 pem 证书。如果与在安全隔区外部生成的密钥一起使用,swift-certificates 可以正常工作。由于我的密钥是在安全隔区内生成的,因此无法访问私钥,因此 swift-certificate 不起作用。
有什么方法可以使用安全或内部框架本地生成公钥的 PEM 证书?如果没有,有什么方法可以使用 swift-certificates 来完成?
// Not working
func generateCertWithSecureEnclave(subjectName: String) {
let keyPair: (publicKey: SecKey, privateKey: SecKey) = getKeyPair()!
var error: Unmanaged<CFError>?
guard let publicKey = SecKeyCopyExternalRepresentation(keyPair.publicKey, &error) as? Data else {
assertionFailure("Failed to get public key")
return
}
var signingPublicKey: P256.Signing.PublicKey!
do {
signingPublicKey = try P256.Signing.PublicKey(x963Representation: publicKey)
} catch {
return
}
do {
let bytes = signingPublicKey.derRepresentation.copyBytes(as: UInt8.self)
let certificate = try Certificate(derEncoded: bytes)
print("Certificate: ", try? certificate.serializeAsPEM().pemString)
} catch {
print("Certificate error: Certificate generation error - \(error)")
}
}
答: 暂无答案
评论