[package] authors = ["Kevin Lewi ", "François Garillot "] categories = ["no-std"] description = "An implementation of the OPAQUE password-authenticated key exchange protocol" edition = "2021" keywords = ["cryptography", "crypto", "opaque", "passwords", "authentication"] license = "Apache-2.0 OR MIT" name = "opaque-ke" readme = "README.md" repository = "https://github.com/facebook/opaque-ke" rust-version = "1.74" version = "3.0.0" [features] argon2 = ["dep:argon2"] curve25519 = ["dep:curve25519-dalek"] default = ["ristretto255-voprf", "serde"] ristretto255 = ["dep:curve25519-dalek", "voprf/ristretto255"] ristretto255-voprf = ["ristretto255", "voprf/ristretto255-ciphersuite"] serde = ["dep:serde", "generic-array/serde", "voprf/serde"] std = ["dep:getrandom"] [dependencies] argon2 = { version = "0.5", default-features = false, features = [ "alloc", ], optional = true } curve25519-dalek = { version = "4", default-features = false, features = [ "zeroize", ], optional = true } derive-where = { version = "1", features = ["zeroize-on-drop"] } digest = "0.10" displaydoc = { version = "0.2", default-features = false } elliptic-curve = { version = "0.13", features = ["hash2curve", "sec1"] } generic-array = "0.14" hkdf = "0.12" hmac = "0.12" rand = { version = "0.8", default-features = false } serde = { version = "1", default-features = false, features = [ "derive", ], optional = true } subtle = { version = "2.6", default-features = false } voprf = { version = "0.5", default-features = false, features = ["danger"] } zeroize = { version = "1.8", features = ["zeroize_derive"] } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2", features = ["js"], optional = true } [dev-dependencies] bincode = "1" chacha20poly1305 = "0.10" criterion = "0.5" hex = "0.4" p256 = { version = "0.13", default-features = false, features = [ "hash2curve", "voprf", ] } p384 = { version = "0.13", default-features = false, features = [ "hash2curve", "voprf", ] } p521 = { version = "0.13.3", default-features = false, features = [ "hash2curve", "voprf", ] } proptest = "1" rand = "0.8" regex = "1" # MSRV rustyline = "14" scrypt = "0.11" serde_json = "1" [[bench]] harness = false name = "opaque" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] targets = [] [[example]] name = "simple_login" required-features = ["argon2"]