Vitamin C is like vitamins for your Rust code, especially code dealing with cryptography and managing sensitive data. It is actually a suite of crates that you can use individually or via this top-level crate via features.
Vitamin C is in active development and aims to address the following:
-
Misuse Resistance: it aims to make it difficult to write code that is insecure.
-
Verified: be verified using formal methods and testing and selects dependencies that are verified.
-
Vetted: be vetted by security experts and selects dependencies that are vetted.
-
Minimal: be minimal and only include what is necessary.
-
Consistent: have a consistent interface with everything in one place.
-
Compatible: support embedded (
no_std) and WASM targets. -
Fast: speed and security can be friends!
You can install the top-level vitaminc crate and enable specific features:
cargo add vitaminc --features protected,random
Or, if you only need a specific capability, you can install a crate directly:
cargo add vitaminc-protected
Prerequisites:
- localstack is installed
To run the tests:
- Start localstack (typically done by running
localstack startfrom the shell) cargo test
| Feature | Source | Crates.io | Documentation |
|---|---|---|---|
aead |
vitaminc-aead |
||
async-traits |
vitaminc-async-traits |
||
encrypt |
vitaminc-encrypt |
||
kms |
vitaminc-kms |
||
password |
vitaminc-password |
||
permutation |
vitaminc-permutation |
||
protected |
vitaminc-protected |
||
random |
vitaminc-random |
||
traits |
vitaminc-traits |