- 06 12月, 2017 1 次提交
-
-
由 Felix Lange 提交于
We need those operations for p2p/enr. Also upgrade github.com/btcsuite/btcd/btcec to the latest version and improve BenchmarkSha3. The benchmark printed extra output that confused tools like benchstat and ignored N.
-
- 01 12月, 2017 1 次提交
-
-
由 Matthew Di Ferrante 提交于
Generator in the current lib uses -2 as the y point when doing ScalarBaseMult, this makes it so that points/signatures generated from libs like py_ecc don't match/validate as pretty much all other libs (including libsnark) have (1, 2) as the standard generator. This does not affect consensus as the generator is never used in the VM, points are always explicitly defined and there is not ScalarBaseMult op - it only makes it so that doing "import github.com/ethereum/go-ethereum/crypto/bn256" doesn't generate bad points in userland tools.
-
- 17 8月, 2017 1 次提交
-
-
由 Péter Szilágyi 提交于
-
- 08 8月, 2017 1 次提交
-
-
由 Egon Elbre 提交于
* crypto: fix megacheck warnings * crypto/ecies: remove ASN.1 support
-
- 01 6月, 2017 1 次提交
-
-
由 Péter Szilágyi 提交于
-
- 24 5月, 2017 1 次提交
-
-
由 Felix Lange 提交于
Also add the package to the license tool ignore list.
-
- 23 5月, 2017 1 次提交
-
-
由 Péter Szilágyi 提交于
-
- 18 5月, 2017 1 次提交
-
-
由 Jeffrey Wilcke 提交于
This commit is a preparation for the upcoming metropolis hardfork. It prepares the state, core and vm packages such that integration with metropolis becomes less of a hassle. * Difficulty calculation requires header instead of individual parameters * statedb.StartRecord renamed to statedb.Prepare and added Finalise method required by metropolis, which removes unwanted accounts from the state (i.e. selfdestruct) * State keeps record of destructed objects (in addition to dirty objects) * core/vm pre-compiles may now return errors * core/vm pre-compiles gas check now take the full byte slice as argument instead of just the size * core/vm now keeps several hard-fork instruction tables instead of a single instruction table and removes the need for hard-fork checks in the instructions * core/vm contains a empty restruction function which is added in preparation of metropolis write-only mode operations * Adds the bn256 curve * Adds and sets the metropolis chain config block parameters (2^64-1)
-
- 14 4月, 2017 1 次提交
-
-
由 Felix Lange 提交于
-
- 09 3月, 2017 2 次提交
-
-
由 Péter Szilágyi 提交于
-
由 Péter Szilágyi 提交于
-
- 28 2月, 2017 1 次提交
-
-
由 Felix Lange 提交于
* common/math: optimize PaddedBigBytes, use it more name old time/op new time/op delta PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19) name old alloc/op new alloc/op delta PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20) * all: unify big.Int zero checks Various checks were in use. This commit replaces them all with Int.Sign, which is cheaper and less code. eg templates: func before(x *big.Int) bool { return x.BitLen() == 0 } func after(x *big.Int) bool { return x.Sign() == 0 } func before(x *big.Int) bool { return x.BitLen() > 0 } func after(x *big.Int) bool { return x.Sign() != 0 } func before(x *big.Int) int { return x.Cmp(common.Big0) } func after(x *big.Int) int { return x.Sign() } * common/math, crypto/secp256k1: make ReadBits public in package math
-
- 27 2月, 2017 1 次提交
-
-
由 Felix Lange 提交于
* common: remove CurrencyToString Move denomination values to params instead. * common: delete dead code * common: move big integer operations to common/math This commit consolidates all big integer operations into common/math and adds tests and documentation. There should be no change in semantics for BigPow, BigMin, BigMax, S256, U256, Exp and their behaviour is now locked in by tests. The BigD, BytesToBig and Bytes2Big functions don't provide additional value, all uses are replaced by new(big.Int).SetBytes(). BigToBytes is now called PaddedBigBytes, its minimum output size parameter is now specified as the number of bytes instead of bits. The single use of this function is in the EVM's MSTORE instruction. Big and String2Big are replaced by ParseBig, which is slightly stricter. It previously accepted leading zeros for hexadecimal inputs but treated decimal inputs as octal if a leading zero digit was present. ParseUint64 is used in places where String2Big was used to decode a uint64. The new functions MustParseBig and MustParseUint64 are now used in many places where parsing errors were previously ignored. * common: delete unused big integer variables * accounts/abi: replace uses of BytesToBig with use of encoding/binary * common: remove BytesToBig * common: remove Bytes2Big * common: remove BigTrue * cmd/utils: add BigFlag and use it for error-checked integer flags While here, remove environment variable processing for DirectoryFlag because we don't use it. * core: add missing error checks in genesis block parser * common: remove String2Big * cmd/evm: use utils.BigFlag * common/math: check for 256 bit overflow in ParseBig This is supposed to prevent silent overflow/truncation of values in the genesis block JSON. Without this check, a genesis block that set a balance larger than 256 bits would lead to weird behaviour in the VM. * cmd/utils: fixup import
-
- 18 2月, 2017 1 次提交
-
-
由 Felix Lange 提交于
* vendor: add github.com/btcsuite/btcd/btcec * crypto: add btcec fallback for sign/recover without cgo This commit adds a non-cgo fallback implementation of secp256k1 operations. * crypto, core/vm: remove wrappers for sha256, ripemd160
-
- 23 1月, 2017 1 次提交
-
-
由 Felix Lange 提交于
-
- 13 1月, 2017 1 次提交
-
-
由 Felix Lange 提交于
- Use defined constants instead of hard-coding their integer value. - Allocate secp256k1 structs on the C stack instead of converting []byte - Remove dead code
-
- 09 1月, 2017 1 次提交
-
-
由 Felix Lange 提交于
go get github.com/gordonklaus/ineffassign ineffassign .
-
- 07 1月, 2017 2 次提交
-
-
由 Péter Szilágyi 提交于
-
由 Felix Lange 提交于
-
- 06 1月, 2017 1 次提交
-
-
由 Felix Lange 提交于
-
- 05 1月, 2017 1 次提交
-
-
由 Péter Szilágyi 提交于
To address increasing complexity in code that handles signatures, this PR discards all notion of "different" signature types at the library level. Both the crypto and accounts package is reduced to only be able to produce plain canonical secp256k1 signatures. This makes the crpyto APIs much cleaner, simpler and harder to abuse.
-
- 29 10月, 2016 1 次提交
-
-
由 bas-vk 提交于
This commit includes several API changes: - The behavior of eth_sign is changed. It now accepts an arbitrary message, prepends the well-known string \x19Ethereum Signed Message:\n<length of message> hashes the result using keccak256 and calculates the signature of the hash. This breaks backwards compatability! - personal_sign(hash, address [, password]) is added. It has the same semantics as eth_sign but also accepts a password. The private key used to sign the hash is temporarily unlocked in the scope of the request. - personal_recover(message, signature) is added and returns the address for the account that created a signature.
-
- 02 10月, 2016 1 次提交
-
-
由 Felix Lange 提交于
This pulls in the assembly implementation of keccakf1600 for amd64.
-
- 15 4月, 2016 1 次提交
-
-
由 Felix Lange 提交于
-
- 12 4月, 2016 2 次提交
-
-
由 Felix Lange 提交于
The account management API was originally implemented as a thin layer around crypto.KeyStore, on the grounds that several kinds of key stores would be implemented later on. It turns out that this won't happen so KeyStore is a superflous abstraction. In this commit crypto.KeyStore and everything related to it moves to package accounts and is unexported.
-
由 Felix Lange 提交于
Unlocking the accounts in the test doesn't help with anything.
-
- 24 2月, 2016 3 次提交
-
-
由 Péter Szilágyi 提交于
-
由 Péter Szilágyi 提交于
-
由 Péter Szilágyi 提交于
-
- 22 2月, 2016 7 次提交
-
-
-
-
As we aren't really using the standarized SHA-3
-
This hash function is slightly different from the standarized NIST SHA-3 as both of them use different domain separation bits.
-
-
Revision: 1f22c0103821b9390939b6776727195525381532
-
-
- 18 2月, 2016 1 次提交
-
-
由 Gustav Simonsson 提交于
* change gas cost for contract creating txs * invalidate signature with s value greater than secp256k1 N / 2 * OOG contract creation if not enough gas to store code * new difficulty adjustment algorithm * new DELEGATECALL op code
-
- 12 2月, 2016 1 次提交
-
-
由 Felix Lange 提交于
The s2 parameter was not actually written to the MAC.
-
- 08 12月, 2015 1 次提交
-
-
由 Felix Lange 提交于
-
- 04 12月, 2015 1 次提交
-
-
由 Felix Lange 提交于
Turns out we actually don't need it, USE_NUM_NONE works because we also set USE_FIELD_INV_BUILTIN.
-