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
4da6bbce0c
Fixing key sizes and removing serialization ( #144 )
2021-02-20 03:51:04 -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
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
e35410ab95
Fixing envelope mode inconsistency and matching against latest test vectors ( #130 )
2021-02-05 13:17:02 -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
François Garillot
6b22064863
Fold a few panics
...
Removes a few panics we don't need by folding them in the Error case of their enclosing Result return.
2020-12-09 13:10:05 -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
6f5a1fc6aa
Removing protocol message bytes ( #93 )
2020-11-30 11:37:32 -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
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
28645a7cea
Add key schedule / info changes in TripleDH computation ( #69 )
2020-11-02 20:15:07 -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
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
François Garillot
3c2a208606
surface the potential breakages out of copy_from_slice
2020-09-19 19:16:31 -04:00
François Garillot
3c555e82ae
Make tripleDH manipulate GenericArray<u8, N> over Vec<u8>
...
upgrade some of the structure contents of the KE types
2020-09-19 19:16:28 -04:00
François Garillot
48412c8ee4
Merge pull request #46 from huitseeker/elligator2
...
Implement and use Elligator2 for the Curve25519 larger subgroup instance
2020-09-03 15:21:01 -04:00
François Garillot
ab8db3bf03
Propagate usage of Elligator2 map
...
Fixes #30 , #37
2020-09-03 14:17:45 -04:00
François Garillot
2c9e47d14d
Proptests exercising try_from for most structures based on random data
...
This also fixes crashes in:
- RegisterFirstMessage,
- LoginFirstMessage,
- ClientRegistration,
- ClientLogin
2020-09-02 10:29:22 -04:00
Kevin Lewi
195a698ad8
Fix omission of nonce in hmac computation for envelope ( #44 )
2020-09-01 11:23:00 -07:00
Kevin Lewi
c2edb2d95e
Adding a hash type to CipherSuite ( #24 )
2020-07-27 15:25:04 -07:00
Kevin Lewi
f8285c60ba
Introducing a trait for key exchange ( #20 )
2020-07-13 15:23:29 -07:00
François Garillot and KevinLewi
9d40aa7659
As a way to roll back the genericity, implement an extension trait of group for password-to-curve hashing,
...
This supersedes #18 .
Co-authored-by: KevinLewi <[email protected] >
2020-07-03 21:05:18 -04:00
François Garillot
41cd80ccb5
Make oprf::generate_oprf1 generic in the Digest, as long as it matches the hash-to-curve intake of the group
...
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.
2020-07-03 18:28:34 -04:00
François Garillot
52429dd2fa
fix a clone-on-copy-type
2020-07-03 17:30:33 -04:00
François Garillot
bb9c365998
Rename Group::to_bytes() into Group::to_arr(),
...
This brings the `Group` and `SizedBytes` traits into some sort of name
coherence (they both return a GenericArray). This also uses
`&my_generic_array[..]` (i.e. the `Deref` impl) over
`my_generic_array.as_slice()`.
2020-07-03 17:30:32 -04:00
Kevin Lewi
6d02c72aae
Updating to draft-krawczyk-cfrg-opaque-06, reworking envelope construction and removing AEAD ( #14 )
...
Updating to draft-krawczyk-cfrg-opaque-06, reworking envelope construction and removing AEAD
2020-07-02 12:24:53 -07:00
François Garillot
c9d467e368
Add (normal) macros showing how to generate SizedBytes to/from TryFrom + to_bytes
...
This is useful for getting serialization of the KEXState, KEXMessage formats without too much boilerplate
Add client_login, login_first_message roundtrip serialization tests
2020-06-19 15:23:21 -04:00
François Garillot
4f9b7fe86f
Update digest & hashes libraries to their latest versions
2020-06-16 06:24:14 -07:00