Files
swift-tests/secure_enclave.swift
2025-01-18 19:26:53 +08:00

30 lines
855 B
Swift
Executable File

#!/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<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)");