Commit graph

854 commits

Author SHA1 Message Date
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
bunnie
11131146be add test vector generation infrastructure for engine25519 2020-08-07 23:12:05 +08:00