Felix Lange
85e6c40c00
accounts, crypto: move keystore to package accounts
...
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.
2016-04-12 15:56:49 +02:00
Felix Lange
83877a0f9d
tests: remove eth, node, accounts dependencies
...
Unlocking the accounts in the test doesn't help with anything.
2016-04-12 15:34:39 +02:00
Péter Szilágyi
45d08a8aa7
crypto: expose key encryption method, add ping-pong test
2016-02-24 16:28:25 +02:00
Péter Szilágyi
0969b35eec
crypto: code polish + ensure key file contents match with name
2016-02-24 16:27:32 +02:00
Péter Szilágyi
cda91ee180
crypto: expose key decryption method to parse a string direclty
2016-02-24 16:27:32 +02:00
Ricardo Catalinas Jiménez
3d971c5a34
crypto: Remove dead code
2016-02-21 22:46:31 +00:00
Ricardo Catalinas Jiménez
0c6665558a
crypto: Add backward compatible aliases for Sha3{,Hash}()
2016-02-21 22:46:31 +00:00
Ricardo Catalinas Jiménez
436fc8d76a
all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
...
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00
Ricardo Catalinas Jiménez
c20d6e5e4e
crypto/sha3: Export Keccak-256 hash function
...
This hash function is slightly different from the standarized NIST SHA-3
as both of them use different domain separation bits.
2016-02-21 22:34:34 +00:00
Ricardo Catalinas Jiménez
5387ad760f
crypto/sha3: Remove import path checking from vendored code
2016-02-21 22:34:34 +00:00
Ricardo Catalinas Jiménez
e4b138a593
crypto/sha3: Copy latest code from "golang.org/x/crypto/sha3"
...
Revision: 1f22c0103821b9390939b6776727195525381532
2016-02-21 22:34:34 +00:00
Ricardo Catalinas Jiménez
0a1da69fac
crypto/sha3: Delete old copied code
2016-02-21 22:34:34 +00:00
Jeffrey Wilcke
f8d98f7fcd
Merge pull request #2116 from obscuren/homestead
...
core, core/vm: consensus changes necessary for the homestead release
2016-02-19 14:41:57 +01:00
Gustav Simonsson
371871d685
parmas, crypto, core, core/vm: homestead consensus protocol changes
...
* 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
2016-02-18 10:08:11 +01:00
Felix Lange
fdb936ee95
crypto/ecies: make authenticated shared data work
...
The s2 parameter was not actually written to the MAC.
2016-02-12 09:49:18 +01:00
Jeffrey Wilcke
787d71d659
Merge pull request #2056 from fjl/fix-account-format
...
crypto: "Crypto" -> "crypto" in web3 key format
2015-12-10 10:45:00 +01:00
Felix Lange
032453b3e7
crypto: "Crypto" -> "crypto" in web3 key format
2015-12-07 17:01:29 +01:00
Felix Lange
02356b36d6
crypto/secp256k1: remove dependency on libgmp
...
Turns out we actually don't need it, USE_NUM_NONE works
because we also set USE_FIELD_INV_BUILTIN.
2015-12-03 21:12:13 +01:00
Gustav Simonsson
c8ad64f33c
crypto, crypto/ecies, crypto/secp256k1: libsecp256k1 scalar mult
...
thanks to Felix Lange (fjl) for help with design & impl
2015-11-30 13:43:32 +01:00
Gustav Simonsson
27a50c8f4b
core/secp256k1: update libsecp256k1 Go wrapper and tests
2015-11-30 13:24:04 +01:00
Felix Lange
e344e1d490
crypto/secp256k1: drop pkgsrc paths from CFLAGS
...
They cause compiler warnings for people who don't have these
directories. People with pkgsrc can add the directory through CGO_CFLAGS
instead.
2015-11-17 09:53:10 +01:00
Felix Lange
5159f8f649
crypto/secp256k1: raise internal errors as recoverable Go panic
2015-11-17 09:53:10 +01:00
Felix Lange
1b29aed128
crypto/secp256k1: verify recovery ID before calling libsecp256k1
...
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.
2015-11-17 09:51:59 +01:00
Felix Lange
16b0bc7c3b
crypto/secp256k1: add C compiler flags for pkgsrc
...
pkgsrc is a cross-platform package manager that also
supports OS X.
2015-11-03 10:33:31 +01:00
Drake Burroughs
05ea8926c3
cmd/utils, crypto: add --lightkdf flag for lighter KDF
2015-10-28 18:46:39 +01:00
zelig
8b81ad1fc4
console:
...
* 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
2015-10-22 00:22:39 +02:00
Jeffrey Wilcke
f466243417
Merge pull request #1853 from Gustav-Simonsson/libsecp256k1_update
...
Update libsecp256k1, Go wrapper and tests
2015-10-15 10:46:57 -07:00
Jeffrey Wilcke
2f1f2e4811
Merge pull request #1887 from Gustav-Simonsson/icap
...
common, crypto: add ICAP functions
2015-10-15 10:32:05 -07:00
Gustav Simonsson
2db9798646
common, crypto: add ICAP functions
2015-10-13 17:44:14 +02:00
Gustav Simonsson
f32fa075f1
core/secp256k1: update libsecp256k1 Go wrapper and tests
2015-10-09 14:47:55 +02:00
Gustav Simonsson
1d20b0247c
Update libsecp256k1
2015-09-28 17:46:38 +02:00
Gustav Simonsson
3340b56593
crypto: correct sig validation, add more unit tests
2015-09-22 17:33:39 +02:00
Jeff R. Allen
0d40727775
Change go-uuid to use the current supported repository.
2015-09-12 16:49:24 +06:00
zelig
d4da2f630e
crypto: remove obsolete key files
2015-08-18 01:25:04 +02:00
Pavol Rusnak
3f07afbbd2
remove elliptic.P224 usage
...
Fedora/RedHat distros comply with US patent law and remove this curve,
which makes it impossible to run ethereum with distro provided Golang.
File crypto/ecies/README claims it is unsupported anyway.
2015-07-30 12:47:45 +02:00
Fynn
7065ebd2ed
FreeBSD support
2015-07-28 19:16:16 -03:00
Jeffrey Wilcke
1fad8798ec
Merge pull request #1515 from fjl/license-fixes
...
all: fix license headers one more time
2015-07-28 04:29:42 -07:00
Felix Lange
453d2c9ce1
crypto: fix build with Go 1.5
2015-07-27 19:13:45 +02:00
Felix Lange
67598d9d08
crypto/sha3: add full license headers
2015-07-24 12:32:58 +02:00
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
2015-07-23 18:35:11 +02:00
Felix Lange
3f047be5aa
all: update license headers to distiguish GPL/LGPL
...
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Felix Lange
f4acdea402
crypto: fix license of curve.go
...
crypto/curve.go is not our code and has its own license. This commit
excludes it in update-license.go and removes our GPL header.
2015-07-22 18:50:31 +02:00
Felix Lange
06d5898d6a
crypto: remove debug print call after decrypting a key from disk
2015-07-20 18:04:23 +02:00
zelig
589f1c85b9
: colon => dash - in keyfile name - slight deviation from ISO8601 for WIN FS compatibility
2015-07-09 13:55:09 +01:00
Felix Lange
4fb28e0dab
all: goimports -w
2015-07-07 14:12:45 +02:00
Felix Lange
e813626ee1
all: remove @author comments
2015-07-07 14:12:44 +02:00
Felix Lange
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
zelig
1959346793
account update: migrate or change password
...
* account.Update
* KeyStore.Cleanup
* fix dir rm for old format deleteKey
2015-07-03 07:52:37 +01:00
zelig
fc17a527bc
fix account ordering
...
* chronological order of creation
* new naming scheme keystore/UTC--<created_at UTC ISO8601>-<address hex>
* KeyStore2 -> KeyStore
* backward compatibility
* refactor keyStore methods
2015-07-03 03:19:32 +01:00
zelig
a4df9d74ea
accounts order by keyfile ctime
2015-07-02 23:29:07 +01:00
Gustav Simonsson
d23ec6c419
Change keystore to version 3
...
* Change password protection crypto in keystore to version 3
* Update KeyStoreTests/basic_tests.json
* Add support for PBKDF2 with HMAC-SHA256
* Change MAC and encryption key to avoid unnecessary hashing
* Add tests for test vectors in new wiki page defining version 3
* Add tests for new keystore tests in ethereum/tests repo
* Move JSON loading util to common for use in both tests and
crypto packages
* Add backwards compatibility with key store version 1
2015-06-24 06:03:23 +02:00
obscuren
0f51ee6c88
crypto: return common.Address rather than raw bytes
2015-06-04 19:28:39 +02:00
Jeffrey Wilcke
02f785af70
Merge pull request #1166 from Gustav-Simonsson/add_ec_sig_validations
...
Add EC signature validations before call to libsecp256k1
2015-06-03 08:11:24 -07:00
Gustav Simonsson
edbd902a1b
Initialise curve N value in package init
2015-06-03 14:44:29 +02:00
Péter Szilágyi
14e7192d9c
crypto/sha3: pull in latest keccak from go crypto (45% speed increase)
2015-06-03 12:00:39 +03:00
Gustav Simonsson
32e1b104f8
Add EC signature validations before call to libsecp256k1
2015-06-01 21:06:52 +02:00
Gustav Simonsson
56a5592ea0
Update keystore code comments
2015-05-13 18:33:31 +02:00
Gustav Simonsson
e389585f1f
Change default keystore dir
2015-05-12 18:33:04 +02:00
Gustav Simonsson
2c1b0ff17e
Update key store to new spec but keep address field for now
...
* Also fix address types post-rebase
2015-05-12 17:22:17 +02:00
Gustav Simonsson
f98e002d98
Address pull request comments; key header and hex encoding
...
* Remove key header from unencrypted key file format and replace
it with a version field
* Change encoding of bytes in key files from base64 to hex
2015-05-12 17:22:17 +02:00
Gustav Simonsson
313eec33ad
Revert "Add key header to unencrypted key file"
...
This reverts commit a94d4ba0b53c4558ab838aaed635a2ff66ddfa53.
2015-05-12 17:19:39 +02:00
Gustav Simonsson
cd88295f5a
Add key header to unencrypted key file
2015-05-12 17:19:39 +02:00
Gustav Simonsson
29a5a92d13
Add key header to encrypted keys
...
* Add key header containing key version, kdf and kdf params
* Store key header as JSON in the key file
* Read in KDF params from key header
* Include key header in MAC calculation and MAC verification
2015-05-12 17:19:39 +02:00
Gustav Simonsson
da9fe951da
Use common.Address type for accounts.Address
2015-05-12 17:19:39 +02:00
Gustav Simonsson
6b23094cff
Improve key store passphrase crypto
...
* Change MAC-then-Encrypt to Encrypt-then-MAC
* Change AES256 to AES128
* Use first 16 bytes of KDF derived key for AES and
remaining 16 for MAC
2015-05-12 17:18:30 +02:00
Gustav Simonsson
9918b6c84e
Remove the awesome, ever misunderstood entropy mixing
2015-05-12 17:18:30 +02:00
Bas van Kervel
b79dd188d9
replaced several path.* with filepath.* which is platform independent
2015-05-12 14:24:11 +02:00
Gustav Simonsson
34c94d5fcd
Add loading of block test privkey if present
2015-04-27 20:30:26 +02:00
Gustav Simonsson
b0bf12ec87
Remove unneeded allocation
2015-04-24 19:40:28 +02:00
Gustav Simonsson
4d1887093d
Use make instead of new for allocation
2015-04-24 17:41:38 +02:00
Gustav Simonsson
9d2a156453
Fix ignore of unexpected files in key dir
2015-04-23 05:52:41 +02:00
Noel Maersk
958c04e79a
doc: crypto/secp256k1 GMP dependency package name.
...
Linux build documentation is mostly geared towards Ubuntu 14.04 (LTS).
Appropriate package is called `libgmp-dev` there.
Note that on pristine installations building `geth` with godep will
fail because this header is missing. This is not documented in the
top-level README, but is on the wiki:
https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu#building-geth-command-line-client
That page recommends `libgmp3-dev`, which ATM provides same version
as `libgmp-dev`.
2015-04-23 17:33:48 +03:00
Maran
04e216319e
Adding flags to facilitate cross compiling to ARM
2015-04-22 17:04:46 +02:00
Felix Lange
4907d28967
crypto: update {Load,Save}ECDSA comments to mention hex encoding
2015-04-19 01:33:00 +02:00
Bas van Kervel
ef393da933
removed utility function and implemented hex conversation in crypto functions
2015-04-09 10:59:37 +02:00
Bas van Kervel
b3a3fdf9a4
Support for import/export hex encoded keys, closes #635
2015-04-08 23:03:47 +02:00
Gustav Simonsson
aa4ff52d84
Add IsOnCurve check to EC unmarshalling in ECIES decryption
2015-04-07 23:50:04 +02:00
Jeffrey Wilcke
758205b187
Merge pull request #648 from Gustav-Simonsson/forward_ecrecover_err_and_remove_dup_checks
...
Forward and log EC recover err and remove dup pubkey len check
2015-04-07 20:48:56 +02:00
Gustav Simonsson
941f051358
libsecp256k1 #define NDEBUG
2015-04-07 18:09:58 +02:00
obscuren
50bbdfe582
Link GMP
2015-04-07 15:20:24 +02:00
Gustav Simonsson
3f306f63d4
Forward and log EC recover err and remove dup pubkey len check
2015-04-07 12:48:19 +02:00
Gustav Simonsson
d9b37b6da7
Update Go wrapper around libbsecp256k1
2015-04-07 12:40:31 +02:00
Gustav Simonsson
f4d4f1ccb2
Update bitcoin secp256k1 lib
2015-04-07 12:14:05 +02:00
obscuren
61c5edcb57
Cleanup.
2015-03-29 15:02:49 +02:00
zelig
4ec38e3932
common: remove WriteFile and ReadAllFile (use ioutil instead)
2015-03-26 19:00:18 +00:00
zelig
c4ea921876
import/export accounts
...
- cli: add passwordfile flag
- cli: change unlock flag only takes account
- cli: with unlock you are prompted for password or use passfile with password flag
- cli: unlockAccount used in normal client start (run) and accountExport
- cli: getPassword used in accountCreate and accountImport
- accounts: Manager.Import, Manager.Export
- crypto: SaveECDSA (to complement LoadECDSA) to save to file
- crypto: NewKeyFromECDSA added (used in accountImport and New = generated constructor)
2015-03-26 19:00:18 +00:00
Felix Lange
c388e7eac0
crypto: remove use of common.Value.Encode
...
This seems to be the last remaining use of it.
2015-03-20 14:00:26 +01:00
Felix Lange
ee7202fa00
Merge remote-tracking branch 'ethereum/conversion' into conversion
2015-03-17 12:01:40 +01:00
obscuren
515d9432fc
converted vm
2015-03-17 11:19:23 +01:00
Felix Lange
ad78db4d62
crypto: fix Sha3Hash and add a test for it
2015-03-17 01:32:35 +01:00
Felix Lange
64490897f3
crypto: add Sha3Hash
2015-03-16 17:27:24 +01:00
obscuren
b523441361
Moved ethutil => common
2015-03-16 11:27:38 +01:00
obscuren
58909117be
Use ECDSA instead of elliptic
2015-03-11 01:10:25 +01:00
Felix Lange
62ebce304e
crypto: delete old key management stuff
2015-03-10 02:12:55 +01:00
Gustav Simonsson
923950ccaa
Fix key store address hex decoding and accounts test
...
Thanks to https://github.com/jaekwon for original fix!
2015-02-24 18:05:10 +01:00
Maran
40adb7feb6
Implement OS sensitive dataDirs
2015-02-23 11:28:20 +01:00
Felix Lange
119bea22aa
crypto: switch to golang.org/x/crypto
...
code.google.com/p/go.crypto is deprecated and will cause
problems in future versions of Go.
2015-02-17 13:05:58 +01:00
obscuren
8f69b5c7a2
Added invalid sec key test
2015-02-16 13:19:57 +01:00
obscuren
238f39a42e
Validate seckey when generating pub key
2015-02-15 02:20:31 +01:00
obscuren
84f7c966f7
Moved ECIES to repo & added secondary title for webview
...
* ECIES moved from obscuren to ethereum
* Added html META[name=badge] to reflect menuItem.secondaryTitle
2015-02-14 00:25:47 +01:00