Skip to content

randombit/botan-rs

Repository files navigation

botan-rs

Build status crates.io docs.rs

This crate wraps the C API exposed by the Botan cryptography library.

Currently the crate exposes ciphers, hashes, MACs, KDFs, password based key derivation (PBKDF2, Scrypt, Argon2, etc), bcrypt password hashes, random number generators, X.509 certificates, format preserving encryption, HOTP/TOTP, NIST key wrapping, multiprecision integers, and the usual public key algorithms (RSA, ECDSA, ECDH, DH, ...)

PRs and comments/issues happily accepted.

MSRV

The Minimum Supported Rust Version of this crate is Rust 1.64.0.

Botan Versions Supported

This crate requires Botan 2.13.0 or higher. However the latest available version of Botan3 is highly recomended for best security and performance.

Features

The following features are supported:

  • std (enabled by default): Enable using std library features. If disabled then the crates are no_std, however support for alloc is still required.
  • vendored: Build a copy of the C++ library directly, without relying on a system installed version.
  • botan3: Enable support for using APIs added in Botan 3. This enables several new features, and more efficient operation. This feature is implicitly enabled if you use vendored.
  • static: Enable static linking for a non-vendored, externally provided Botan dependency.
  • pkg-config: Enable finding a non-vendored, externally provided Botan with pkg-config. Can be used in combination with static.