Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add SHA-384, EC point in Jacobi coords and optimize ec_mul_add_fast #9

Merged
merged 21 commits into from
Dec 4, 2023

Conversation

smlu
Copy link
Member

@smlu smlu commented Nov 29, 2023

Changes

  • Added ec_point_fp_jacobi which represents EC point in Jacobian coordinates
  • Implemented SHA-384 hash function
  • Optimized ec_mul_add_fast by using reversed NAF method
  • Optimized ecdsa_verify verification times by using ec_point_fp_jacobi as point types for scalar-point multiplication & addition
  • Optimized addition and doubling of ec_point_fp_jacobi
  • Fix parsing hex string
  • Added hex string overload for ec_curve_base::generate_point and ec_curve_fp::generate_point
  • Added new bigint methods: to_naf & to_rnaf, which converts integer to non-adjacent form (NAF)
  • Fixed shake128_fixed result type
  • Add type aliases for hash values

Added new method  `bigint::get_int32` which extracts 32 bit signed integer.
Added new `bigint` methods `to_naf` & `to_rnaf` which converts integer to non-adjacent form (NAF).
Added struct `ec_point_fp_jacobi` which represents EC point in Jacobian coordinates.
Implemented generating KeyPair test cases from rsp file, added additional test cases for `ec_point_fp_jacobi`.
Optimized `ec_mul_add_fast` by implementing reversed NAF scalar multiplication.
Refactored `ecdsa_verify` to use `ec_point_fp_jacobi`.
@smlu smlu merged commit ba4c9ea into master Dec 4, 2023
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant