[package] name = "ursa" version = "0.3.7" authors = ["Hyperledger Ursa Contributors"] description = "This is the shared crypto library for Hyperledger components." license = "Apache-2.0" readme = "README.md" repository = "https://github.com/hyperledger/ursa" documentation = "https://docs.rs/ursa" homepage = "https://crates.io/crates/ursa" keywords = ["cryptography", "aead", "hash", "signature", "zero-knowledge"] include = [ "src/bls/**/*.rs", "src/bn/**/*.rs", "src/cl/**/*.rs", "src/encoding/**/*.rs", "src/encryption/**/*.rs", "src/errors/**/*.rs", "src/hash/**/*.rs", "src/kex/**/*.rs", "src/pair/**/*.rs", "src/sharing/**/*.rs", "src/signatures/**/*.rs", "src/utils/**/*.rs", "src/wasm/**/*.rs", "src/*.rs", "Cargo.toml", "LICENSE", "CHANGELOG" ] [lib] name = "ursa" path = "src/lib.rs" crate-type = ["staticlib", "rlib", "cdylib"] [features] default = ["encryption", "hashes", "kex", "serde", "signatures_native", "sharing_native"] aescbc = ["aead", "aes", "block-modes", "block-padding", "hex", "hmac", "rand", "sha2/std", "subtle", "zeroize"] aescbc_native = ["aead", "hex", "rand", "openssl", "zeroize"] aesgcm_native = ["aead", "hex", "rand", "openssl", "zeroize"] aesgcm = ["aead", "aes-gcm", "hex", "rand", "zeroize"] asm = ["encryption_asm", "ffi", "hashes_asm", "serde", "signatures_asm"] benchmarkaescbc = ["openssl"] benchmarkaesgcm = ["openssl"] benchmarked25519 = ["libsodium-ffi"] benchmarksecp256k1 = ["bitcoinsecp256k1", "openssl"] benchmarkxchacha20poly1305 = ["libsodium-ffi"] bls_bls12381 = ["amcl_wrapper", "hex", "hkdf", "zeroize"] bls_bn254 = ["amcl", "failure", "log", "rand", "sha2/std", "sha3"] bls_bn254_asm = ["amcl", "failure", "log", "rand", "sha2/asm", "sha3"] cl = ["amcl", "failure", "glass_pumpkin", "int_traits", "lazy_static", "log", "num-bigint", "num-integer", "num-traits", "rand", "sha2/std", "time"] cl_native = ["amcl", "failure", "int_traits", "lazy_static", "log", "openssl", "rand", "time"] chacha20poly1305 = ["aead", "hex", "rand", "rustchacha20poly1305", "zeroize"] chacha20poly1305_native = ["aead", "hex", "lazy_static", "libsodium-ffi", "rand", "zeroize"] ecdh_secp256k1 = ["amcl", "arrayref", "failure", "hex", "rand", "rand_chacha", "k256", "sha2/std", "zeroize"] ecdh_secp256k1_native = ["arrayref", "failure", "hex", "log", "rand", "bitcoinsecp256k1", "rand_chacha", "sha2/std", "zeroize"] ecdh_secp256k1_asm = ["arrayref", "failure", "hex", "log", "rand", "bitcoinsecp256k1", "rand_chacha", "sha2/asm", "zeroize"] ecdsa_secp256k1 = ["amcl", "arrayref", "failure", "hex", "rand", "rand_chacha", "k256", "sha2/std", "zeroize"] ecdsa_secp256k1_native = ["arrayref", "failure", "hex", "log", "rand", "bitcoinsecp256k1", "rand_chacha", "sha2/std", "zeroize"] ecdsa_secp256k1_asm = ["arrayref", "failure", "hex", "log", "rand", "bitcoinsecp256k1", "rand_chacha", "sha2/asm", "zeroize"] ed25519 = ["arrayref", "ed25519-dalek/std", "ed25519-dalek/u64_backend", "hex", "rand", "rand_chacha", "sha2/std", "zeroize"] ed25519_asm = ["arrayref", "ed25519-dalek/nightly", "ed25519-dalek/simd_backend", "hex", "rand", "rand_chacha", "sha2/asm", "zeroize"] encryption = ["aescbc", "aesgcm", "chacha20poly1305"] encryption_asm = ["aescbc_native", "aesgcm_native", "chacha20poly1305_native"] ffi = ["failure", "ffi-support", "logger", "serde", "serde_json", "time"] hashes = ["blake2/std", "sha2/std", "sha3"] hashes_asm = ["blake2/simd_asm", "sha2/asm", "sha3"] kex = ["ecdh_secp256k1", "x25519"] kex_native = ["ecdh_secp256k1_native", "x25519"] kex_asm = ["ecdh_secp256k1_asm", "x25519_asm"] logger = ["env_logger", "log"] portable = ["clear_on_drop/no_cc", "encryption", "hashes", "kex", "serde", "signatures", "sharing"] portable_wasm = ["portable", "wasm"] sharing = ["failure", "glass_pumpkin", "int_traits", "lazy_static", "num-bigint", "num-integer", "num-traits", "log", "rand", "sha2/std", "time"] sharing_native = ["failure", "int_traits", "lazy_static", "log", "openssl", "rand", "time"] signatures = ["cl", "ed25519", "ecdsa_secp256k1", "bls_bls12381", "bls_bn254"] signatures_native = ["cl_native", "ed25519", "ecdsa_secp256k1_native", "bls_bls12381", "bls_bn254"] signatures_asm = ["cl_native", "ed25519_asm", "ecdsa_secp256k1_asm", "bls_bls12381", "bls_bn254_asm"] wasm = ["console_error_panic_hook", "failure", "hex", "js-sys", "log", "rand/wasm-bindgen", "serde", "serde_json", "wasm-bindgen", "zeroize"] x25519 = ["arrayref", "curve25519-dalek/std", "curve25519-dalek/u64_backend", "hex", "rand", "rand_chacha", "sha2/std", "x25519-dalek/std", "x25519-dalek/u64_backend", "zeroize"] x25519_asm = ["arrayref", "curve25519-dalek/nightly", "curve25519-dalek/avx2_backend", "hex", "rand", "rand_chacha", "sha2/asm", "x25519-dalek/nightly", "x25519-dalek/u64_backend", "zeroize"] [dependencies] aead = { version = "0.3", optional = true } aes = { version = "0.6", optional = true } aes-gcm = { version = "0.8", optional = true } amcl = { version = "0.2", optional = true, default-features = false, features = ["bn254"]} amcl_wrapper = {version = "0.4.0", features = ["bls381"], optional = true } arrayref = { version = "0.3.5", optional = true } blake2 = { version = "0.9", default-features = false, optional = true } block-modes = { version = "0.7", optional = true } block-padding = { version = "0.2", optional = true } clear_on_drop = { version = "0.2.4", optional = true } console_error_panic_hook = { version = "0.1.5", optional = true } curve25519-dalek = { version = "3.1", default-features = false, optional = true } ed25519-dalek = { version = "1.0", default-features = false, optional = true } env_logger = { version = "0.7.0", optional = true } failure = { version = "0.1.6", optional = true } ffi-support = { version = "0.4", optional = true } glass_pumpkin = { version = "0.4", optional = true } hex = { version = "0.4.0", optional = true } hkdf = { version = "0.11.0", optional = true } hmac = { version = "0.11.0", optional = true } int_traits = { version = "0.1.1", optional = true } js-sys = { version = "0.3.13", optional = true } lazy_static = { version = "1.4", optional = true } libsodium-ffi = { version = "0.2.2", optional = true } log = { version = "0.4.8", optional = true } num-bigint = { version = "0.3.0", features = ["rand"], optional = true} num-integer = { version = "=0.1.42", optional = true } num-traits = { version = "=0.2.11", optional = true } openssl = { version = "0.10", optional = true } # TODO: Find out if the wasm-bindgen feature can be made dependent on our own wasm feature rand = { version = "0.7", features = ["wasm-bindgen"], optional = true } rand_chacha = { version = "=0.2.1", optional = true } rustchacha20poly1305 = { version = "0.7", package = "chacha20poly1305", optional = true } k256 = { version = "0.9.6", optional = true, features = ["ecdh", "ecdsa", "sha256"]} bitcoinsecp256k1 = { version = "0.19", package = "secp256k1", optional = true, features = ["rand", "serde"]} serde = { version = "1.0", features = ["derive"], optional = true} serde_json = { version = "1.0", optional = true } sha2 = { version = "0.9.5", default-features = false, optional = true } sha3 = { version = "0.9.1", optional = true } subtle = { version = "2.3", optional = true } time = { version = "0.1", optional = true } wasm-bindgen = { version = "0.2", optional = true, features = ["serde-serialize"] } x25519-dalek = { version = "1.1", optional = true, default-features = false } zeroize = { version = "1.1", features = ["zeroize_derive"], optional = true } [dev-dependencies] bytebuffer-rs = "0.3.0" criterion = "0.3" libsodium-ffi = "0.2.2" openssl = "0.10" k256 = { version = "0.9.6"} bitcoinsecp256k1 = { version = "0.19", package = "secp256k1"} serde_json = "1.0" [package.metadata.deb] maintainer = "Hyperledger" license-file = ["../LICENSE", "0"] copyright = "2019, Hyperledger" depends = "$auto" extended-description = """\ Rust written reliable, secure, easy-to-use, and pluggable cryptographic implementations.""" section = "admin" revision = "1" priority = "optional" assets = [ ["../target/release/libursa.a", "usr/lib/libursa.a", "644"], ["../target/release/libursa.so", "usr/lib/libursa.so", "644"], ["include/ursa_crypto.h", "usr/include/ursa/ursa_crypto.h", "644"], ["include/ursa_crypto_ed25519.h", "usr/include/ursa/ursa_crypto_ed25519.h", "644"] ] [package.metadata.rpm] maintainer = "Hyperledger" license-file = ["../LICENSE", "0"] copyright = "2018, Hyperledger" depends = "$auto" extended-description = """\ Rust written reliable, secure, easy-to-use, and pluggable cryptographic implementations.""" section = "admin" revision = "1" priority = "optional"