Files
swift-tests/secure_enclave.swift

25 lines
832 B
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<CFError>? = 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)");