Crate darkbio_crypto

Crate darkbio_crypto 

Source
Expand description

§Rust Cryptography Wrappers

This repository is parameter selection and lightweight wrapper around a number of Rust cryptographic libraries. Its purpose isn’t to implement primitives, rather to unify the API surface of existing libraries; limited to the tiny subset needed by the Dark Bio project.

It contains the following crypto primitives and parameters:

  • RSA via RSA2048,
  • EdDSA via Ed25519,
  • STREAM via ChaCha20 and Poly1305 at 16B tags and 64KiB chunks,
  • HPKE via X25519, HKDF, SHA256, ChaCha20 and Poly1305 at dark-bio-v1: info prefix.

It contains the following satellite utilities:

  • CBOR restricted to integer, text, bytes and array,
  • RAND bytes generator with OS and WASM sources.

§Feature flags

The entire library is hidden behind feature flags:

  • rsa enables the RSA cryptography
  • hpke enables the HPKE cryptography
  • eddsa enables the EdDSA cryptography
  • stream enables the STREAM cryptography
  • cbor enables the type-restricted CBOR codecs
  • rand enables the WASM friendly random generator

Some base features can be expanded with further flags:

  • cert can expand hpke with certificate support, pulls in eddsa

Modules§

cbor
Type-restricted CBOR encoder and decoder.
eddsa
EdDSA cryptography wrappers and parametrization.
hpke
HPKE cryptography wrappers and parametrization.
hpke_cert
HPKE + x509 cryptography wrappers and parametrization.
rand
rsa
RSA cryptography wrappers and parametrization.
stream
I/O helper structs for age file encryption and decryption. https://github.com/str4d/rage/blob/main/age/src/primitives/stream.rs