Cryptographic Libraries and Sources of Randomness
The wire-server system has a number of different cryptography building blocks, and uses a number of different sources for randomness. This is a list of these sources and how they are used; it may or may NOT be complete.
nginx/nginz uses openssl for HTTPS server logic.
HsOpenSSL is a wrapper around openssl, which is uses for HTTPS client logic.
scrypt for password hashing
polysemy-wire-zoo has an effect for randomness (
Wire.Sem.Random
)scim access tokens
rust libraries for proteus, mls, e2eid
The following libraries that can be found on https://hackage.haskell.org/. (It would probably be nice to drop some of these dependencies and replace them by others.)
cryptobox-haskell
cryptohash-md5
cryptohash-sha1
cryptonite
HaskellNet-SSL
HsOpenSSL
http-client-openssl
http-client-tls
network-conduit-tls
Network.Wire.Bot.Crypto
Network.Wire.Bot.Crypto.Glue
scrypt
sodium-crypto-sign
ssl-util
tls
warp-tls