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
This commit is contained in:
Gustav Simonsson
2015-02-04 17:06:06 +01:00
parent e40c1c62ce
commit 8c056aebe1
4 changed files with 92 additions and 18 deletions

View File

@ -1,7 +1,7 @@
package crypto
import (
crand "crypto/rand"
"github.com/ethereum/go-ethereum/crypto/randentropy"
"reflect"
"testing"
)
@ -9,7 +9,7 @@ import (
func TestKeyStorePlain(t *testing.T) {
ks := NewKeyStorePlain(DefaultDataDir())
pass := "" // not used but required by API
k1, err := ks.GenerateNewKey(crand.Reader, pass)
k1, err := ks.GenerateNewKey(new(randentropy.RandEntropy), pass)
if err != nil {
t.Fatal(err)
}
@ -37,7 +37,7 @@ func TestKeyStorePlain(t *testing.T) {
func TestKeyStorePassphrase(t *testing.T) {
ks := NewKeyStorePassphrase(DefaultDataDir())
pass := "foo"
k1, err := ks.GenerateNewKey(crand.Reader, pass)
k1, err := ks.GenerateNewKey(new(randentropy.RandEntropy), pass)
if err != nil {
t.Fatal(err)
}
@ -63,7 +63,7 @@ func TestKeyStorePassphrase(t *testing.T) {
func TestKeyStorePassphraseDecryptionFail(t *testing.T) {
ks := NewKeyStorePassphrase(DefaultDataDir())
pass := "foo"
k1, err := ks.GenerateNewKey(crand.Reader, pass)
k1, err := ks.GenerateNewKey(new(randentropy.RandEntropy), pass)
if err != nil {
t.Fatal(err)
}