digestifversion
Hash algorithms in C and OCaml
Digestif is a toolbox which implements hashes:
- SHA1
- SHA224
- SHA256
- SHA384
- SHA512
- BLAKE2B
- BLAKE2S
- RIPEMD160
Digestif uses a trick about linking and let the end-user to choose which implementation he wants to use. We provide 2 implementations:
- C implementation with
digestif.c
- OCaml implementation with
digestif.ocaml
Both are well-tested. However, OCaml implementation is slower than the C implementation.
API
For each hash, we implement the same API which is referentially transparent.
Then, on the top of these, we reflect functions (like digesti
or hmaci
) with
GADT - however, conversion from GADT to hash type is not possible (but you can
destruct GADT to a string
).
Build Requirements
- OCaml >= 4.03.0 (may be less but need test)
base-bytes
meta-package- Bigarray module (provided by the standard library of OCaml)
dime
to build the project
If you want to compile the test program, you need:
alcotest
Credits
This work is from the nocrypto library and the Vincent hanquez's work in ocaml-sha.
All credits appear in the begin of files and this library is motivated by two reasons:
- delete the dependancy with
nocrypto
if you don't use the encryption (and common) part - aggregate all hashes functions in one library
Authors | Eyyüb Sari <eyyub.sari@epitech.eu> and Romain Calascibetta <romain.calascibetta@gmail.com> |
---|---|
License | MIT |
Published | |
Homepage | https://github.com/mirage/digestif |
Issue Tracker | https://github.com/mirage/digestif/issues |
Maintainers | Eyyüb Sari <eyyub.sari@epitech.eu> and Romain Calascibetta <romain.calascibetta@gmail.com> |
Available | arch != "s390x" |
Dependencies |
|
Source [http] | https://github.com/mirage/digestif/releases/download/v0.6.1/digestif-0.6.1.tbz sha256=8def179e27db20f1ed335696690029ea1ecf2fa769c507fb3319745438ee7da3 md5=9100e0067018123634d3959eb37fdbd2 |
Edit | https://github.com/ocaml/opam-repository/tree/master/packages/digestif/digestif.0.6.1/opam |
Required by
- dkim-miragewith-test & >=0.2.0
- docfd>=2.1.0
- irmin=2.2.0
- irmin-httpwith-test & =2.0.0
- irmin-unix>=2.0.0 & <2.3.0
- jupyter-kernel>=0.4 & <0.8
- miouwith-test
- noise<0.2.0
- owi>=0.2
- swhid_computewith-test
- webauthn>=0.2.0
- zeit
Optionally used by
- ez_api>=1.0.0