Weekly Update 1

Progress

  • Attempted to set up a macOS virtual machine (Failed)
  • Borrowed a MacBook
  • Implemented some test demos of the AES-GCM method in sjcl and node:crypto
  • Tried the AES-GCM method with javax.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 from node:crypto's

Problems

  • I tried javax.crypto on Android, but I cannot reproduce the same cipher text as the node:crypto's and sjcl'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 with javax.crypto.
1 Like

Any reason why this is a problem? Seems like openssl is something we could rely on?

1 Like

Well it's more like "something else to do" rather than "problems". I barely considered OpenSSL implementation on Android at first, so the javax.crypto is the only choice for me. But since there are more than one options, I might need to evaluate them in the future.

Do I need to move it to the Plans?

For any change of plan it's something you need to check with your mentor

1 Like