[package]
name = "tlsn-universal-hash"
authors = ["TLSNotary Team"]
description = "A crate which implements different hash functions for two-party computation"
keywords = ["tls", "mpc", "2pc", "hash"]
categories = ["cryptography"]
license = "MIT OR Apache-2.0"
version = "0.1.0-alpha.6"
edition = "2021"

[features]
default = ["ghash", "ideal"]
ghash = []
ideal = ["dep:ghash_rc"]

[dependencies]
# tlsn
mpz-core = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac" }
mpz-common = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac", features = [
    "ideal",
] }
mpz-fields = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac" }
mpz-share-conversion-core = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac" }
mpz-share-conversion = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac" }

ghash_rc = { package = "ghash", version = "0.5", optional = true }

# async
async-trait = "0.1"
futures = "0.3"
futures-util = "0.3"

# error/log
thiserror = "1"
opaque-debug = "0.3"
tracing = "0.1"

# misc
derive_builder = "0.12"

[dev-dependencies]
mpz-common = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac", features = [
    "test-utils",
] }
mpz-share-conversion = { git = "https://github.com/privacy-scaling-explorations/mpz", rev = "b8ae7ac", features = [
    "ideal",
] }

ghash_rc = { package = "ghash", version = "0.5" }
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] }
criterion = "0.5"
rstest = "0.17"
rand_chacha = "0.3"
rand = "0.8"
generic-array = "0.14"
