Commit graph

287 commits

Author SHA1 Message Date
Isis Lovecruft
4e63cbfe4c
Merge remote-tracking branch 'chain/no_std-fix' into develop 2017-06-26 20:14:38 +00: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
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
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
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
Isis Lovecruft
c6057cb2d0
Merge remote-tracking branch 'hdevalence/feature/fast-decaf' into develop 2017-05-25 21:51:57 +00:00
Isis Lovecruft
8772e863e7
Merge remote-tracking branch 'manishearth/fuzz' into develop 2017-05-25 21:50:48 +00:00
Isis Lovecruft
00f3a20329
Merge branch 'feature/add-sub-assign' into develop 2017-05-21 23:04:06 +00:00
Henry de Valence
58982cbc2b Lower the trial number in decaf_random
The radix_51 implementation has many more debug checks, so this takes quite
long to run, and it's rude to run a fuzzer on the CI server.
2017-05-20 21:39:58 -07:00
Henry de Valence
27dbfa9536 Use Mike Hamburg's trick for Decaf compression. 2017-05-20 21:39:58 -07:00
Henry de Valence
52e51bdb16 Add constants for 1/sqrt(a-d) and 1/(a-d) 2017-05-20 21:39:58 -07:00
Henry de Valence
e4913dfc2b Batch inversions in Decaf decompression. 2017-05-20 21:39:58 -07:00
Henry de Valence
273db53cfd Benchmark Edwards decompression and compression 2017-05-20 21:39:58 -07:00
Henry de Valence
f741e50eb5 Add a test against current encodings of small multiples of the ed25519 basepoint 2017-05-20 21:39:58 -07:00
Manish Goregaokar
e076079772 Add cargo-fuzz 2017-05-19 16:44:05 -07:00
Henry de Valence
714bf3dd07 Set the number of trials back to 10,000 2017-05-19 14:23:51 -07:00
Henry de Valence
fbd8d0a605 Rewrite decaf elligator code to avoid two consecutive additions 2017-05-19 14:23:51 -07:00
Henry de Valence
b6cb7a7983 Increase number of trials for decaf elligator 2017-05-19 14:23:51 -07:00
Isis Lovecruft
e374451249
Implement {AddAssign, SubAssign} for DecafPoint. 2017-05-18 23:02:39 +00:00
Isis Lovecruft
27e4ea5181
Add a divider to separate Neg code from Add/Sub. 2017-05-18 23:01:31 +00:00
Isis Lovecruft
ed315ffcae
Implement {AddAssign, SubAssign} for ExtendedPoint. 2017-05-18 23:00:55 +00:00
Isis Lovecruft
b97868beb8
Remove unused import of ExtendedPoint in decaf::test module. 2017-05-18 03:44:42 +00:00
Isis Lovecruft
cc86091224
Remove unused import of DecafPoint in curve module. 2017-05-18 03:43:42 +00:00
Isis Lovecruft
767c99adf5
Remove unused assignment in a decaf test. 2017-05-18 03:43:15 +00:00
Isis Lovecruft
891cf76aab
Remove unused imports in curve::bench module. 2017-05-18 03:42:31 +00:00
Isis Lovecruft
0b70ab3638
Move DecafPoint * Scalar definition to decaf module. 2017-05-18 02:57:10 +00:00
Isis Lovecruft
e3adf3eea3
Merge remote-tracking branch 'hdevalence/feature/decaf_elligator_hash_to_point' into develop 2017-05-18 02:50:28 +00:00
Henry de Valence
aea15e8612 remove debugging println!s 2017-05-15 22:40:09 -07:00
Henry de Valence
69c62a8a17 Serde Scalar support 2017-05-15 22:40:09 -07:00
Henry de Valence
d3515e8cbf Add test that decompressing an invalid point with serde fails 2017-05-15 22:40:09 -07:00
Henry de Valence
69fd268aa4 Make serde an optional feature 2017-05-15 22:40:09 -07:00
Henry de Valence
7c32271346 Initial work on Serde support 2017-05-15 22:37:50 -07:00
Henry de Valence
608634a7bd Implement DecafPoint::{random, hash_from_bytes, from_hash} using Decaf-flavoured elligator 2017-05-15 21:06:26 -07:00
Isis Lovecruft
fe58e81bbc
Add missing conditional import for collection::Vec. 2017-05-14 11:16:07 +00:00
Isis Lovecruft
4a646806b8
Merge branch 'feature/scalarmult-lhs' into develop 2017-05-14 09:35:15 +00:00
Isis Lovecruft
61d07693ec
Merge remote-tracking branch 'hdevalence/feature/operator_scalar_mult_r2' into develop 2017-05-14 09:34:45 +00:00
Isis Lovecruft
ae11d4bc76
Merge remote-tracking branch 'hdevalence/feature/vartime-module' into develop 2017-05-14 09:34:14 +00:00