App Store export compliance for encryption for BLE communication app

Viewed 85

The encryption of the app described without giving away too much:

  • It uses HTTPS with NSUrlConnection to communicate with the backend server
  • It generates an RSA keypair (using SecKeyGenerateKeyPair) and stores the private key in Keychain and sends the public key to the backend server. This public key is used on the server to encrypt specific data sent to that user from other users. That data can then be requested from the server and the user app decrypts it (with SecKeyDecrypt) with its private key.
  • It can connect to a specific BLE device for a specific purpose. The app then exchanges keys using DH the first time they connect. After that, the app and BLE device can communicate specific things using the exchanged keys by utilizing AES128 using CCCrypt from CommonCryptor.

App Store compliance

  • Assume we need to say "YES" to using non-exempt encryption and add to Info.plist
  • But is our app upholding: Your app uses encryption limited to that within the Apple operating system? If so, we "only" need to submit a self-classification report as per https://help.apple.com/app-store-connect/#/devc3f64248f - We only use OS provided libraries for our encryption (as described above). But it is the within the Apple operating system that feels a bit confusing. We only use OS provided libraries but our communication goes "in and out of the operating system"

How would you classify an app that meets the given description? Hope it's described well enough to render a good answer!

0 Answers
Related