Isis Lovecruft
f718a64d00
Merge remote-tracking branch 'hdevalence/feature/better-fieldelement-impl-handling' into develop
2017-07-31 20:51:53 +00:00
Isis Lovecruft
e619511881
Merge branch 'master' into develop
2017-07-31 19:42:16 +00:00
Isis Lovecruft
d0e332e36f
Merge branch 'release/0.9.3'
2017-07-31 19:42:10 +00:00
Isis Lovecruft
1388f91925
Bump curve25519-dalek version to 0.9.3.
2017-07-31 19:40:17 +00:00
Isis Lovecruft
511e9aab8a
Merge remote-tracking branch 'hdevalence/feature/64bit-precomputation' into develop
2017-07-31 19:10:13 +00:00
Isis Lovecruft
8c5c1790f3
Merge remote-tracking branch 'jasondavies/fix-readme' into develop
2017-07-31 19:06:24 +00:00
Henry de Valence
720da348c0
Add size checking to multiscalar multiplication.
2017-07-30 23:54:13 -07:00
Henry de Valence
2d01aa1bf7
Add fixme note on cache awareness
2017-07-30 22:26:18 -07:00
Henry de Valence
63ee9d21ae
tweak code arrangement to keep comments together
2017-07-30 22:24:58 -07:00
Henry de Valence
aaefb90ed3
Rename k_fold_scalar_mult to multiscalar_mult
2017-07-30 22:16:22 -07:00
Henry de Valence
9c4046c3d9
Add constant-time k-fold scalar multiplication
2017-07-30 21:13:56 -07:00
Isis Lovecruft
ad53e5b60c
Add CONTRIBUTING.md
2017-07-31 03:24:41 +00:00
Henry de Valence
f72de04003
Remove unneeded imports to suppress warnings
2017-07-30 16:29:37 -07:00
Henry de Valence
77103986a3
Split field arithmetic into per-implementation files
...
Split the field arithmetic implementations into `FieldElement`,
`FieldElement32`, and `FieldElement64`. `FieldElement` is a type alias for one
of `FieldElement32` or `FieldElement64`, depending on feature selection.
`field.rs` contains tests and code which is generic with respect to the
implementation (e.g., inversions), while `field_32bit.rs` and `field_64bit.rs`
contain the implementation-specific code.
The implementation is not completely hidden, since `FieldElement32` and
`FieldElement64` are tuple structs whose elements are public; `pub(crate)`
doesn't seem to work for tuple structs.
Similarly, the constants file is split over multiple files, depending on the
implementation.
2017-07-30 16:25:42 -07:00
Henry de Valence
513ce26942
avoid 128-bit multiplications
2017-07-20 21:33:15 -07:00
Jason Davies
b49a2e55bd
Fix broken crates.io link.
2017-07-06 23:35:43 +01:00
Isis Lovecruft
2e24b251df
Merge branch 'master' into develop
2017-06-27 21:43:28 +00:00
Isis Lovecruft
732f681b95
Merge branch 'release/0.9.2'
2017-06-27 21:43:21 +00:00
Isis Lovecruft
beb15b8807
Bump curve25519-dalek version to 0.9.2.
2017-06-27 20:47:45 +00:00
Isis Lovecruft
4608193206
Merge remote-tracking branch 'chain/subtle-no-std-fix' into develop
2017-06-27 20:44:09 +00:00
Tony Arcieri
bdcfc30fe8
Only pull in subtle's std feature if "std" is enabled
...
Otherwise subtle implicitly pulls in std because it's a default feature
2017-06-27 11:04:45 -07:00
Isis Lovecruft
8d1de2f1ba
Merge branch 'master' into develop
2017-06-26 20:41:53 +00:00
Isis Lovecruft
010e1f8dec
Merge branch 'release/0.9.1'
2017-06-26 20:41:39 +00:00
Isis Lovecruft
8374fa3000
Bump generic-array version to ^0.8.
2017-06-26 20:31:37 +00:00
Isis Lovecruft
d7b3329780
Bump curve25519-dalek version to 0.9.1.
2017-06-26 20:27:22 +00:00
Isis Lovecruft
493786db35
Merge remote-tracking branch 'doomrobo/patch-1' into develop
2017-06-26 20:21:32 +00:00
Isis Lovecruft
4e63cbfe4c
Merge remote-tracking branch 'chain/no_std-fix' into develop
2017-06-26 20:14:38 +00:00
Isis Lovecruft
5c62c424d7
Merge branch 'feature/subtle-new-crate' into develop
2017-06-26 20:11:48 +00:00
Michael Rosenberg
74b80b227e
Update sha2 and digest deps
2017-06-26 10:20:07 -04:00
Tony Arcieri
d9742c2367
Switch from libcollections to liballoc (gated on an "alloc" feature)
...
libcollections was recently merged into liballoc:
https://github.com/rust-lang/rust/pull/42648
I went ahead and also added an "alloc" feature which no_std users can use to opt
into liballoc features (i.e. any code using Vec). This should have no effect on
anything but no_std usage. It does make it possible for people without
allocators to use curve25519-dalek if they want though. Might be nice for
"bare metal" development.
All that said, from what I can gather liballoc, while not "stable", should
likely stick around for the forseeable future.
Some backstory on the liballoc/libcollections merge here:
https://github.com/rust-lang/rust/pull/42565
2017-06-19 16:59:45 -07:00
Isis Lovecruft
4bcf8bed9d
Move subtle to its own crate.
2017-05-31 21:20:56 +00:00
Isis Lovecruft
b2470cb7b9
Merge branch 'feature/subtle' into develop
2017-05-31 02:05:00 +00:00
Isis Lovecruft
161c0cd96d
Add a doctest for subtle::bytes_equal().
2017-05-31 01:31:40 +00:00
Isis Lovecruft
43481a9ff6
Change the whitespace because Boats made fun of it on twitter.
2017-05-31 01:31:37 +00:00
Isis Lovecruft
4ecf6ab326
Implement constant-time selection between two things.
2017-05-31 01:29:59 +00:00
Isis Lovecruft
c0d3cfc3b7
Whitespace fix in subtle module.
2017-05-31 01:28:13 +00:00
Isis Lovecruft
16904432be
Remove an unnecessary explicit return in FieldElement.to_bytes().
2017-05-28 22:45:13 +00:00
Isis Lovecruft
674a00df5b
Some rustfmt fixes. I disagreed with all the other ones.
2017-05-28 22:42:09 +00:00
Isis Lovecruft
648f95887a
Rename subtle::bytes_equal_ct() to bytes_equal().
2017-05-27 18:35:34 +00:00
Isis Lovecruft
1c4f283be4
Change debug_assert to assert in arrays_equal().
2017-05-27 18:28:37 +00:00
Isis Lovecruft
60692ce891
Put math/code in a docstring in ticks.
2017-05-27 18:24:08 +00:00
Isis Lovecruft
2485472023
Remove explicit lifetime, caught by clippy.
2017-05-27 18:23:31 +00:00
Isis Lovecruft
044128dc58
Remove excessive clone() on Copy, caught by clippy.
2017-05-27 18:21:37 +00:00
Isis Lovecruft
3a664a054a
Whitespace fix in decaf module.
2017-05-27 01:20:14 +00:00
Isis Lovecruft
64e4274aad
Merge branch 'master' into develop
2017-05-27 00:58:00 +00:00
Isis Lovecruft
97d69740c7
Merge branch 'release/0.9.0'
2017-05-27 00:57:54 +00:00
Isis Lovecruft
3decdbed0d
Make arrays_equal() work for any size &[u8], as long as sizes are equal.
2017-05-26 22:39:20 +00:00
Isis Lovecruft
0c38718346
Rename subtle::arrays_equal_ct() to subtle::arrays_equal().
...
It's already obvious that it's constant-time because it's in the subtle
module.
2017-05-26 22:35:45 +00:00
Isis Lovecruft
e74be0024d
Better documentation for arrays_equal_ct.
2017-05-26 21:22:31 +00:00
Isis Lovecruft
a12c2979fb
Fix the doctest for byte_is_nonzero.
2017-05-26 20:53:18 +00:00