[package] name = "nym-crypto" description = "Crypto library for the nym mixnet" version.workspace = true authors = { workspace = true } edition = { workspace = true } license = { workspace = true } repository = { workspace = true } homepage.workspace = true documentation.workspace = true # pinned (not inherited from workspace) because this crate is imported by the ecash contract, # and the contracts workspace cannot be built with rustc more recent than 1.86 rust-version = "1.86.0" readme.workspace = true publish = true [dependencies] aes-gcm-siv = { workspace = true, optional = true } aes = { workspace = true, optional = true } aead = { workspace = true, optional = true } base64.workspace = true bs58 = { workspace = true } blake3 = { workspace = true, features = ["traits-preview"], optional = true } ctr = { workspace = true, optional = true } curve25519-dalek = { workspace = true, optional = true } digest = { workspace = true, optional = true } generic-array = { workspace = true, optional = true } hkdf = { workspace = true, optional = true } hmac = { workspace = true, optional = true } jwt-simple = { workspace = true, optional = true } libcrux-psq = { workspace = true, optional = true } libcrux-curve25519 = { workspace = true, optional = true } cipher = { workspace = true, optional = true } x25519-dalek = { workspace = true, features = ["static_secrets"], optional = true } ed25519-dalek = { workspace = true, features = ["rand_core"], optional = true } rand = { workspace = true, optional = true } rand09 = { workspace = true, optional = true } serde_bytes = { workspace = true, optional = true } serde = { workspace = true, features = ["derive"], optional = true } sha2 = { workspace = true, optional = true } subtle-encoding = { workspace = true, features = ["bech32-preview"] } thiserror = { workspace = true } zeroize = { workspace = true, optional = true, features = ["zeroize_derive"] } # internal nym-sphinx-types = { workspace = true, optional = true } nym-pemstore = { workspace = true } [dev-dependencies] anyhow = { workspace = true } rand_chacha = { workspace = true } nym-test-utils = { workspace = true } serde_json = { workspace = true } [features] default = [] aead = ["dep:aead", "aead/std", "aes-gcm-siv", "generic-array"] naive_jwt = ["asymmetric", "jwt-simple"] libcrux_x25519 = ["libcrux-psq", "libcrux-curve25519"] serde = ["dep:serde", "serde_bytes", "ed25519-dalek/serde", "x25519-dalek/serde"] asymmetric = ["x25519-dalek", "ed25519-dalek", "curve25519-dalek", "sha2", "zeroize"] hashing = ["blake3", "digest", "hkdf", "hmac", "generic-array", "sha2", "zeroize", "rand09"] stream_cipher = ["aes", "ctr", "cipher", "generic-array"] sphinx = ["nym-sphinx-types", "nym-sphinx-types/sphinx"] [lints] workspace = true