Progress
- Attempted to set up a macOS virtual machine (Failed)
- Borrowed a MacBook
- Implemented some test demos of the
AES-GCMmethod insjclandnode:crypto - Tried the
AES-GCMmethod withjavax.crypto - Evaluated some React Native crypto libraries
Plans
- Try the
react-native-quick-cryptolibrary - Set up the development environment on the MacBook
- Figure out why the authentication tag part of cipher text from
javax.cryptodiffers fromnode:crypto's
Problems
- I tried
javax.cryptoon Android, but I cannot reproduce the same cipher text as thenode:crypto's andsjcl's. The cipher text of the plain text is the same, but the authentication tag part is different. - I got a MacBook from my friend, but it's a little bit old and I'm not sure if it's capable of the development work. I need some time to set it up and test its performance.
- The
react-native-quick-cryptolibrary seems to be a good choice for the mobile devices, but the Android implementation is based on OpenSSL, which doesn't match my initial idea. I might need to test the size/performance/memory usage to decide if I still need to implement the Android part withjavax.crypto.