We used to have three problems: - overuse of the <Sha256 as Digest>::OutputSize, which is just, well, U32. Sometimes used as a parameter (as in generate_oprf1), sometimes as a constant (as in generate_oprf3). - the `hash_to_curve` operation for `RistrettoPoint` which requires 64 bits of input entropy, is fed 64 bits of which the last 32 are zero, - the `hash_to_curve` operation for `Curve25519Point` which requires 32 bits of input entropy, is fed 64 bits of which the last 32 are discarded, This corrects all three and uses U32 where the size of the digest is not meant to be a constraint. Addresses #15 partially.
36 lines
849 B
TOML
36 lines
849 B
TOML
[package]
|
|
name = "opaque-ke"
|
|
version = "0.1.0"
|
|
repository = "https://github.com/novifinancial/opaque-ke"
|
|
keywords = ["cryptography", "crypto", "opaque", "passwords", "authentication"]
|
|
description = "An implementation of the OPAQUE password-authenticated key exchange protocol"
|
|
authors = ["Kevin Lewi <[email protected]>", "François Garillot <[email protected]>"]
|
|
license = "MIT"
|
|
edition = "2018"
|
|
readme = "README.md"
|
|
|
|
[features]
|
|
slow-hash = ["scrypt"]
|
|
|
|
[dependencies]
|
|
aead = "0.3.1"
|
|
curve25519-dalek = "2.1.0"
|
|
digest = "0.9"
|
|
generic-array = "0.14.2"
|
|
hkdf = "0.9.0-alpha.0"
|
|
hmac = "0.8.0"
|
|
rand_core = "0.5.1"
|
|
scrypt = { version = "0.3.0", optional = true }
|
|
sha2 = "0.9.0"
|
|
thiserror = "1.0.19"
|
|
x25519-dalek = "0.6.0"
|
|
zeroize = "1.1"
|
|
|
|
[dev-dependencies]
|
|
base64 = "0.12.1"
|
|
hex = "0.4.2"
|
|
lazy_static = "1.4.0"
|
|
serde_json = "1.0.55"
|
|
proptest = "0.10.0"
|
|
rand = "0.7"
|