crypto/keyring: drop password from keyWriter internal interface (#5899)

Add an extra test case to increase coverage.
This commit is contained in:
Alessio Treglia 2020-04-01 16:46:47 +02:00 committed by GitHub
parent a368988e17
commit f7c0578fea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 4 deletions

View File

@ -25,7 +25,7 @@ type (
}
writeLocalKeyer interface {
writeLocalKey(name string, priv tmcrypto.PrivKey, passphrase string, algo SigningAlgo) Info
writeLocalKey(name string, priv tmcrypto.PrivKey, algo SigningAlgo) Info
}
infoWriter interface {
@ -87,7 +87,7 @@ func (kb baseKeybase) CreateAccount(
var info Info
if encryptPasswd != "" {
info = keyWriter.writeLocalKey(name, privKey, encryptPasswd, algo)
info = keyWriter.writeLocalKey(name, privKey, algo)
} else {
info = kb.writeOfflineKey(keyWriter, name, privKey.PubKey(), algo)
}

View File

@ -364,7 +364,7 @@ func (kb keyringKeybase) ImportPrivKey(name, armor, passphrase string) error {
}
// NOTE: The keyring keystore has no need for a passphrase.
kb.writeLocalKey(name, privKey, "", SigningAlgo(algo))
kb.writeLocalKey(name, privKey, SigningAlgo(algo))
return nil
}
@ -435,7 +435,7 @@ func (kb keyringKeybase) SupportedAlgosLedger() []SigningAlgo {
return kb.base.SupportedAlgosLedger()
}
func (kb keyringKeybase) writeLocalKey(name string, priv tmcrypto.PrivKey, _ string, algo SigningAlgo) Info {
func (kb keyringKeybase) writeLocalKey(name string, priv tmcrypto.PrivKey, algo SigningAlgo) Info {
// encrypt private key using keyring
pub := priv.PubKey()
info := newLocalInfo(name, pub, string(priv.Bytes()), algo)

View File

@ -2,6 +2,7 @@ package keyring
import (
"bytes"
"errors"
"fmt"
"strings"
"testing"
@ -432,6 +433,14 @@ func TestSupportedAlgos(t *testing.T) {
require.Equal(t, []SigningAlgo{"secp256k1"}, kb.SupportedAlgosLedger())
}
func TestCustomDerivFuncKey(t *testing.T) {
kb := NewInMemory(WithDeriveFunc(func(mnemonic string, bip39Passphrase, hdPath string, algo SigningAlgo) ([]byte, error) {
return nil, errors.New("cannot derive keys")
}))
_, _, err := kb.CreateMnemonic("test", English, "", "")
require.Error(t, err, "cannot derive keys")
}
func TestInMemoryLanguage(t *testing.T) {
kb := NewInMemory()
_, _, err := kb.CreateMnemonic("something", Japanese, "no_pass", Secp256k1)