Post

Replies

Boosts

Views

Activity

Reply to How to persist SecureEnclave.P256.Signing.PrivateKey
For the record: I suspect that you may be able to do this using one of the data representations, but I’ve not investigated that in depth. I tried converting a Keychain key to a CryptoKit key by utilising SecKeyCopyExternalRepresentation(_:_:), but as the documentation suggests that does not work: The operation couldn’t be completed. (OSStatus error -4 - export not implemented for key <SecKeyRef:('com.apple.setoken') (which should be errSecUnimplemented).
Topic: Privacy & Security SubTopic: General Tags:
Jun ’23
Reply to Using SecItemUpdate to change the kSecAttrAccessControl value of a private key protected by the Secure Enclave
I dug a little deeper (thanks, Quinn!) and found two possibly related errors in the system log. errSecNoSuchAttr seems to be caused by error:[-25303] Error Domain=NSOSStatusErrorDomain Code=-25303 "attribute u_CredRef not found in class keys" UserInfo={numberOfErrorsDeep=0, NSDescription=attribute u_CredRef not found in class keys} while errSecAuthFailed seems to be a fallout from evaluateAccessControl on LAContext[5448:4] cid:17 returned Error Domain=com.apple.LocalAuthentication Code=-1009 "ACL operation is not allowed: 'oe'" UserInfo={NSDebugDescription=ACL operation is not allowed: 'oe', NSLocalizedDescription=Vorgang ist nicht zulässig.} I filed this as FB11884381, FWIW.
Topic: Privacy & Security SubTopic: General Tags:
Dec ’22
Reply to Using SecItemUpdate to change the kSecAttrAccessControl value of a private key protected by the Secure Enclave
Update: The documentation for SecItemUpdate includes the following w.r.t. the attributesToUpdate dictionary: Only real keychain attributes are permitted in this dictionary (no "meta" attributes are allowed.)  It is unclear (at least to me) what those "meta" attributes may be. Is kSecAttrAccessControl maybe one of them?
Topic: Privacy & Security SubTopic: General Tags:
Nov ’22
Reply to Use kSecAttrAccessControl to only protect the private key in a SecIdentityRef
Have you tried calling  SecItemUpdate to change the  kSecAttrAccessControl value on the private key item? I'm currently struggling trying to do just that in a context where I have a private key inside the Secure Enclave further protected by an application password which I want to change. I have been unsuccessful getting the queryand attributesToUpdate dictionaries right though, with SecItemUpdate returning either errSecParam or errSecNoSuchAttr. Am I on the right track here or am I trying to do something that is not possible?
Topic: Privacy & Security SubTopic: General Tags:
Nov ’22