24 lines
832 B
Swift
24 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)");
|