starkware-libs / starkex-resources

Apache License 2.0
82 stars 42 forks source link

Pedersen function of signature.js cannot hash starknet public keys #11

Open merkle-groot opened 2 years ago

merkle-groot commented 2 years ago

Issue

Signaure.js serves as a library to perform cryptographic functions required in starknet smart-contracts. The Pedersen Hash implementation in it doesn't allow for hashing of starknet public keys.

The issue is due to failure of assertion inside the function, which only takes input between 0 (not included) to '800000000000011000000000000000000000000000000000000000000000001'.

assert(x.gte(zeroBn) && x.lt(prime), 'Invalid input: ' + input[i]);

The python implementation of the same function is able to compute the pedersen hash.