Answering AppStore Export Compliance questions

Hi,

I’m using Realm Swift database v10.54.1 with encryption in my iOS app.
I’m not sure how to answer AppStore Export Compliance questions, hence I need your help because I couldn’t find any official statement on this.

Which one of the following is true for Realm database encryption:

  1. It uses encryption limited to that within the Apple operating system.
  2. It uses an industry standard algorithm, not provided within the Apple operating system.
  3. It uses proprietary encryption algorithms not accepted by international standard bodies (such as IEEE, IETF, or ITU).

Thanks!

Apple CryptoKit provides support for AES-256 however, I don’t believe Realm relies on that built in functionality and provides it’s own via CommonCrypto.

The phrasing of the question is a bit ambiguous though, as it is industry standard and is provided in the Apple operating system. Drilling down a bit, CryptoKit uses AES-256 GSM, while CommonCrypto uses AES-256 ECB and I think AES-256 CBC.

Based on that since ECB and CBC are not provided, I think #2 would be the best answer.

Realm transparently encrypts and decrypts data with standard AES-256 encryption using the first 256 bits of the given 512-bit encryption key. Realm uses the other 256 bits of the 512-bit encryption key to validate integrity using a hash-based message authentication code (HMAC).

Total guesswork though.

1 Like