Commit graph

50 commits

Author SHA1 Message Date
Isis Lovecruft
27c73fdb57
Feature gate reusable secrets and make the name more intuitive. 2021-04-20 21:33:32 +00:00
Isis Lovecruft
0a1023f4db
Implement reused secret keys for Noise protocol. 2021-04-14 20:00:41 +00:00
Isis Lovecruft
2333b52698
Move tests to a separate directory. 2021-04-14 19:45:36 +00:00
Isis Lovecruft
9e387372e6
Remove unused import from test suite. 2021-04-14 19:33:11 +00:00
Isis Lovecruft
0cca7977fc
Derive Zeroize for PublicKey. 2021-04-14 19:29:09 +00:00
Isis Lovecruft
fc945778ab
Fixups for doctest from #33. 2021-04-14 05:05:54 +00:00
Isis Lovecruft
cdd97559de
Merge remote-tracking branch 'zer0x64/master' into develop 2021-04-14 04:55:59 +00:00
Isis Lovecruft
1c39ff92e0
Update copyright years. 2021-04-14 04:32:20 +00:00
Jack Michaud
3c09664112 Feedback from @hdevalence - Added derive for Eq and Hash 2020-08-31 12:15:43 -07:00
Jack Michaud
48df927d7b Add PartialEq derive to PublicKey
Derives from the PartialEq impl for MontgomeryPoint
2020-08-30 17:41:54 -07:00
Henry de Valence
fb92cd82da Clarify Ephemeral/StaticSecret docs.
Also does a pass through the docs converting `TypeNames` to Rustdoc links, and
making sure that all the items have consistent summaries.

Closes #58
Closes $56
2020-08-17 19:25:12 -07:00
Henry de Valence
736f8dd313
Merge pull request #60 from dalek-cryptography/remove-rand-os-example
Remove rand os example
2020-08-17 19:22:21 -07:00
Henry de Valence
5d245dcefa
Merge pull request #43 from peat/master
Add .to_bytes() to PublicKey, SharedSecret
2020-08-17 18:55:18 -07:00
Henry de Valence
8287798aa1 Update doc examples to remove deprecated code and restore testing.
Closes #59.

The doc examples have code interspersed with text explaining the API.  Because
each doctest executes independently, when these code examples are run as
doctests, they have to include parts of the previous examples with # lines.
These lines are hidden from Rustdoc output and do not appear in the rendered
docs, but they do appear when viewing the README.md on Github.

In order to hide these on Github, the code blocks were made non-executable,
with their content moved to a unit test.  However, this meant that the example
API usage was not tested, and so when the unit test was updated to remove the
deprecated `rand_os`, there was no check that the examples stayed in sync with
the test, causing #59.  To prevent this from reocurring in the future, go back
to executable tests of the API examples.
2020-08-17 18:47:31 -07:00
Henry de Valence
5d91bd8f22 Make bound on csprng more general.
`rand_core` defines a blanket impl of `RngCore + CryptoRng` for `&mut T` where
`T: RngCore + CryptoRng`, so rather than requiring a borrowed RNG, it's better
to require an owned RNG, as this allows passing either owned or borrowed
values.  In particular, this makes `OsRng` usage much more ergonomic, because
the caller is not forced to do `&mut OsRng` on the zero-sized struct.
2020-08-17 18:44:48 -07:00
DebugSteven
be82bcb15b update rand_core version
Co-authored-by: Greg <gregory.mkv@gmail.com>
2019-11-26 14:28:34 -07:00
DebugSteven
de5d79388b use zeroize instead of clear_on_drop 2019-11-26 13:44:50 -07:00
DebugSteven
0c3981d87a support for serde serialize and deserialize 2019-11-11 10:46:28 -05:00
Peat Bakke
1d61e1ba46 Add .to_bytes() to PublicKey, so that it has similar capabilities to the ed25519 PublicKey impl. Also to SharedSecret for consistency. 2019-06-05 12:20:02 -07:00
Bodo Junglas
0f187b4670
Ensure that all data of StaticSecret is cleared on drop 2019-04-12 08:34:41 +02:00
Michael Rosenberg
935f6e8e35
Made StaticSecret cloneable 2019-03-22 12:50:55 -04:00
Isis Lovecruft
23e61b7063
Merge remote-tracking branch 'rozbb/master' into develop 2019-02-27 21:51:37 +00:00
Isis Lovecruft
60f276db72
Fix README examples and doctests. 2019-02-27 20:45:55 +00:00
Michael Rosenberg
2a58e35b23
PublicKey now derives Copy, Clone, Debug 2019-02-27 12:40:14 -05:00
Henry de Valence
aee783ae82
use clamp_scalar for StaticSecret
This ensures that the `StaticSecret`'s scalar always has the X25519 bit-twiddles applied.

