[package]
edition = "2021"
rust-version = "1.96"
name = "reallyme-crypto"
version = "0.3.3"
build = false
include = [
"/src/**/*.rs",
"/Cargo.toml",
"/README.md",
"/LICENSE",
"/NOTICE",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cross-platform cryptographic primitives, key formats, and conformance-tested provider bindings."
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/reallyme/crypto"
[features]
aes = ["dep:crypto-aes256-gcm"]
aes-gcm-siv = ["dep:crypto-aes256-gcm-siv"]
aes-kw = ["dep:crypto-aes-kw"]
argon2id = ["dep:crypto-argon2id"]
chacha20-poly1305 = ["dep:crypto-chacha20-poly1305"]
concat-kdf = ["dep:crypto-concat-kdf"]
constant-time = ["dep:crypto-constant-time"]
csprng = ["dep:crypto-csprng"]
default = [
"native",
"aes",
"aes-gcm-siv",
"argon2id",
"chacha20-poly1305",
"concat-kdf",
"constant-time",
"csprng",
"dispatch",
"signer",
"aes-kw",
"ed25519",
"hmac",
"p256",
"p384",
"p521",
"pbkdf2",
"rsa",
"secp256k1",
"x25519",
"hkdf",
"kmac",
"ml-dsa-44",
"ml-dsa-65",
"ml-dsa-87",
"ml-kem-512",
"ml-kem-768",
"ml-kem-1024",
"sha2",
"sha3",
"slh-dsa",
"x-wing",
"hpke",
"envelopes",
]
dispatch = ["dep:crypto-dispatch"]
ed25519 = [
"dep:crypto-ed25519",
"dispatch",
"crypto-dispatch?/ed25519",
"crypto-signer?/ed25519",
]
envelopes = [
"jwk",
"jwk-multikey",
]
hkdf = ["dep:crypto-hkdf"]
hmac = ["dep:crypto-hmac"]
hpke = [
"hpke-api",
"crypto-hpke/native",
]
hpke-api = ["dep:crypto-hpke"]
hpke-openmls = [
"hpke-api",
"crypto-hpke/openmls",
]
jwk = ["dep:envelopes-jwk"]
jwk-multikey = [
"dep:envelopes-jwk-multikey",
"jwk",
]
kmac = ["dep:crypto-kmac"]
messaging-primitives = [
"chacha20-poly1305",
"hkdf",
"hmac",
"ml-kem-768",
"sha2",
"x25519",
]
ml-dsa-44 = [
"dep:crypto-ml-dsa-44",
"dispatch",
"crypto-dispatch?/ml-dsa-44",
"crypto-signer?/ml-dsa-44",
]
ml-dsa-65 = [
"dep:crypto-ml-dsa-65",
"dispatch",
"crypto-dispatch?/ml-dsa-65",
"crypto-signer?/ml-dsa-65",
]
ml-dsa-87 = [
"dep:crypto-ml-dsa-87",
"dispatch",
"crypto-dispatch?/ml-dsa-87",
"crypto-signer?/ml-dsa-87",
]
ml-kem-1024 = [
"dep:crypto-ml-kem-1024",
"dispatch",
"crypto-dispatch?/ml-kem-1024",
]
ml-kem-512 = [
"dep:crypto-ml-kem-512",
"dispatch",
"crypto-dispatch?/ml-kem-512",
]
ml-kem-768 = [
"dep:crypto-ml-kem-768",
"dispatch",
"crypto-dispatch?/ml-kem-768",
]
native = [
"envelopes-jwk?/native",
"envelopes-jwk-multikey?/native",
"crypto-dispatch?/native",
"crypto-signer?/native",
"crypto-aes-kw?/native",
"crypto-aes256-gcm?/native",
"crypto-aes256-gcm-siv?/native",
"crypto-argon2id?/native",
"crypto-chacha20-poly1305?/native",
"crypto-concat-kdf?/native",
"crypto-constant-time?/native",
"crypto-csprng?/native",
"crypto-ed25519?/native",
"crypto-hmac?/native",
"crypto-hkdf?/native",
"crypto-kmac?/native",
"crypto-ml-dsa-44?/native",
"crypto-ml-dsa-65?/native",
"crypto-ml-dsa-87?/native",
"crypto-ml-kem-512?/native",
"crypto-ml-kem-1024?/native",
"crypto-ml-kem-768?/native",
"crypto-p256?/native",
"crypto-p384?/native",
"crypto-p521?/native",
"crypto-pbkdf2?/native",
"crypto-rsa?/native",
"crypto-secp256k1?/native",
"crypto-sha2?/native",
"crypto-sha2-256?/native",
"crypto-sha3?/native",
"crypto-sha3-256?/native",
"crypto-slh-dsa?/native",
"crypto-x25519?/native",
"crypto-x-wing?/native",
"crypto-hpke?/backend-native",
]
operation-response = [
"dep:buffa",
"dep:crypto-proto",
]
p256 = [
"dep:crypto-p256",
"dispatch",
"crypto-dispatch?/p256",
"crypto-signer?/p256",
]
p384 = [
"dep:crypto-p384",
"dispatch",
"crypto-dispatch?/p384",
"crypto-signer?/p384",
]
p521 = [
"dep:crypto-p521",
"dispatch",
"crypto-dispatch?/p521",
"crypto-signer?/p521",
]
pbkdf2 = ["dep:crypto-pbkdf2"]
rsa = [
"dep:crypto-rsa",
"dispatch",
]
secp256k1 = [
"dep:crypto-secp256k1",
"dispatch",
"crypto-dispatch?/secp256k1",
"crypto-signer?/secp256k1",
]
sha2 = [
"dep:crypto-sha2-256",
"dep:crypto-sha2",
]
sha3 = [
"dep:crypto-sha3-256",
"dep:crypto-sha3",
"crypto-hkdf?/sha3",
]
signer = [
"dep:crypto-signer",
"dispatch",
]
slh-dsa = [
"dep:crypto-slh-dsa",
"dispatch",
]
test-vectors = [
"hpke",
"crypto-hpke/test-vectors",
]
wasm = [
"envelopes-jwk?/wasm",
"envelopes-jwk-multikey?/wasm",
"crypto-dispatch?/wasm",
"crypto-signer?/wasm",
"crypto-aes-kw?/wasm",
"crypto-aes256-gcm?/wasm",
"crypto-aes256-gcm-siv?/wasm",
"crypto-argon2id?/wasm",
"crypto-chacha20-poly1305?/wasm",
"crypto-concat-kdf?/wasm",
"crypto-constant-time?/wasm",
"crypto-csprng?/wasm",
"crypto-ed25519?/wasm",
"crypto-hmac?/wasm",
"crypto-hkdf?/wasm",
"crypto-kmac?/wasm",
"crypto-ml-dsa-44?/wasm",
"crypto-ml-dsa-65?/wasm",
"crypto-ml-dsa-87?/wasm",
"crypto-ml-kem-512?/wasm",
"crypto-ml-kem-1024?/wasm",
"crypto-ml-kem-768?/wasm",
"crypto-p256?/wasm",
"crypto-p384?/wasm",
"crypto-p521?/wasm",
"crypto-pbkdf2?/wasm",
"crypto-rsa?/wasm",
"crypto-secp256k1?/wasm",
"crypto-sha2?/wasm",
"crypto-sha2-256?/wasm",
"crypto-sha3?/wasm",
"crypto-sha3-256?/wasm",
"crypto-slh-dsa?/wasm",
"crypto-x25519?/wasm",
"crypto-x-wing?/wasm",
"crypto-hpke?/backend-native",
]
x-wing = [
"dep:crypto-x-wing",
"dispatch",
"crypto-dispatch?/x-wing",
]
x25519 = [
"dep:crypto-x25519",
"dispatch",
"crypto-dispatch?/x25519",
]
[lib]
name = "reallyme_crypto"
path = "src/lib.rs"
[dependencies.buffa]
version = "0.9.0"
optional = true
[dependencies.crypto-aes-kw]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-aes-kw"
[dependencies.crypto-aes256-gcm]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-aes256-gcm"
[dependencies.crypto-aes256-gcm-siv]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-aes256-gcm-siv"
[dependencies.crypto-argon2id]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-argon2id"
[dependencies.crypto-chacha20-poly1305]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-chacha20-poly1305"
[dependencies.crypto-concat-kdf]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-concat-kdf"
[dependencies.crypto-constant-time]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-constant-time"
[dependencies.crypto-core]
version = "=0.3.3"
package = "reallyme-crypto-core"
[dependencies.crypto-csprng]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-csprng"
[dependencies.crypto-dispatch]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-dispatch"
[dependencies.crypto-ed25519]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ed25519"
[dependencies.crypto-hkdf]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-hkdf"
[dependencies.crypto-hmac]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-hmac"
[dependencies.crypto-hpke]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-hpke"
[dependencies.crypto-kmac]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-kmac"
[dependencies.crypto-ml-dsa-44]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-44"
[dependencies.crypto-ml-dsa-65]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-65"
[dependencies.crypto-ml-dsa-87]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-87"
[dependencies.crypto-ml-kem-1024]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-1024"
[dependencies.crypto-ml-kem-512]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-512"
[dependencies.crypto-ml-kem-768]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-768"
[dependencies.crypto-p256]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-p256"
[dependencies.crypto-p384]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-p384"
[dependencies.crypto-p521]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-p521"
[dependencies.crypto-pbkdf2]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-pbkdf2"
[dependencies.crypto-proto]
version = "=0.3.3"
features = ["generated"]
optional = true
default-features = false
package = "reallyme-crypto-proto"
[dependencies.crypto-rsa]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-rsa"
[dependencies.crypto-secp256k1]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-secp256k1"
[dependencies.crypto-sha2]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-sha2"
[dependencies.crypto-sha2-256]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-sha2-256"
[dependencies.crypto-sha3]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-sha3"
[dependencies.crypto-sha3-256]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-sha3-256"
[dependencies.crypto-signer]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-signer"
[dependencies.crypto-slh-dsa]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-slh-dsa"
[dependencies.crypto-x-wing]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-x-wing"
[dependencies.crypto-x25519]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-x25519"
[dependencies.envelopes-jwk]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-jwk"
[dependencies.envelopes-jwk-multikey]
version = "=0.3.3"
optional = true
default-features = false
package = "reallyme-crypto-jwk-multikey"
[dependencies.thiserror]
version = "2.0"
[dependencies.zeroize]
version = "1.9"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.zeroize]
version = "1.9"
[lints.clippy]
dbg_macro = "deny"
expect_used = "deny"
large_include_file = "deny"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
todo = "deny"
unimplemented = "deny"
unreachable = "deny"
unwrap_used = "deny"
wildcard_imports = "deny"
[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"