[package] name = "fastcrypto" version = "0.1.8" license = "Apache-2.0" authors = ["Mysten Labs "] edition = "2021" publish = ["crates-io"] readme = "../README.md" description = "Common cryptographic library used at Mysten Labs" repository = "https://github.com/MystenLabs/fastcrypto" [dependencies] base64ct = { version = "1.5.3", features = ["alloc"] } bs58 = "0.4.0" ed25519-consensus = { version = "2.1.0", features = ["serde"] } eyre = "0.6.8" hex = "0.4.3" hex-literal = "0.4.1" hkdf = { version = "0.12.3", features = ["std"] } rand.workspace = true rust_secp256k1 = { version = "0.27.0", package = "secp256k1", features = ["recovery", "rand-std", "bitcoin_hashes", "global-context"] } serde.workspace = true serde_with = "2.1.0" signature = { version = "2.0.0" } tokio = { version = "1.24.1", features = ["sync", "rt", "macros"] } zeroize.workspace = true curve25519-dalek-ng = "4.1.1" generic-array = { version = "0.14.6", features = ["serde"] } typenum.workspace = true auto_ops = "0.3.0" derive_more = "0.99.16" p256 = { version = "0.13.2", features = ["ecdsa"] } ecdsa = { version = "0.16.6", features = ["rfc6979", "verifying"] } rfc6979 = "0.4.0" blake2 = "0.10.6" blst = { version = "0.3.10", features = ["no-threads"] } digest.workspace = true once_cell = "1.17.0" readonly = "0.2.3" sha2 = "0.10.6" sha3.workspace = true thiserror = "1.0.38" schemars = "0.8.12" bincode.workspace = true elliptic-curve = { version = "0.13.2", features = ["hash2curve"] } rsa = { version = "0.8.2", features = ["sha2"] } static_assertions = "1.1.0" ark-secp256r1 = "0.4.0" ark-ec = "0.4.1" ark-ff = "0.4.1" ark-serialize = "0.4.1" lazy_static = "1.4.0" fastcrypto-derive = { path = "../fastcrypto-derive", version = "0.1.3" } serde_json = "1.0.93" num-bigint = "0.4.4" bech32 = "0.9.1" # Required for bulletproofs bulletproofs = { version = "4.0.0", optional = true } merlin = { version = "3.0.0", optional = true } # Required for the unsecure signature and hash schemes twox-hash = { version = "1.6.3", optional = true } serde-big-array = { version = "0.5.0", optional = true } # Required for the aes feature aes = { version = "0.8.2", optional = true } ctr = { version = "0.9.2", optional = true } cbc = { version = "0.1.2", features = ["std"], optional = true } aes-gcm = { version = "0.10.1", optional = true } [[bench]] name = "crypto" harness = false required-features = ["experimental"] [[bench]] name = "encoding" harness = false [[bench]] name = "ecvrf_ristretto" harness = false [[bench]] name = "groups" harness = false [[bench]] name = "mskr" harness = false required-features = ["experimental"] [[bench]] name = "serialize" harness = false [[bench]] name = "hash" harness = false [features] default = [] # Allow copying keys copy_key = [] # Enable the unsecure signature and hash schemes for benchmarking. unsecure_schemes = ["dep:twox-hash", "dep:serde-big-array"] # Used for feature that are not yet audited. experimental = ["dep:bulletproofs", "dep:merlin"] # Include AES and its modes. aes = ["dep:aes", "dep:cbc", "dep:aes-gcm", "dep:ctr"] [dev-dependencies] criterion = "0.4.0" k256 = { version = "0.11.6", features = ["ecdsa", "sha256", "keccak256"] } proptest = "1.1.0" serde-reflection = "0.3.6" wycheproof = "0.5.0" faster-hex = "0.6.1" rustc-hex = "2.1.0" base64 = "0.21.0" radix64 = "0.6.2" base58 = "0.2.0" rust-base58 = "0.0.4" bcs.workspace = true