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
This commit is contained in:
@ -68,6 +68,7 @@ import (
|
||||
"bytes"
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io"
|
||||
@ -164,15 +165,16 @@ func (ks keyStorePassphrase) StoreKey(key *Key, auth string) (err error) {
|
||||
mac := Sha3(keyHeaderJSONStr, derivedKey[16:32], cipherText)
|
||||
|
||||
cipherStruct := cipherJSON{
|
||||
mac,
|
||||
salt,
|
||||
iv,
|
||||
hex.EncodeToString(mac),
|
||||
hex.EncodeToString(salt),
|
||||
hex.EncodeToString(iv),
|
||||
keyHeaderJSON,
|
||||
cipherText,
|
||||
hex.EncodeToString(cipherText),
|
||||
}
|
||||
keyStruct := encryptedKeyJSON{
|
||||
key.Id,
|
||||
key.Address.Bytes(),
|
||||
version,
|
||||
key.Id.String(),
|
||||
hex.EncodeToString(key.Address[:]),
|
||||
cipherStruct,
|
||||
}
|
||||
keyJSON, err := json.Marshal(keyStruct)
|
||||
@ -190,7 +192,7 @@ func (ks keyStorePassphrase) DeleteKey(keyAddr common.Address, auth string) (err
|
||||
return err
|
||||
}
|
||||
|
||||
keyDirPath := filepath.Join(ks.keysDirPath, keyAddr.Hex())
|
||||
keyDirPath := filepath.Join(ks.keysDirPath, hex.EncodeToString(keyAddr[:]))
|
||||
return os.RemoveAll(keyDirPath)
|
||||
}
|
||||
|
||||
@ -203,12 +205,28 @@ func DecryptKey(ks keyStorePassphrase, keyAddr common.Address, auth string) (key
|
||||
keyProtected := new(encryptedKeyJSON)
|
||||
err = json.Unmarshal(fileContent, keyProtected)
|
||||
|
||||
keyId = keyProtected.Id
|
||||
mac := keyProtected.Crypto.MAC
|
||||
salt := keyProtected.Crypto.Salt
|
||||
iv := keyProtected.Crypto.IV
|
||||
keyId = uuid.Parse(keyProtected.Id)
|
||||
|
||||
mac, err := hex.DecodeString(keyProtected.Crypto.MAC)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
salt, err := hex.DecodeString(keyProtected.Crypto.Salt)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
iv, err := hex.DecodeString(keyProtected.Crypto.IV)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
keyHeader := keyProtected.Crypto.KeyHeader
|
||||
cipherText := keyProtected.Crypto.CipherText
|
||||
cipherText, err := hex.DecodeString(keyProtected.Crypto.CipherText)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
// used in MAC
|
||||
keyHeaderJSONStr, err := json.Marshal(keyHeader)
|
||||
|
Reference in New Issue
Block a user