Kevin Lewi
e6b5a5dcf6
Adding i2osp error checking condition
2021-07-08 19:38:30 -07:00
daxpedda
c0e1181cac
Rustfmt
2021-07-08 18:55:53 -07:00
daxpedda
52d68d6f77
Constraint Scalar with Copy
2021-07-08 18:55:53 -07:00
daxpedda
dd97a81641
Generic PublicKey and PrivateKey
2021-07-08 18:55:53 -07:00
daxpedda
f05fcf0278
Expose public key in ClientRegistrationFinishResult
2021-06-28 02:06:10 -07:00
daxpedda
eb59676a94
Implement common traits
2021-06-22 20:46:34 -07:00
Kevin Lewi
1572ff0104
Adding support for "internal mode" and fake credential response + test vectors ( #155 )
...
* Adding support for internal and external mode
2021-06-21 01:29:39 -07:00
Kevin Lewi
f0c13945d1
Adding client enumeration mitigations ( #153 )
2021-06-21 01:29:39 -07:00
Kevin Lewi
98f1821897
Adding identity element checks and ensuring non-zero scalar selection
2021-06-15 18:39:33 -07:00
Valentin Tolmer
210e0e99df
Enforce public vs private keys via types
2021-06-15 14:47:35 -07:00
Valentin Tolmer
2c7fe4e382
Implement Clone for every message type
2021-06-15 10:06:32 -07:00
Kevin Lewi
30e27a11e2
Ensure that all public keys are being checked when deserialized
2021-06-14 22:39:13 -07:00
Kevin Lewi
0935bea8ff
Adding documentation of slow-hash + other features
2021-06-13 15:45:53 -07:00
Kevin Lewi
51b14f34e0
Fixing some clippy errors and CI
2021-06-12 23:24:27 -07:00
Marcelin Dupraz
055e76a115
Implement serde serialization and deserialization to follow Rust's standards.
2021-06-12 23:24:27 -07:00
Kevin Lewi
8bc5e7dc02
Add zeroize on drop for remaining intermediate API states and tests
2021-06-04 16:37:54 -07:00
Kevin Lewi
fa0fb48654
Fixing test vector bug with envelope ciphertext serialization and updating VOPRF ( #145 )
2021-02-21 18:44:36 -08:00
Kevin Lewi
a457d82793
Updating transcript computation for 3DH ( #143 )
2021-02-19 12:02:44 -08:00
Kevin Lewi
782eeb7090
Converting to_bytes and try_from to serialize() and deserialize() ( #138 )
2021-02-17 02:47:00 -08:00
Kevin Lewi
7f84984f61
Making message type parameters set to CipherSuite ( #140 )
2021-02-17 02:13:03 -08:00
Kevin Lewi
e694a88ef9
Exporting rand ( #137 )
2021-02-11 18:10:48 -08:00
Kevin Lewi
160ac47ffa
Renaming shared secret to session key ( #133 )
2021-02-08 11:19:06 -08:00
Kevin Lewi
099f887530
Applying envelope simplified construction and km3 mac changes ( #128 )
2021-02-04 15:57:06 -08:00
Kevin Lewi
9d3963f98e
Addressing various TODOs and minor cleanups ( #127 )
2021-02-02 12:12:20 -08:00
Kevin Lewi
6eeeb0db28
Fixing test vectors and use of SHA512 ( #120 )
2021-01-26 09:27:30 -08:00
Kevin Lewi
6dc1c8b212
Turning KeyPair into a struct ( #119 )
2021-01-25 13:20:36 -08:00
Kevin Lewi
2a2d0888a5
Adding encryption algorithm and removing unnecesssary info fields ( #114 )
2021-01-14 15:30:37 -08:00
Kevin Lewi
fa6752cdc5
Adding documentation for advanced usage + optional parameters ( #110 )
2021-01-05 10:13:00 -08:00
Kevin Lewi
9f6b32a5ea
Updating envelope structure to support two fixed modes ( #108 )
...
* Moving id_u and id_s from ClientLoginStartParameters to ClientLoginFinishParameters
* Updating envelope format to support two fixed modes
2021-01-04 14:27:20 -08:00
Kevin Lewi
f5b5391ee0
Moving id_u and id_s from the client API to registration finish instead of start ( #102 )
2020-12-17 14:00:32 -08:00
Kevin Lewi
605d2b639b
Cleaning up docs + README ( #98 )
2020-12-12 21:53:33 -08:00
Kevin Lewi and Kevin Lewi
9f414d4a82
Adding VOPRF draft's test vectors ( #95 )
...
Co-authored-by: Kevin Lewi <[email protected] >
2020-12-04 13:19:29 -08:00
Kevin Lewi and Kevin Lewi
4c82dfaf13
Adding info and einfo fields to test vectors ( #92 )
...
Co-authored-by: Kevin Lewi <[email protected] >
2020-11-29 23:06:55 -08:00
Kevin Lewi
95152c3b35
Adding API for handling info fields ( #88 )
2020-11-16 14:05:43 -08:00
Kevin Lewi
51b3781e5c
Updating AKE message format ( #85 )
2020-11-16 11:49:27 -08:00
Kevin Lewi
2d7b4292ff
Fixing simple_login example ( #86 )
2020-11-16 11:40:52 -08:00
Kevin Lewi
f165310c96
Adding expand_message_xmd and RFC compliance with VOPRF and H2C ( #80 )
2020-11-12 10:00:09 -08:00
Kevin Lewi
697cd7a788
Removing idU from RegistrationRequest and CredentialRequest ( #79 )
...
As per [cfrg/draft-irtf-cfrg-opaque#65 ](https://github.com/cfrg/draft-irtf-cfrg-opaque/issues/65 )
2020-11-06 10:06:49 -08:00
François Garillot
d8906c092a
Merge pull request #77 from huitseeker/sizedbytes
...
Start integrating the derivable SizedBytes
2020-11-04 20:34:51 -05:00
François Garillot
552a546b6c
Uses conditional compilation to make sure postprocessing is only available in tests
...
See
https://github.com/rust-lang/rust/pull/64010/
2020-11-04 11:55:14 -05:00
François Garillot
230b1bcef6
Start integrating the derivable SizedBytes
...
- just derive it on Key and KeyPair for now
2020-11-03 16:45:37 -05:00
Kevin Lewi
c8cbf56336
Conform to voprf spec ( #71 )
2020-11-02 20:15:08 -05:00
Kevin Lewi
07f8048a3d
Updating to keep in sync with issue 62 fix in spec ( #61 )
2020-11-02 20:15:06 -05:00
Kevin Lewi
0fc3448777
Updating opaque interfaces to include ids from the internet draft ( #56 )
2020-11-02 20:15:06 -05:00
François Garillot
7cc1c0992a
remove the last few constants
2020-11-02 20:15:05 -05:00
François Garillot
9c06c98ad6
Introduce enum structs to replicate TLS message format
...
This PR favors native coercions of enums to numerical types to help ser/de operations.
Small rearrangement of the serialization module.
2020-11-02 20:15:02 -05:00
François Garillot
344e8ad8d1
Updating serialization for RegisterFirstMessage ( #35 )
2020-11-02 20:14:47 -05:00
François Garillot
587ef935a7
Fix use of TryFrom<Vec<u8>> in key_exchange
...
We can directly require the HRTB on `for<'r> TryFrom<&'r [u8]>`.
Eliminates needless to_vec.
2020-09-24 14:31:29 +00:00
François Garillot
40ea015d6d
Remove the last superfluous constant
...
This required purgin the usage of the low-level Key access, but now we
should be able to replace the Key type piecemeal.
2020-09-22 08:50:39 -04:00
François Garillot
786bc51fdd
Normalize generic parameters for LoginSecondMessage
...
(aka use the CipherSuite just like the others)
Repair the generics in KE trait: it makes sense that generate_ke[1-3] should operate on the same key representation.
2020-09-19 19:16:36 -04:00