- Mar 09, 2017
-
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
- Feb 28, 2017
-
-
Felix Lange authored
* 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
-
- Feb 26, 2017
-
-
Felix Lange authored
* 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
-
- Feb 18, 2017
-
-
Felix Lange authored
* 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
-
- Jan 22, 2017
-
-
Felix Lange authored
-
- Jan 12, 2017
-
-
Felix Lange authored
- Use defined constants instead of hard-coding their integer value. - Allocate secp256k1 structs on the C stack instead of converting []byte - Remove dead code
-
- Jan 09, 2017
-
-
Felix Lange authored
go get github.com/gordonklaus/ineffassign ineffassign .
-
- Jan 06, 2017
-
-
Péter Szilágyi authored
-
Felix Lange authored
-
Felix Lange authored
-
- Jan 05, 2017
-
-
Péter Szilágyi authored
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.
-
- Oct 28, 2016
-
-
bas-vk authored
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.
-
- Oct 01, 2016
-
-
Felix Lange authored
This pulls in the assembly implementation of keccakf1600 for amd64.
-
- Apr 15, 2016
-
-
Felix Lange authored
-
- Apr 12, 2016
-
-
Felix Lange authored
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 authored
Unlocking the accounts in the test doesn't help with anything.
-
- Feb 24, 2016
-
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
- Feb 21, 2016
-
-
Ricardo Catalinas Jiménez authored
-
Ricardo Catalinas Jiménez authored
-
Ricardo Catalinas Jiménez authored
As we aren't really using the standarized SHA-3
-
Ricardo Catalinas Jiménez authored
This hash function is slightly different from the standarized NIST SHA-3 as both of them use different domain separation bits.
-
Ricardo Catalinas Jiménez authored
-
Ricardo Catalinas Jiménez authored
Revision: 1f22c0103821b9390939b6776727195525381532
-
Ricardo Catalinas Jiménez authored
-
- Feb 18, 2016
-
-
Gustav Simonsson authored
* 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
-
- Feb 12, 2016
-
-
Felix Lange authored
The s2 parameter was not actually written to the MAC.
-
- Dec 07, 2015
-
-
Felix Lange authored
-
- Dec 03, 2015
-
-
Felix Lange authored
Turns out we actually don't need it, USE_NUM_NONE works because we also set USE_FIELD_INV_BUILTIN.
-
- Nov 30, 2015
-
-
Gustav Simonsson authored
thanks to Felix Lange (fjl) for help with design & impl
-
Gustav Simonsson authored
-
- Nov 17, 2015
-
-
Felix Lange authored
They cause compiler warnings for people who don't have these directories. People with pkgsrc can add the directory through CGO_CFLAGS instead.
-
Felix Lange authored
-
Felix Lange authored
The C library treats the recovery ID as trusted input and crashes the process for invalid values, so it needs to be verified before calling into C. This will inhibit the crash in #1983. Also remove VerifySignature because we don't use it.
-
- Nov 03, 2015
-
-
Felix Lange authored
pkgsrc is a cross-platform package manager that also supports OS X.
-
- Oct 28, 2015
-
-
Drake Burroughs authored
-
- Oct 21, 2015
-
-
zelig authored
* lines with leading space are ommitted from history * exit processed even with whitespace around * all whitespace lines (not only empty ones) are ignored add 7 missing commands to admin api autocomplete registrar: methods now return proper error if reg addresses are not set. fixes #1457 rpc/console: fix personal.newAccount() regression. Now all comms accept interactive password registrar: add registrar tests for errors crypto: catch AES decryption error on presale wallet import + fix error msg format. fixes #1580 CLI: improve error message when starting a second instance of geth. fixes #1564 cli/accounts: unlock multiple accounts. fixes #1785 * make unlocking multiple accounts work with inline <() fd * passwdfile now correctly read only once * improve logs * fix CLI help text for unlocking fix regression with docRoot / admin API * docRoot/jspath passed to rpc/api ParseApis, which passes onto adminApi * docRoot field for JS console in order to pass when RPC is (re)started * improve flag desc for jspath common/docserver: catch http errors from response fix rpc/api tests common/natspec: fix end to end test (skipped because takes 8s) registrar: fix major regression: * deploy registrars on frontier * register HashsReg and UrlHint in GlobalRegistrar. * set all 3 contract addresses in code * zero out addresses first in tests
-
- Oct 13, 2015
-
-
Gustav Simonsson authored
-