Commit graph

855 commits

Author SHA1 Message Date
bunnie
279bbc5287 work around compiler bug https://github.com/rust-lang/rust/issues/86693
thanks @xobs for the work-around!
2021-06-29 22:42:47 +08:00
bunnie
1a79b76e90 move microcode to the Xous side of things
minimizing the mount of data movement speeds up operations by
about 2x
2021-06-28 18:31:45 +08:00
bunnie
41cc7c4ab3 accelerate the affine transform in hardware 2021-06-28 04:42:01 +08:00
bunnie
9ffc75dd3c more fixes to try to clean up the build system 2021-06-28 01:27:03 +08:00
bunnie
6ee5e8aeb1 clean up warnings 2021-06-27 03:12:00 +08:00
bunnie
98dfce7ec2 fix remaining configuration warts
builds clealy as a test crate, without any dependency on
xous proper for configurations that don't involve xous.
2021-06-27 03:02:18 +08:00
bunnie
ea4bc9b079 attempt to clean up some dependency issues 2021-06-27 01:58:27 +08:00
bunnie
0b748f6365 stash a version of the XousEngine25519 trait in case we want it later 2021-06-27 00:30:26 +08:00
bunnie
0b0cda3118 initial swag at gluing things together
Note: breaks for anyone's build environment but mine!
2021-06-26 13:41:19 +08:00
bunnie
6e2cf5ab43 add macros 2021-06-26 02:11:37 +08:00
bunnie
b4e8accf38 Merge branch 'main' into HEAD 2021-06-20 19:20:06 +08:00
Isis Lovecruft
2ea17d554a
Update CHANGELOG and README; bump to 3.1.0. 2021-04-14 01:30:57 +00:00
isis agora lovecruft
5eca140010
Merge pull request #351 from isislovecruft/fix/cleanup-elligator
Trivial cleanups to Elligator2 encoding
2021-04-13 23:31:14 +00:00
isis agora lovecruft
cecc821f40
Merge pull request #342 from huitseeker/fiat4_with_u32
Serial backends w/formally-verified field arithmetic for 32 & 64 bits
2021-04-13 23:23:41 +00:00
Isis Lovecruft
0da8f08d65
Maintain legacy 3.x support for lookup tables. 2021-04-13 22:23:34 +00:00
Isis Lovecruft
ee90202a58
Trivial cleanups to Elligator2 encoding.
cf. https://github.com/dalek-cryptography/curve25519-dalek/pull/336
2021-04-13 00:24:50 +00:00
Isis Lovecruft
cc0c444fae
Merge branch 'feature/dynamic-table-sizes' into develop 2021-03-25 04:34:08 +00:00
Isis Lovecruft
1491f0db36
Update copyright years. 2021-03-25 04:10:55 +00:00
isis agora lovecruft
b79a276806
Merge pull request #336 from huitseeker/elligator2
Elligator2 mapping for curve25519
2021-03-25 03:13:41 +00:00
Isis Lovecruft
d0014f6d87
Merge remote-tracking branch 'zgfzgf/feat-unused-import' into develop 2021-03-25 02:30:05 +00:00
Isis Lovecruft
ab468cd24c
Fix copyright years in some of the files I touched. 2021-03-25 02:29:37 +00:00
Isis Lovecruft
4a1fc3c66e
Implement Zeroize for points as the identity element. 2021-03-25 01:45:54 +00:00
Isis Lovecruft
5482c76d16
Merge remote-tracking branch 'garbageslam/zeroize_ristretto' into develop 2021-03-24 18:35:46 +00:00
Isis Lovecruft
da0c49985c
Merge remote-tracking branch 'gedigi/zeroize_ristrettopoint' into develop 2021-03-24 18:12:22 +00:00
Chris Beck
0154ebbfaf implement Zeroize trait on Ristretto curve point types
This is helpful for hardening some of our cryptographic implementations
that use Ristretto curve points
2021-02-10 12:14:32 -07:00
zgfzgf
08bf6ebf08 fix build warning 2021-02-03 17:46:01 +08:00
François Garillot
d1ed427af5
add fiat backends to Travis tests 2021-01-21 08:58:21 -05:00
François Garillot
e2651cceb6
Rename elligator_map -> elligator_encode
leaves an obvious name open for the reverse mapping
2021-01-12 13:46:04 -08:00
François Garillot
abd1922456
Add a fiat_u32 backend based on fiat-crypto as well.
Renames fiat backend directory to fiat_u64 and does the additional plumbing required to make fiat_{u32, u64}_backend equal alternatives.
Adds a few comments.
2021-01-11 15:45:24 -08:00
François Garillot
a9e50eab36
implement conditional assign with fiat__25519_cmovznz_u64 2021-01-11 09:30:30 -08:00
François Garillot
4ce680d3aa
Update the fiat backend to use the fiat-crypto package
https://crates.io/crates/fiat-crypto
2021-01-11 09:30:30 -08:00
François Garillot
d684e13f09
Add a fiat_u64_backend option to curve25519-dalek
This uses https://github.com/calibra/rust-curve25519-fiat/ to implement a new 64bit serial backend for dalek.

