diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-14 02:51:02 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-14 02:51:02 +0800 |
commit | fad21fb4a58fd3466a6a14d36eee11a000da6777 (patch) | |
tree | 5362432935066ca40a314e4f6c02f60cc3c194f3 | |
parent | b2119d8931b054fe85cd80c02a5c9db033f61ab3 (diff) | |
parent | 56a5592ea034300c241505f32f4ed6eab673f223 (diff) | |
download | dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar.gz dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar.bz2 dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar.lz dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar.xz dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.tar.zst dexon-fad21fb4a58fd3466a6a14d36eee11a000da6777.zip |
Merge pull request #963 from Gustav-Simonsson/fix_keystore_crypto_comments
Update keystore code comments
-rw-r--r-- | crypto/key_store_passphrase.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/crypto/key_store_passphrase.go b/crypto/key_store_passphrase.go index d9a5a81f9..782f92bf1 100644 --- a/crypto/key_store_passphrase.go +++ b/crypto/key_store_passphrase.go @@ -28,21 +28,22 @@ the private key is encrypted and on disk uses another JSON encoding. Cryptography: -1. Encryption key is first 16 bytes of SHA3-256 of first 16 bytes of - scrypt derived key from user passphrase. Scrypt parameters +1. Encryption key is first 16 bytes of scrypt derived key + from user passphrase. Scrypt parameters (work factors) [1][2] are defined as constants below. 2. Scrypt salt is 32 random bytes from CSPRNG. - It's stored in plain next to ciphertext in key file. -3. MAC is SHA3-256 of concatenation of ciphertext and last 16 bytes of scrypt derived key. + It's stored in plain next in the key file. +3. MAC is SHA3-256 of concatenation of ciphertext and + last 16 bytes of scrypt derived key. 4. Plaintext is the EC private key bytes. 5. Encryption algo is AES 128 CBC [3][4] 6. CBC IV is 16 random bytes from CSPRNG. - It's stored in plain next to ciphertext in key file. + It's stored in plain next in the key file. 7. Plaintext padding is PKCS #7 [5][6] Encoding: -1. On disk, the ciphertext, MAC, salt and IV are encoded in a nested JSON object. +1. On disk, the ciphertext, MAC, salt and IV are encoded in a JSON object. cat a key file to see the structure. 2. byte arrays are base64 JSON strings. 3. The EC private key bytes are in uncompressed form [7]. |