good morning!!!!

Skip to content
Snippets Groups Projects
Commit cd88295f authored by Gustav Simonsson's avatar Gustav Simonsson
Browse files

Add key header to unencrypted key file

parent 29a5a92d
No related branches found
No related tags found
Loading
......@@ -45,27 +45,28 @@ type Key struct {
type plainKeyJSON struct {
Id []byte
Address []byte
KeyHeader keyHeaderJSON
PrivateKey []byte
}
type encryptedKeyJSON struct {
Id []byte
Address []byte
Crypto cipherJSON
Id []byte
Address []byte
KeyHeader keyHeaderJSON
Crypto cipherJSON
}
type cipherJSON struct {
MAC []byte
Salt []byte
IV []byte
KeyHeader keyHeaderJSON
CipherText []byte
}
type keyHeaderJSON struct {
Version string
Kdf string
KdfParams scryptParamsJSON // TODO: make more generic?
KdfParams *scryptParamsJSON // TODO: make more generic?
}
type scryptParamsJSON struct {
......@@ -77,9 +78,15 @@ type scryptParamsJSON struct {
}
func (k *Key) MarshalJSON() (j []byte, err error) {
keyHeader := keyHeaderJSON{
Version: "1",
Kdf: "",
KdfParams: nil,
}
jStruct := plainKeyJSON{
k.Id,
k.Address.Bytes(),
keyHeader,
FromECDSA(k.PrivateKey),
}
j, err = json.Marshal(jStruct)
......
......@@ -153,7 +153,7 @@ func (ks keyStorePassphrase) StoreKey(key *Key, auth string) (err error) {
keyHeaderJSON := keyHeaderJSON{
Version: keyHeaderVersion,
Kdf: keyHeaderKDF,
KdfParams: paramsJSON,
KdfParams: &paramsJSON,
}
keyHeaderJSONStr, err := json.Marshal(keyHeaderJSON)
......@@ -167,12 +167,12 @@ func (ks keyStorePassphrase) StoreKey(key *Key, auth string) (err error) {
mac,
salt,
iv,
keyHeaderJSON,
cipherText,
}
keyStruct := encryptedKeyJSON{
key.Id,
key.Address.Bytes(),
keyHeaderJSON,
cipherStruct,
}
keyJSON, err := json.Marshal(keyStruct)
......@@ -204,10 +204,11 @@ func DecryptKey(ks keyStorePassphrase, keyAddr common.Address, auth string) (key
err = json.Unmarshal(fileContent, keyProtected)
keyId = keyProtected.Id
keyHeader := keyProtected.KeyHeader
mac := keyProtected.Crypto.MAC
salt := keyProtected.Crypto.Salt
iv := keyProtected.Crypto.IV
keyHeader := keyProtected.Crypto.KeyHeader
cipherText := keyProtected.Crypto.CipherText
// used in MAC
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment