aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/key_store_passphrase.go
diff options
context:
space:
mode:
authorPaweł Bylica <pawel.bylica@imapp.pl>2015-02-24 01:39:05 +0800
committerPaweł Bylica <pawel.bylica@imapp.pl>2015-02-24 01:39:05 +0800
commit114c3b4efe7f30ab7be0bec013210e7b4c3d08d7 (patch)
tree5230f6fee87dcbac36e1d71d6ab731b55eab8268 /crypto/key_store_passphrase.go
parentb9894c1d0979b9f3e8428b1dc230f1ece106f676 (diff)
parentdd086791acf477da7641c168f82de70ed0b2dca6 (diff)
downloadgo-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar.gz
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar.bz2
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar.lz
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar.xz
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.tar.zst
go-tangerine-114c3b4efe7f30ab7be0bec013210e7b4c3d08d7.zip
Merge remote-tracking branch 'upstream/develop' into evmjit
Diffstat (limited to 'crypto/key_store_passphrase.go')
-rw-r--r--crypto/key_store_passphrase.go21
1 files changed, 7 insertions, 14 deletions
diff --git a/crypto/key_store_passphrase.go b/crypto/key_store_passphrase.go
index 0862b7886..7d21b6604 100644
--- a/crypto/key_store_passphrase.go
+++ b/crypto/key_store_passphrase.go
@@ -20,6 +20,7 @@
* @date 2015
*
*/
+
/*
This key store behaves as KeyStorePlain with the difference that
@@ -64,17 +65,18 @@ package crypto
import (
"bytes"
- "code.google.com/p/go-uuid/uuid"
- "code.google.com/p/go.crypto/scrypt"
"crypto/aes"
"crypto/cipher"
- crand "crypto/rand"
"encoding/hex"
"encoding/json"
"errors"
"io"
"os"
"path"
+
+ "code.google.com/p/go-uuid/uuid"
+ "github.com/ethereum/go-ethereum/crypto/randentropy"
+ "golang.org/x/crypto/scrypt"
)
const (
@@ -116,7 +118,7 @@ func (ks keyStorePassphrase) GetKeyAddresses() (addresses [][]byte, err error) {
func (ks keyStorePassphrase) StoreKey(key *Key, auth string) (err error) {
authArray := []byte(auth)
- salt := GetEntropyCSPRNG(32)
+ salt := randentropy.GetEntropyMixed(32)
derivedKey, err := scrypt.Key(authArray, salt, scryptN, scryptr, scryptp, scryptdkLen)
if err != nil {
return err
@@ -131,7 +133,7 @@ func (ks keyStorePassphrase) StoreKey(key *Key, auth string) (err error) {
return err
}
- iv := GetEntropyCSPRNG(aes.BlockSize) // 16
+ iv := randentropy.GetEntropyMixed(aes.BlockSize) // 16
AES256CBCEncrypter := cipher.NewCBCEncrypter(AES256Block, iv)
cipherText := make([]byte, len(toEncrypt))
AES256CBCEncrypter.CryptBlocks(cipherText, toEncrypt)
@@ -196,12 +198,3 @@ func DecryptKey(ks keyStorePassphrase, keyAddr []byte, auth string) (keyBytes []
}
return keyBytes, keyId, err
}
-
-func GetEntropyCSPRNG(n int) []byte {
- mainBuff := make([]byte, n)
- _, err := io.ReadFull(crand.Reader, mainBuff)
- if err != nil {
- panic("key generation: reading from crypto/rand failed: " + err.Error())
- }
- return mainBuff
-}