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

ECRecover precompile accept non-standard v values #964

Conversation

nanocryk
Copy link
Contributor

@nanocryk nanocryk commented Jan 6, 2023

sp_io::crypto::secp256k1_ecdsa_recover accepts v to be 0,1,27,28; while geth version only accept 27 and 28.
Geth code also check that the rest of the 32 bytes v value is filled with zeros.

@nanocryk nanocryk requested a review from sorpaas as a code owner January 6, 2023 13:20
@sorpaas sorpaas merged commit 9f27e18 into polkadot-evm:master Jan 7, 2023
@nanocryk nanocryk deleted the jeremy-more-checks-in-ecrecover-precompile branch January 9, 2023 09:56
abhijeetbhagat pushed a commit to web3labs/frontier that referenced this pull request Jan 11, 2023
nanocryk added a commit to moonbeam-foundation/frontier that referenced this pull request Jan 16, 2023
nanocryk added a commit to moonbeam-foundation/frontier that referenced this pull request Jan 16, 2023
* v can only be 27 or 28 prefixed only with zeros (polkadot-evm#964)

* check input size is a multiple of 192 (like in geth) (polkadot-evm#963)

* pad input if too short

* pad input in modexp

* pad all input fields + fix wrong test

* fix modexp gas cost

* remove dbg!

* remove redundant arg + import vec!

* use copy_from_slice

* clippy

* clippy

* fix template compilation

* more ecrecover tests

Co-authored-by: librelois <c@elo.tf>
zjb0807 added a commit to AcalaNetwork/Acala that referenced this pull request Jan 27, 2024
zjb0807 added a commit to AcalaNetwork/Acala that referenced this pull request Jan 28, 2024
zjb0807 added a commit to AcalaNetwork/Acala that referenced this pull request Jan 29, 2024
* update PrecompileHandle ref: rust-ethereum/evm#122

* update fee calculation ref: rust-ethereum/evm#132

* add code_size/code_hash fn in StackState trait ref: rust-ethereum/evm#140

* update evm call stack ref: rust-ethereum/evm#136

* update evm call stack ref: rust-ethereum/evm#155

* add shanghai eips 3651, 3855, 3860 ref: rust-ethereum/evm#152

* update is_precompile ref: rust-ethereum/evm#157

* fix eip-3860 ref: rust-ethereum/evm#160

* update runtime config ref: rust-ethereum/evm#161

* add eip-4399 ref: rust-ethereum/evm#162

* fix eip-2618 ref: rust-ethereum/evm#163

* fix nonce back to U256 ref: rust-ethereum/evm#166

* remove exit_substate in create functions ref: rust-ethereum/evm#168

* record external cost ref: rust-ethereum/evm#170

* add record_external_operation ref: rust-ethereum/evm#171

* add storage_growth ref: rust-ethereum/evm#173

* update evm

* switch to shanghai hardfork

* update ecrecover ref: polkadot-evm/frontier#964 (#2696)
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.

2 participants