Co-authored-by: Zoe Parakevopoulou <zoopar@fb.com>
2021-01-11 09:30:07 -08:00
Isis Lovecruft
55e0db7cf6
Bump curve25519-dalek version to 3.0.2. 2021-01-08 03:32:42 +00:00
Isis Lovecruft
77ec974212
Whitespace fixes for 3267a5d merge. 2021-01-08 00:33:37 +00:00
Isis Lovecruft
3267a5d75d
Merge remote-tracking branch '3for/comment-fix' into develop 2021-01-08 00:27:34 +00:00
François Garillot
8aa1458941
Implements an Elligator2 map for Curve25519
This implementation:
- is agnostic on the hash used to pick a field element, even though SHA512 is commonly used,
- follows https://tools.ietf.org/id/draft-irtf-cfrg-hash-to-curve-10.html closely
- tests the outputs of the function using libsignal's implementation.
2020-10-21 17:38:22 -04:00
Stephane Raux
608f8cd594 Make crate feature alloc work with stable Rust
`println!` was removed in the test as the corresponding test for `u32` does not have it.
2020-10-20 18:15:00 -07:00
bunnie
2a1aaa72e8 leave a breadcrumb for the next work to do 2020-08-21 02:31:37 +08:00
bunnie
eb45d338ee mods to get hardware integration to actually work. 2020-08-21 01:37:10 +08:00
bunnie
247c8ca2b7 add full montgomery scalar multiply implementation in hardware 2020-08-21 00:07:54 +08:00
bunnie
9c3d34345c add hardware acceleration to differential point add and double
hacky implementation, but it'll let us do a performance benchmark
2020-08-20 15:47:02 +08:00
Henry de Valence
6d96eb7796 Bump version to 3.0.0. 2020-08-17 18:20:26 -07:00
Henry de Valence
2ee61938ee
Merge pull request #327 from huitseeker/digests-0.9
Update sha2, digest to 0.9
2020-08-17 18:11:32 -07:00
bunnie
a2835635e7 add test for BRZ instruction
a simple loop that does factorial.
2020-08-15 05:51:21 +08:00
bunnie
ee8e719b06 add test case to exercise the re-overflow corner case
it doesn't happen, i think there is a property of the math
that makes us safe but i can't reason about what it is.
2020-08-14 18:21:56 +08:00
bunnie
2d3e37495d increase number of random multiply vectors 2020-08-14 14:42:26 +08:00
bunnie
f61a91c6b6 add some more rigorous test cases
catch the case that the 14th limb overflows into the 15th at the
final carry propagate step
2020-08-14 02:29:10 +08:00
bunnie
6e6ac6ade4 add multiply vectors 2020-08-13 04:46:51 +08:00
bunnie
616801bd4c add test is not working 2020-08-10 18:32:46 +08:00
bunnie
c8bd4211f6 edit test to include normalization after add 2020-08-08 02:11:00 +08:00