From 20c7a8d886e5b86671e0a0b516f1a9c721f9772e Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Thu, 9 Mar 2023 01:09:37 +0800 Subject: [PATCH] feat: add secure_enclave.swift --- secure_enclave.swift | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 secure_enclave.swift diff --git a/secure_enclave.swift b/secure_enclave.swift new file mode 100644 index 0000000..49840c2 --- /dev/null +++ b/secure_enclave.swift @@ -0,0 +1,23 @@ +// https://www.andyibanez.com/posts/cryptokit-secure-enclave/ +// import Swift import Foundation +// import Security +import CryptoKit + +let se = SecureEnclave.isAvailable; +print("Supports SE: \(se)"); + +var error: Unmanaged? = nil; +guard let accessCtrl = SecAccessControlCreateWithFlags( + nil, + kSecAttrAccessibleWhenUnlockedThisDeviceOnly, + [.privateKeyUsage, .biometryCurrentSet], + &error +) else { + throw error!.takeRetainedValue() as Swift.Error; +} var privateKeyReference = try CryptoKit.SecureEnclave.P256.KeyAgreement.PrivateKey.init( + accessControl: accessCtrl +); + +print("Private key reference: \(privateKeyReference)"); +print("Private key reference - publicKey: \(privateKeyReference.publicKey)"); +print("Private key reference - dataRepresentation: \(privateKeyReference.dataRepresentation)");