Commit Graph

174 Commits

Author SHA1 Message Date
Kevaundray Wedderburn 26ad90593b Add `-d` as a constant to be used in Decaf 2020-04-26 17:00:16 +01:00
Kevaundray Wedderburn 1838c9c71e remove useless test 2020-04-26 16:59:46 +01:00
Kevaundray Wedderburn 348b304ed1 Make Fq::zero and Fq::one constant functions 2020-04-26 16:58:43 +01:00
Kevaundray Wedderburn 04c87b1daf fix build 2020-04-25 20:31:42 +01:00
Kevaundray Wedderburn 45a41613be fix build 2020-04-25 20:31:05 +01:00
Kevaundray Wedderburn 118293c44d cargo 2020-04-25 15:38:24 +01:00
Kevaundray Wedderburn 525af3dbe1 Initial Refactor from reference:
- Implement subtle traits
 - Impement is_negative
2020-04-25 15:36:29 +01:00
Kevaundray Wedderburn 0cd86d9e9b Initial Refactor from reference: Scalar Mul 2020-04-25 15:34:02 +01:00
Kevaundray Wedderburn 098ffcd4c0 Initial Refactor from reference: Twisted Edwards module 2020-04-25 15:10:27 +01:00
Kevaundray Wedderburn fe5cdc2c2c Initial Refactor from reference: Edwards refers to the Goldilocks curve 2020-04-25 14:42:26 +01:00
Kevaundray Wedderburn 4953dbd07d Merge branch 'master' of https://github.com/crate-crypto/Curve448 2020-04-23 20:48:45 +01:00
Kevaundray Wedderburn 618bbbd242 update readme 2020-04-23 20:48:21 +01:00
kevaundray 564a00b2c5
Create rust.yml 2020-04-23 12:13:03 +01:00
Kevaundray Wedderburn 9f5a15f8df Add simple tests for ScalarMul 2020-04-16 21:07:41 +01:00
Kevaundray Wedderburn e22bf9d856 cargo fmt 2020-04-16 20:46:13 +01:00
Kevaundray Wedderburn e81aab8885 Merge branch 'master' of https://github.com/crate-crypto/Curve448 2020-04-16 20:45:06 +01:00
Kevaundray Wedderburn 93f4441718 - Add ScalarMul function
- Fix equals function
2020-04-16 20:41:54 +01:00
Kevaundray Wedderburn 931a0887f2 AffineNiels
- Add `conditional_negate`
2020-04-16 20:40:41 +01:00
Kevaundray Wedderburn 5b34118eda ProjectiveNielsPoints
Add `to_affine_niels`, `to_extended` and `conditional_negate`
2020-04-16 20:40:01 +01:00
Kevaundray Wedderburn 42bffbeb95 Add wnaf lookup function 2020-04-16 20:35:22 +01:00
Kevaundray Wedderburn d77a06127f - Remove extra From traits, so that we do not need to tell the compiler what From Trait to use. Then refactor all Fq::from() methods to match this
- Add conditional_negate, conditional_swap and tests

- Add tests for equal
2020-04-16 20:34:37 +01:00
Rohit Narurkar 5ac1f75843
add default trait for field, scalar and curve points (#14)
Co-authored-by: Rohit Narurkar <rohitnarurkar@gmail.com>
2020-04-16 20:10:14 +01:00
Kevaundray Wedderburn 0263ad6e49 Iniital windowing methods 2020-04-14 23:16:58 +01:00
Kevaundray Wedderburn c35a9a5584 change visibility of slice that Scalar aliases 2020-04-14 23:16:14 +01:00
Kevaundray Wedderburn e2e1cd97e3 Add extensible and affine modules to dependency tree 2020-04-14 23:15:48 +01:00
Kevaundray Wedderburn 0df29826f7 Initial implementation of extensible point 2020-04-14 23:15:02 +01:00
Kevaundray Wedderburn 757b8fe41b Add Identity point for ProjectiveNiels 2020-04-14 23:14:35 +01:00
Kevaundray Wedderburn 4ed8d991f3 Add to_projective, add_projective_niels and add_affine_niels 2020-04-14 23:13:47 +01:00
Kevaundray Wedderburn 9cd8354c82 Add Affine and AffineNiels Point 2020-04-14 23:12:54 +01:00
Kevaundray Wedderburn 40101ad144 change visibilty of strong_reduce and invert 2020-04-14 23:12:15 +01:00
Rohit Narurkar cd6390dd93
implement and use karatsuba square function (#13)
Co-authored-by: Rohit Narurkar <rohitnarurkar@gmail.com>
2020-04-14 14:47:34 +01:00
kevaundray c852701116
Merge pull request #12 from roynalnaruto/fn/is_zero
function is_zero using constant-time execution
2020-04-14 13:08:43 +01:00
Rohit Narurkar dddcf81543 function is_zero using constant-time execution 2020-04-14 06:53:23 +05:30
Kevaundray Wedderburn 2a1c65c331 update readme 2020-04-12 21:52:58 +01:00
Kevaundray Wedderburn aad5408a58 - Add mul_double_limb
- Add negate
- Add Sub
2020-04-12 21:52:03 +01:00
Kevaundray Wedderburn ae46f79876 Add Extended Point 2020-04-12 21:45:49 +01:00
Kevaundray Wedderburn 0f1d437f7e Add ProjectivePoint curve representation 2020-04-12 21:44:50 +01:00
Kevaundray Wedderburn 3023e70227 Add wrapping mul for u64 integers in karatsuba to avoid overflow 2020-04-12 21:44:19 +01:00
Kevaundray Wedderburn 38b6d8fe5a remove sub and weak_reduce method from montgomery module 2020-04-12 17:50:35 +01:00
Kevaundray Wedderburn 229ffd2cb1 use constants in montgomery 2020-04-12 17:45:16 +01:00
Kevaundray Wedderburn 5ca2f214ae Add `1-d` and `d` constants 2020-04-12 17:44:59 +01:00
Kevaundray Wedderburn 1f443918d7 update readme 2020-04-12 14:50:22 +01:00
Kevaundray Wedderburn 55d3203f0e Add initial montgomery step algorithm 2020-04-12 14:45:26 +01:00
Kevaundray Wedderburn 58418c94c5 - Add constants file to curve module
- Add curve module to library tree
2020-04-12 14:44:57 +01:00
Kevaundray Wedderburn e399f030f4 [nit] : Initialise and declare variable when it is needed 2020-04-11 11:55:30 +01:00
Kevaundray Wedderburn e61bb07616 Modify test vector for squaring 2020-04-11 11:49:50 +01:00
Kevaundray Wedderburn 8f27f7872e Add Scalar Inversion 2020-04-11 11:42:01 +01:00
Kevaundray Wedderburn 56fab1a9ee move tests for field elements into their own module 2020-03-15 00:24:27 +00:00
Kevaundray Wedderburn 73cacd0eac remove constants import 2020-03-15 00:02:23 +00:00
Kevaundray Wedderburn 932b8f8b7b Add mul test 2020-03-12 23:32:14 +00:00