Manav Rathi 1 year ago
parent
commit
02b1f4d376
1 changed files with 22 additions and 0 deletions
  1. 22 0
      docs/dependencies.md

+ 22 - 0
docs/dependencies.md

@@ -16,6 +16,28 @@ They also need some support packages:
 
 
 ## Utils
 ## Utils
 
 
+### Crypto
+
+We use [libsodium](https://libsodium.gitbook.io/doc/) for encryption, key
+generation etc. Specifically, we use its WebAssembly and JS wrappers made using
+Emscripten, maintained by the original authors of libsodium themselves -
+[libsodium-wrappers](https://github.com/jedisct1/libsodium.js).
+
+Currently, we've pinned the version to 0.7.9 since later versions remove the
+crypto_pwhash_* functionality that we use (they've not been deprecated, they've
+just been moved to a different NPM package). From the (upstream) [release
+notes](https://github.com/jedisct1/libsodium/releases/tag/1.0.19-RELEASE):
+
+> Emscripten: the crypto_pwhash_*() functions have been removed from Sumo
+> builds, as they reserve a substantial amount of JavaScript memory, even when
+> not used.
+
+This wording is a bit incorrect, they've actually been _added_ to the sumo
+builds (See this [issue](https://github.com/jedisct1/libsodium.js/issues/326)).
+
+Updating it is not a big problem, it is just a pending chore - we want to test a
+bit more exhaustively when changing the crypto layer.
+
 ## UI
 ## UI
 
 
 The UI package uses "react". This is our core framework. We do use layers on top
 The UI package uses "react". This is our core framework. We do use layers on top