I would like to know if I can use the iPhone's secure element to store a pair of keys. I need to store them in the safest emplacement, and I can't think of a better one than the secure element.
2 Answers
You can do this by setting kSecAttrTokenID
to kSecAttrTokenIDSecureEnclave
when generating the key. According to the documentation (which consists of some comments in SecItem.h
), the only kinds of keys the secure enclave can store are elliptic curve secp256r1 keys. You can't put RSA keys there, for example.
-
Thank you very much Wim for your help, I think that I'll stick with the keychain for my app. Commented Dec 30, 2015 at 9:56
The secure element is not exposed to developers, and likely requires a custom entitlement in the App Store / App review process that isn't given out
-
Thank you for your help Cristo, I spent too much time searching in Apple's documentation but in vain. I just needed a confirmation before giving up. Commented Dec 30, 2015 at 9:57
-
My answer is incorrect. Please see the answer about kSecAttrTokenIDSecureEnclave. Commented Dec 30, 2015 at 11:21