darkbio-crypto 0.4.0

Cryptography primitives and wrappers
Documentation
# Rust Cryptography Wrappers

[![](https://img.shields.io/crates/v/darkbio-crypto.svg)](https://crates.io/crates/darkbio-crypto)
[![](https://docs.rs/darkbio-crypto/badge.svg)](https://docs.rs/darkbio-crypto)

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 further contains the following custom constructs:

- **DOE:** DarkBio Object Encryption (and Authentication)
  - Based on `CBOR` encoding and `HPKE` cryptography

## 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

Some base features can be expanded with further flags:

- `cert` can expand `hpke` with certificate support, pulls in `eddsa`
- `doe` can expand `hpke` with `CBOR` object encoding and decoding