The modules have been split into four packages: mirage-crypto, mirage-crypto-pk, mirage-crypto-rng and mirage-crypto-entropy. Some of the signatures have changed slightly, and sexp has been removed from mirage-crypto (but not mirage-crypto-pk).
This module contains most of the content of Nocrypto except for public key cryptography and RNG.
The Base64
module has been removed.
In particular, it contains symmetric key cryptography and hashes.
This module contains the public key cryptography as well as Zarith utility functions formerly in Nocrypto.Numeric.Z
.
The key types have been made private and smart constructors have been introduced.
Input is being validated to a higher degree and thus some functions now return (_, [>`Msg of string]) result
Nocrypto.Uncommon
→Mirage_crypto.Uncommon
Nocrypto.Hash
→Mirage_crypto.Hash
Nocrypto.Cipher_block
→Mirage_crypto.Cipher_block
Nocrypto.Cipher_stream
→Mirage_crypto.Cipher_stream
Nocrypto.Base64
→ useBase64
from the packagebase64
Nocrypto.Rsa
→Mirage_crypto_pk.Rsa
Nocrypto.Dsa
→Mirage_crypto_pk.Dsa
Nocrypto.Dh
→Mirage_crypto_pk.Dh
Nocrypto.Rng
→Mirage_crypto_rng
thanks for writing this up, I also tried to note down the major API breakages in the CHANGES: https://github.com/mirage/mirage-crypto/releases/tag/v0.6.0 -- maybe this helps (and FWIW, the mirage-crypto-entropy shouldn't be needed/used by any consumer) ;)