Weekly Update 6


  • Finished the performance reports with new graphs and new conclusions
  • Created a PR for the basic native encryption framework
    • Added necessary dependencies.
    • Implemented getCiphers(), getHashes(), randomBytes() and pbkdf2Raw().
    • Feel free to review it and leave your comments!
  • Discovered that the atob()/btoa() in the Hermes engine cannot be used for encoding/decoding arbitrary data.


  • Continue integrating react-native-quick-crypto and node:crypto into Joplin.
    • Implementation for react-native-quick-crypto has higher priority.
    • Add unit tests for the implemented methods.
    • Implement encryption/decryption methods.
  • Check the compatibility of encryption parameters in Web Crypto API.
    • The priority of this task is not high.


  • The current framework might have issues with naming and file structure so I hope people could review it and give me some feedback.
  • The Buffer from node:buffer and react-native-quick-crypto(craftzdog/react-native-buffer) are not identical, so I have to use type any in the interface. (code)
  • I didn't find a good way to import a TypeScript module in the JavaScript file. So I just copied the generated JavaScript code. (code)