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