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
obscuren
396f1a0a33
Add 'crypto/ecies/' from commit '7c0f4a9b18d992166452d8cd32caaefd92b26386'
...
git-subtree-dir: crypto/ecies
git-subtree-mainline: 49a739c8d647739b3d815966f8854a4e9978df56
git-subtree-split: 7c0f4a9b18d992166452d8cd32caaefd92b26386
2015-02-13 23:45:38 +01:00
obscuren
12b2d57629
Merge branch 'align_key_and_ecdsa_nonce_entropy' of https://github.com/Gustav-Simonsson/go-ethereum into Gustav-Simonsson-align_key_and_ecdsa_nonce_entropy
2015-02-13 23:31:20 +01:00
Gustav Simonsson
f35d62b759
Remove secp256_rand.go and update tests
2015-02-13 18:25:25 +01:00
Gustav Simonsson
39434e383b
Unexport randEntropy type and use exported Reader instead
2015-02-13 15:38:26 +01:00
Gustav Simonsson
8c056aebe1
Set both key generation and ECDSA nonce to use mixed entropy
...
* Move random entropy functions to new package randentropy
* Add function to get n bytes entropy where up to first 32
bytes are mixed with OS entropy sources
2015-02-10 22:49:28 +01:00
Felix Lange
0c7df37351
crypto: add key loading functions
2015-02-10 12:29:50 +01:00
Felix Lange
410b35e913
crypto: make it easier to run Sha3 on multiple inputs
...
crypto.Sha3(append(foo, bar)) --> crypto.Sha3(foo, bar)
crypto.Sha3([]byte{}) --> crypto.Sha3()
2015-02-06 00:00:36 +01:00
obscuren
0d97c3ce13
Merge branch 'bounty' into develop
2015-01-31 17:50:43 +01:00
obscuren
19cff8ecca
Fixed n
2015-01-31 17:50:28 +01:00
obscuren
bb2e847363
Merge branch 'bounty' into develop
2015-01-31 17:44:42 +01:00
obscuren
a008c21cf0
Fixed Sign nonce
2015-01-31 17:44:34 +01:00
obscuren
c48644490f
Fixed whisper pub key bug
...
* Unrecoverable messages would cause segfault when recovering invalid
pub key
2015-01-30 13:24:20 +01:00
Gustav Simonsson
8d9752a557
Address pull request comments
...
* Use crypto.Sign instead of directly calling secp256k1 lib
* Rename UserAccount to Account and Addr to Address (for consistency)
* Change AccountManager.Sign to take ptr to Account instead of
address byte array
* Simplify copying of Accounts in Accounts()
* PubkeyToAddress and GetEntropyCSPRNG now exported
2015-01-28 05:12:57 +01:00
Gustav Simonsson
512ffa2bf4
Add accounts package and refactor key stores
...
* Add initial UserAccount and AccountManager structs
* Add NewAccount, Sign and Accounts functions
* Refactor key stores to use key address as main identifier
while keeping the UUID.
* Use key address as file/dir names instead of UUID
2015-01-26 04:30:17 +01:00
obscuren
a125b0fbc3
Merge branch 'import_presale_keys' of https://github.com/Gustav-Simonsson/go-ethereum into Gustav-Simonsson-import_presale_keys
...
Conflicts:
crypto/crypto.go
2015-01-22 22:42:39 +01:00
obscuren
0dfe511370
Use curve params instead of hardcoded 32 bytes
2015-01-22 18:15:11 +01:00
obscuren
d4cc2d3503
Pad private key when signing & length check for hashes in sign
2015-01-22 18:12:05 +01:00
obscuren
67f9783e6a
Moved obscuren
secp256k1-go
2015-01-22 00:35:00 +01:00
obscuren
6eaa404187
Moved sha3 from obscuren
2015-01-22 00:25:00 +01:00
Gustav Simonsson
8af42d42da
CamelCase aesCBCDecrypt
2015-01-21 19:08:05 +01:00
Gustav Simonsson
1f8290ca44
Add ImportPreSaleKey
...
* ImportPreSaleKey takes a KeyStore, a presale key JSON (e.g. file content)
and a password string. It stores the key in the given key store.
* Refactored common AES decryption and moved some functions to crypto.go
2015-01-21 16:35:43 +01:00
obscuren
4dd7be7ed0
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
2015-01-20 15:04:30 +01:00
Gustav Simonsson
d48140cab3
Address pull request comments
...
* Further simplify "constructor" function's allocation of structs
* Fix formatting
2015-01-19 22:12:22 +01:00
Gustav Simonsson
3cf038f300
Address pull request comments
...
* Allocate with composite literal instead of new
* Remove check of number of bytes read from rand
2015-01-19 20:24:30 +01:00
obscuren
bcb1166e52
Added 0 key proof error
...
Private key \x00\x00...\x00 returns the _exact_ same public key as \x11
\x11...\x11. Currently investigating.
2015-01-19 11:22:56 +01:00
Gustav Simonsson
9caf32befe
Update code comments
2015-01-15 19:58:38 +01:00
Gustav Simonsson
47d3b3dd58
Address pull request comments
...
* Remove flags field from key struct
* Change JSON struct fields from string to []byte
* Change GenerateNewKey API to take io.Reader for random source
* Remove mixing entropy source function
* Use testing Fatal in tests
2015-01-15 19:40:10 +01:00
Gustav Simonsson
a1c2749380
Address pull request comments
...
* Simplify scrypt constants with const block
* Add key store constructors and make their types private
* Simplify key store and file namings to be less Java Enterprise™
* Change test error logging to use t.Error(err)
* Reduce number of naked returns (just like my ex-gf)
* Simplify file reading path code
2015-01-15 19:40:10 +01:00
Gustav Simonsson
945798f913
Add new key_store interface and two new key stores
...
* Add new generic key_store interface
* Add new plaintext key store storing unprotected keys on disk
* Add new encrypted key store storing encrypted keys on disk
* Add new entropy mixing function using OS and go runtime sources
2015-01-15 19:40:10 +01:00
obscuren
35fe4313d5
pre-pow
2015-01-12 10:19:27 +01:00
obscuren
f8061fcba8
fixed tests
2014-12-12 22:38:54 +01:00
obscuren
06e76422b5
Added length checkes
2014-12-12 22:24:04 +01:00
obscuren
0f5c6c5e2d
Changed new methods to use ecdsa package for pub prv keys
2014-12-10 14:17:10 +01:00
obscuren
87adff7e18
Added Encrypt & Decrypt using the ECIES w/ tests
2014-12-10 00:03:21 +01:00
obscuren
c24018e273
Added S256 curve
2014-12-10 00:02:43 +01:00
obscuren
085f604b27
Show newly created private key during startup. Closes #126
2014-12-04 17:09:47 +01:00
Taylor Gerring
dd9e99a418
try to get full coverage report on travis
2014-11-14 20:58:09 -06:00
obscuren
fd9da72536
ethcrypto => crypto
2014-10-31 12:37:43 +01:00