package chacha
The Chacha functions, in OCaml
Install
Dune Dependency
Authors
Maintainers
Sources
chacha-1.0.0.tbz
sha256=b7c74e310403a637b441bb8e8634886b7c675ee5dcc4c5532c435afebc1d800e
sha512=8970b66083f28ddbb5da65c0b59323a9821b790dbaecd49f4a2a2f18025a674e3493292699626b13e414c4d09fdad3a2f25783a3ca0c15ab9b678a69485858eb
Description
An OCaml implementation of ChaCha functions, both ChaCha20 and the reduced ChaCha8 and ChaCha12 functions. The hot loop is implemented in C for efficiency reasons.
Published: 31 Mar 2020
README
README.md
ChaCha family of encryption functions, in OCaml
An OCaml implementation of ChaCha functions, both ChaCha20 and the reduced ChaCha8 and ChaCha12 functions. The hot loop is implemented in C for efficiency reasons.
Installation
opam install chacha
Usage
utop[0]> #require "mirage-crypto";;
utop[1]> #require "mirage-crypto-rng.unix";;
utop[2]> Mirage_crypto_rng_unix.initialize ();;
- : unit = ()
utop[3]> let key = Mirage_crypto_rng.generate 32;;
val key : Cstruct.t = {Cstruct.buffer = <abstr>; off = 0; len = 32}
utop[4]> let nonce = Cstruct.create 8;;
val nonce : Cstruct.t = {Cstruct.buffer = <abstr>; off = 0; len = 8}
utop[5]> #require "chacha";;
utop[6]> let state = Chacha.create key nonce;;
val state : Chacha.t = <abstr>
utop[7]> Chacha.encrypt (Cstruct.of_string "My secret text") state |> Cstruct.to_string;;
- : string = "\026m.\\363\\026\\263\\207Xg\\256l\\262\\232F"
Key can either 32 (recommended) or 16 bytes
Chacha state may use a different hashing function, the recommended
Chacha_core.chacha20
is used by default.
Dependencies (5)
-
ocaml
>= "4.02.0"
-
mirage-crypto
< "1.0.0"
-
cstruct
>= "3.2.0" & < "6.1.0"
-
dune
>= "1.8.0"
-
conf-pkg-config
build
Dev Dependencies (1)
-
alcotest
with-test
Used by
None
Conflicts (2)
-
ocaml-freestanding
< "0.4.1"
-
mirage-xen-posix
< "3.1.0"
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page