#!/usr/bin/env swift // 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)");