package salsa20

  1. Overview
  2. Docs
Salsa20 family of encryption functions, in pure OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

salsa20-1.1.0.tbz
sha256=60b5c1a6ab4e8a7f0a03b194230c2fcb4783aacf9b149f73802767c2334f4f95
sha512=89f5d9a0b68d9d7158d5e3868aa35074800a619932194a14ccc848a58696a1d9a583bb14de966d68720c6d22f3f0b51430a4ade1fa0051cff75fcb99c26450e8

Description

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 "salsa20";;
utop[6]> let state = Salsa20.create key nonce;;
val state : Salsa20.t = <abstr>
utop[7]> Salsa20.encrypt (Cstruct.of_string "My secret text") state |> Cstruct.to_string;;
- : string = " 2\193\020`\142\182\234\188H[R\241V"

Published: 31 Mar 2020

README

README.md

Salsa20 family of encryption functions, in pure OCaml

A pure OCaml implementation of Salsa20 encryption function family.

Installation

opam install salsa20

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 "salsa20";;
utop[6]> let state = Salsa20.create key nonce;;
val state : Salsa20.t = <abstr>
utop[7]> Salsa20.encrypt (Cstruct.of_string "My secret text") state |> Cstruct.to_string;;
- : string = " 2\\193\\020`\\142\\182\\234\\188H[R\\241V"
  • Key can either 32 (recommended) or 16 bytes

  • Salsa20 state may use a different hashing function, the recommended Salsa20_core.salsa20_20_core is used by default.

Dependencies (5)

  1. salsa20-core >= "0.1.0"
  2. mirage-crypto
  3. cstruct >= "3.2.0" & < "6.1.0"
  4. dune >= "1.8"
  5. ocaml >= "4.07.0"

Dev Dependencies (1)

  1. alcotest with-test

Used by

None

Conflicts

None