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.

  • You probably mean the secure enclave. The secure element just handles payments and is not accessible to developers. – lxgr Jun 2 '16 at 15:34
  • No I meant the secure element, but as you said it's not accessible. – Zakaria XPI Jun 9 '16 at 9:39

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.

| improve this answer | |
  • Thank you very much Wim for your help, I think that I'll stick with the keychain for my app. – Zakaria XPI Dec 30 '15 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

| improve this answer | |
  • 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. – Zakaria XPI Dec 30 '15 at 9:57
  • My answer is incorrect. Please see the answer about kSecAttrTokenIDSecureEnclave. – goodguys_activate Dec 30 '15 at 11:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.