Weekly Update 0

This report covers the progress during the Community Bounding Period (May 1 - 26), plans for the first week of coding period (starting from May 27), and the problems I met.

Progress

  • Got familiar with sjcl library.
  • Implemented some test demos of the AES-CCM method in sjcl and node:crypto. Proved the possibility of Goal #2 on the desktop.
  • Checked the supported transformation of the Cipher class in javax.crpyto across various Android SDK versions (test result). Proved the unfeasibility of Goal #2 with javax.crypto on Android.
  • Attempted to set up the macOS virtual machine.
  • Attempted to connect to the macOS virtual machine provided by @tessus .

Plans

  • Evaluate the React Native crypto libraries
  • Try to set up a valid macOS development environment
  • Try the AES-GCM method with javax.crypto

Problems

  • In the project proposal, I planned to implement the AES-CCM method across all platforms so users can get a faster decryption speed when migrating the crypto method to the new one. I chose javax.crypto initially, but I found that it doesn't support AES-CCM on many Android SDKs. To resolve this, I might need to implement it with other libraries like OpenSSL. However, this task has a very low priority because the proof of concept of native decryption of AES-CCM with node:crypto is implemented. Users can use their PCs to speed up the migrate process.
  • I don't have a macOS environment so I cannot write and test the native code on iOS. @tessus and I have tried some methods, but they didn't work. I'm still finding a way to set it up.
4 Likes

Have you tried using VirtualBox? How to Install MacOS on Windows 10 - gHacks Tech News

Otherwise if you know how a good online service for this, we can probably pay for the subscription for a few months, just let us know which one.

I tried Virtualbox + macOS Ventura/Sonoma with various tutorials but I can't even install it. The official forum doesn't allow users to talk about installing macOS on non-Apple hardware so I guess the feature of installing macOS VM on PC is unmaintained/not supported.

As for the online services, I need some time to evaluate which one to use.

On a side note, the Electron actually uses Chromium's BoringSSL instead of OpenSSL for the Node.js binary, so an Electron app supports fewer ciphers and hashes than the original Node.js.
It seems AES-CCM is not supported in Electron, so I cannot achieve Goal #2 on desktop without 3rd-party libraries.