this repo has no description
1opam-version: "2.0"
2homepage: "https://github.com/abeaumont/ocaml-salsa20"
3dev-repo: "git+https://github.com/abeaumont/ocaml-salsa20.git"
4bug-reports: "https://github.com/abeaumont/ocaml-salsa20/issues"
5maintainer: "Alfredo Beaumont <alfredo.beaumont@gmail.com>"
6license: "BSD-2-Clause"
7
8build: [
9 ["ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%"]
10]
11depends: [
12 "ocaml" {>= "4.02.0"}
13 "ocamlfind" {build}
14 "ocamlbuild" {build}
15 "topkg" {build}
16 "cstruct" {>= "1.7.0"}
17 "nocrypto" {>= "0.5.3"}
18 "salsa20-core" {>= "0.1.0" & < "1.0.0"}
19 "alcotest" {with-test}
20]
21synopsis: "Family of encryption functions, in pure OCaml"
22description: """
23A pure OCaml implementation of [Salsa20](http://cr.yp.to/salsa20.html) encryption function family.
24
25## Installation
26
27```
28opam install salsa20
29```
30
31## Usage
32
33```ocaml
34utop[0]> #require "nocrypto";;
35utop[1]> #require "nocrypto.unix";;
36utop[2]> Nocrypto_entropy_unix.initialize ();;
37- : unit = ()
38utop[3]> let key = Nocrypto.Rng.generate 32;;
39val key : Cstruct.t = {Cstruct.buffer = <abstr>; off = 0; len = 32}
40utop[4]> let nonce = Cstruct.create 8;;
41val nonce : Cstruct.t = {Cstruct.buffer = <abstr>; off = 0; len = 8}
42utop[5]> #require "salsa20";;
43utop[6]> let state = Salsa20.create key nonce;;
44val state : Salsa20.t = <abstr>
45utop[7]> Salsa20.encrypt (Cstruct.of_string "My secret text") state |> Cstruct.to_string;;
46- : string = " 2\\193\\020`\\142\\182\\234\\188H[R\\241V"
47```
48
49* Key can either 32 (recommended) or 16 bytes
50* Salsa20 state may use a different hashing function,
51 the recommended [`Salsa20_core.salsa20_20_core`](https://abeaumont.github.io/ocaml-salsa20-core/Salsa20_core.html#VALsalsa20_20_core) is used by default."""
52authors: "Alfredo Beaumont <alfredo.beaumont@gmail.com>"
53url {
54 src: "https://github.com/abeaumont/ocaml-salsa20/archive/0.1.0.tar.gz"
55 checksum: [
56 "sha256=aeb2871bb936f2a71658c26f6a1c06f445e3c50e3f4dbbbde1daeccc1c17f2fa"
57 "md5=473a7d5e6cf73e4095e5007af56c836b"
58 ]
59}