Skip to content

Releases: ZeroPass/ack

v0.6.0

29 Dec 18:31
Compare
Choose a tag to compare

What's New

  • Implemented ECDSA public key recovery from signature
  • Added new elliptic curves: brainpoolP256r1, brainpoolP320r1, brainpoolP384r1,brainpoolP512r1, sepc384r1, sepc521r1
  • Implemented modular square root
  • Added new flexbuffer

What's Changed

  • Refactored ec_curve_fp : Added functions for decompressing & encoding/decoding EC point
  • Refactored & Fixed class bigint
  • Updated example contract, added actions for new elliptic curves
  • Updated test gen. scripts

Full Changelog: v0.5.0...v0.6.0

v0.5.0

15 Dec 10:53
8f5c092
Compare
Choose a tag to compare

What's New

  • Implemented RSA PKCS#1v1.5 & RSASSA-PSS signature verification functions for SHA-384
  • [Example] Added actions rsasha34 & rsapsssha34

What's Changed

  • Eliminated potential RSA signature malleability when s >= n
  • Fixed initializing ec_curve_fp constants
  • Fixed ec_fixed_bigint for unaligned bit sizes
  • Optimized passing of std::span and std::string_view objects to functions, potentially eliminating pointer indirection and aliasing
  • Rename assert_rsa_sha1_assert to assert_rsa_sha1
  • Rename buffer_base::alloc to buffer_base::resize
  • Renamed word size function to bitsize_to_wordsize
  • Updated test gen. scripts

Full Changelog: v0.4.0...v0.5.0

v0.4.0

04 Dec 13:33
Compare
Choose a tag to compare

What's New

  • Implemented SHA-384 hash function
  • Added ec_point_fp_jacobi which represents EC point in Jacobi coordinates.
    Utilizing Jacobi coordinates yields up to 25% greater efficiency in EC point addition, and up to 32% greater efficiency when elliptic curve coefficients are a = 0 or a = -3 (secp256k1 and secp256r1, respectively).

What's Changed

  • Optimized point multiplication in Homogeneous coordinates and function ec_mul_add_fast to use NAF method (non-adjacent form representation of signed integer) for EC point-scalar multiplication.
    This optimization resulted in an additional up to 10% increase in efficiency for EC point multiplication.
  • Optimized EC point doubling for the cases where elliptic curve coefficient a = 0 or a = -3 (secp256k1 and secp256r1, respectively).
  • Optimized signature verification times of ecdsa_verify function by using ec_point_fp_jacobi as point types for scalar-point multiplication & addition
  • Fixed bugs

Full Changelog: v0.3.0...v0.4.0

v0.3.0

04 Dec 13:31
2cb3d21
Compare
Choose a tag to compare

What's New

  • Added EC primitives, EC arithmetic operation and implemented ECDSA signature verification algorithm #5

Changes

  • Improved verifying of RSA PCKS# v1.5 padding string #7

Full Changelog: v0.2.0...v0.3.0

v0.2.0

02 Mar 00:26
Compare
Choose a tag to compare

What's Changed

  • Added SHA3-384 hash function
  • Fixed broken implementation of SHA3-512
  • Added fixed_bytes alias for std::array<byte_t, N>
  • Added compile time from_hex which returns ack::fixed_bytes
  • Refactored from_hex function to allow odd length hex string
  • Updated copyright year
  • Other bug fixes

Full Changelog: v0.1.0...v0.2.0

v0.1.0

02 Mar 00:01
Compare
Choose a tag to compare

Implemented algorithms:

  • RSA PKCS#1 v1.5 signature verification
  • RSASSA-PSS signature verification
  • SHA3-256 and SHA3-512
  • SHAKE128 and SHAKE256