Cargo Features

[dependencies]
aranya-crypto = { version = "0.13.0", default-features = false, features = ["afc", "apq", "alloc", "bearssl", "committing-aead", "clone-aead", "ed25519_batch", "fs-keystore", "getrandom", "hazmat", "memstore", "proptest", "rand_compat", "std", "test_util", "tls", "trng"] }
default = getrandom

The getrandom feature is set by default whenever aranya-crypto is added without default-features = false somewhere in the dependency tree.

afc test_util?

Enable AFC support.

Enables byteorder

apq test_util?

Enable APQ support.

alloc ed25519_batch? fs-keystore? memstore? std? test_util?

Enable allocations.

Enables alloc of buggy, optional ciborium-io, optional rustix ^0.38, sha3-utils, and spideroak-crypto

bearssl

Enable BearSSL.

Enables bearssl of spideroak-crypto

committing-aead

Enable committing AEAD implementations.

Enables committing-aead of spideroak-crypto

clone-aead

Implement Clone for the built-in AEADs.

Enables clone-aead of spideroak-crypto

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 requires alloc, so normally we'd put "ed25519-dalek/batch" behind our alloc 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 ed25519_batch of spideroak-crypto

fs-keystore = alloc

Enable the file system backed KeyStore.

Enables cfg-if, ciborium, ciborium-io, and rustix ^0.38

getrandom default std?

Enable getrandom support.

NB: getrandom does not support VxWorks < 7.

Enables getrandom of spideroak-crypto

hazmat

Enable cryptographically hazardous code.

Enables hazmat of spideroak-crypto

memstore = alloc

Enable the in-memory KeyStore.

Enables ciborium

Affects util::cbor

proptest test_util?

Enable proptest::arbitrary::Arbitrary implemenations

Enables proptest of aranya-id

rand_compat

Enable compat with the rand, rand_core, etc. crates.

Enables rand_compat of spideroak-crypto

std = alloc, getrandom

Use std.

Enables std of buggy, optional byteorder, optional ciborium, optional ciborium-io, optional rustix ^0.38, serde, sha3-utils, siphasher, spideroak-crypto, and thiserror

test_util = afc, alloc, apq, proptest, tls

Include testing utilities.

Enables ciborium, test_util of spideroak-crypto

Affects util::cbor

tls test_util?

Enable TLS utilities.

trng

Use a system provided TRNG for the default CSPRNG.

Enables trng of spideroak-crypto