Мне интересно, кто-нибудь знает, возможно ли обновить флаги после создания ключа внутри Secure Enclave или нет?Вот как я создаю ключ:
let access = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
kSecAttrAccessibleWhenUnlockedThisDeviceOnly,
[SecAccessControlCreateFlags.userPresence,
SecAccessControlCreateFlags.privateKeyUsage],
nil)!
let attributes: [String: Any] = [
kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
kSecAttrKeySizeInBits as String: 256,
kSecAttrTokenID as String: kSecAttrTokenIDSecureEnclave,
kSecPrivateKeyAttrs as String: [
kSecAttrIsPermanent as String: true,
kSecAttrApplicationTag as String: "stacksometimesoverflow",
kSecAttrAccessControl as String: access
]
]
var error: Unmanaged<CFError>?
guard SecKeyCreateRandomKey(attributes as CFDictionary, &error) != nil else {
throw error!.takeRetainedValue() as Error
}
Как видите, ключ создается с помощью
SecAccessControlCreateFlags.userPresence, SecAccessControlCreateFlags.privateKeyUsage
У меня вопрос, возможно ли обновить флаг доступаключ ( тот же ключ ), скажем, я хочу удалить SecAccessControlCreateFlags.userPresence
Всего наилучшего!
Джонни