package digestif
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=8def179e27db20f1ed335696690029ea1ecf2fa769c507fb3319745438ee7da3
md5=9100e0067018123634d3959eb37fdbd2
Description
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
Published: 24 Jul 2018
README
Digestif - 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.
Home page: http://din.osau.re/
Contact: Romain Calascibetta <romain.calascibet ta@gmail.com>
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-packageBigarray 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) partaggregate all hashes functions in one library
Dependencies (4)
- base-bigarray
- base-bytes
-
jbuilder
>= "1.0+beta7"
-
ocaml
>= "4.03.0" & < "5.0"
Dev Dependencies
None
Used by (12)
-
dkim-mirage
>= "0.2.0"
-
docfd
>= "2.1.0"
-
irmin
= "2.2.0"
-
irmin-http
= "2.0.0"
-
irmin-unix
>= "2.0.0" & < "2.3.0"
-
jupyter-kernel
>= "0.4" & < "0.8"
- miou
-
noise
< "0.2.0"
-
owi
>= "0.2"
- swhid_compute
-
webauthn
>= "0.2.0"
- zeit
Conflicts
None