Co-Authored-By: DebugSteven <debugsteven@gmail.com>
2019-02-16 16:31:05 -05:00
DebugSteven
6797c0969f summarize how types are used & how they relate to one another 2019-02-16 10:57:42 -07:00
DebugSteven
29edaa17ac informative doc comments 2019-02-16 10:22:06 -07:00
DebugSteven
ad670a4d03 methods to convert a StaticSecret to and from bytes 2019-02-16 09:42:56 -07:00
DebugSteven
4caffdcca0 impl StaticSecret & create DH method that borrows our StaticSecret 2019-02-16 09:14:43 -07:00
DebugSteven
9fe535dcc7 rename EphemeralPublic to PublicKey 2019-02-16 08:57:09 -07:00
Philippe Dugre
1d23a1d30d Added doc example for x25519() 2019-01-25 17:08:48 -05:00
Henry de Valence
1117184a02 Add EphemeralPublic::as_bytes 2019-01-22 14:11:44 -08:00
Henry de Valence
dd8b61da4a Add an X25519 basepoint constant 2019-01-15 21:44:56 -08:00
Isis Lovecruft
c9a1ef6a36
Credit @DebugSteven as an author. 2019-01-12 23:34:49 +00:00
DebugSteven
d3b7ccf030 byte-oriented x25519 function 2018-12-16 11:30:32 -07:00
DebugSteven
ff0e1f286b From<[u8; 32]> for Ephemeral Public, fix to benches 2018-12-07 17:51:08 -05:00
DebugSteven
8730bfbba6 move implementation of x25519 into diffie_hellman 2018-12-07 17:07:24 -05:00
DebugSteven
ccf7e5bb57 remove mul; remove derive default on SharedSecret; rename decode to clamp 2018-12-03 13:27:35 -05:00
DebugSteven
7f822ff3dd explicit lifetimes 2018-12-03 12:20:33 -05:00
DebugSteven
734abac70b wrap MontgomeryPoint in EphemeralPublic, impl From; remove byte fns for EphemeralSecret 2018-12-02 14:23:09 -05:00
DebugSteven
a599644406 remove pub from x25519 fn 2018-11-27 17:02:38 -05:00
DebugSteven
4c6498ec69 change impl Drop for SharedSecret to use clear directly 2018-11-18 15:19:58 -05:00
DebugSteven
1b64afd83d associate diffie_hellman, generate_public, generate_secret with the Ephemeral type; implement Mul for Ephemeral; create SharedSecret type & implement drop; change docs to reflect new methods on the Ephemeral type 2018-11-10 15:29:17 -05:00
DebugSteven
e93a7125d9 revert change to fn x25519 2018-11-06 17:04:18 -05:00
DebugSteven
34abee71f8 generate secret key in impl & use the type 2018-11-06 16:51:57 -05:00
DebugSteven
bd13f0728f add clear_on_drop to toml & add secret key type 2018-11-06 14:00:52 -05:00
Isis Lovecruft
1aec62c6be
Switch to using traits from rand_core instead of rand. 2018-07-23 17:15:09 +00:00
Jake McGinty
cb88ab169a Use latest curve25519-dalek.
Fixes #5 (allows x25519-dalek to compile on stable).

informed by 6748ddd:
  - sub `CompressedMontgomeryU` with `MontgomeryPoint`, removing
    (de)compress calls.
informed by d32fe97:
  - sub `Scalar([u8; 32])` with `Scalar::from_bits([u8; 32])`
2018-05-01 20:18:43 -07:00
Isis Lovecruft
f8c554dd97
Move seldom-used import. 2017-10-24 06:10:27 +00:00
Isis Lovecruft
3702a7c598
Initial commit. 2017-10-09 04:02:40 +00:00