Cargo Features
[dependencies]
aranya-crypto = { version = "0.1.0", default-features = false, features = ["alloc", "bearssl", "boringssl", "committing-aead", "clone-aead", "ed25519_batch", "fs-keystore", "getrandom", "moonshot", "proptest", "rand_compat", "std", "test_util"] }
- default = getrandom
-
The
getrandom
feature is set by default wheneveraranya-crypto
is added without
somewhere in the dependency tree.default-features = false - alloc boringssl? ed25519_batch? fs-keystore? proptest? std? test_util?
-
Enable allocations.
Enables alloc of aes-gcm, aranya-buggy, der, ecdsa, postcard, optional rand, rand_core, optional rustix, and zeroize
rand_core:
rand_core
is required by therust
backend. - bearssl
-
Enable BearSSL.
Enables aranya-bearssl-sys
- boringssl = alloc
-
Enable BoringSSL.
Enables aranya-bssl-sys
- committing-aead
-
Enable committing AEAD implementations.
Enables aes
- clone-aead
-
Implement
Clone
for the built-in AEADs. - ed25519_batch = alloc
-
Enable Ed25519 batch signature verification.
NB: this is NOT supported on big-endian architectures.
This is its own feature because of a weird interaction between cargo, ed25519-dalek, and VxWorks.
ed25519-dalek's
batch
feature requiresalloc
, so normally we'd put "ed25519-dalek/batch" behind ouralloc
feature.However, ed25519-dalek's
batch
feature does not build for vxworks/ppc because its merlin dependency does not support big-endian architectures.Cargo does not support target-specific features, so we're unable to express "enable ed25519-dalek/batch only if
alloc
is enabled and the current architecture is little-endian."Enables batch of ed25519-dalek
- fs-keystore = alloc
-
Enable the file system backed
KeyStore
.Enables ciborium, ciborium-io, and rustix
- getrandom default std?
-
Enable
getrandom
support.NB:
getrandom
does not support VxWorks < 7. - moonshot
-
Build for Project Moonshot.
Enables aes, lazy_static, and spin
- proptest test_util? = alloc
-
Enable
proptest::arbitrary::Arbitrary
implemenationsEnables proptest and proptest-derive
- rand_compat
-
Enable compat with the
rand
,rand_core
, etc. crates.Enables rand
- std = alloc, getrandom
-
Use std.
Enables use-std of postcard, std and std_rng of rand, std of optional proptest, std of rand_core, serde, sha2, siphasher, subtle, zeroize, optional rustix, optional serde_json, and optional spin, std of aes-gcm, aranya-base58, aranya-buggy, byteorder, crypto-common, der, ecdsa, ed25519-dalek, elliptic-curve, p256, p384, optional ciborium, optional ciborium-io, and optional getrandom
- test_util = alloc, proptest
-
Include testing utilities.
Enables serde_json, serde_repr, and wycheproof ^0.5
wycheproof:
Only pulled into non-dev builds if
test_util
is enabled. It won't bloat release builds, though, since users of this crate should only use this feature inside [dev-dependencies].