Progress
- Attempted to set up a macOS virtual machine (Failed)
- Borrowed a MacBook
- Implemented some test demos of the
AES-GCM
method insjcl
andnode:crypto
- Tried the
AES-GCM
method withjavax.crypto
- Evaluated some React Native crypto libraries
Plans
- Try the
react-native-quick-crypto
library - Set up the development environment on the MacBook
- Figure out why the authentication tag part of cipher text from
javax.crypto
differs fromnode:crypto
's
Problems
- I tried
javax.crypto
on 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-crypto
library 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
.