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)");