mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
crypto/ecies: improve KDF test
This commit is contained in:
parent
b921ff6f07
commit
870f40f7ec
1 changed files with 24 additions and 7 deletions
|
|
@ -42,14 +42,23 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Ensure the KDF generates appropriately sized keys.
|
|
||||||
func TestKDF(t *testing.T) {
|
func TestKDF(t *testing.T) {
|
||||||
msg := []byte("Hello, world")
|
tests := []struct {
|
||||||
h := sha256.New()
|
length int
|
||||||
|
output []byte
|
||||||
|
}{
|
||||||
|
{6, decode("858b192fa2ed")},
|
||||||
|
{32, decode("858b192fa2ed4395e2bf88dd8d5770d67dc284ee539f12da8bceaa45d06ebae0")},
|
||||||
|
{48, decode("858b192fa2ed4395e2bf88dd8d5770d67dc284ee539f12da8bceaa45d06ebae0700f1ab918a5f0413b8140f9940d6955")},
|
||||||
|
{64, decode("858b192fa2ed4395e2bf88dd8d5770d67dc284ee539f12da8bceaa45d06ebae0700f1ab918a5f0413b8140f9940d6955f3467fd6672cce1024c5b1effccc0f61")},
|
||||||
|
}
|
||||||
|
|
||||||
k := concatKDF(h, msg, nil, 64)
|
for _, test := range tests {
|
||||||
if len(k) != 64 {
|
h := sha256.New()
|
||||||
t.Fatalf("KDF: generated key is the wrong size (%d instead of 64\n", len(k))
|
k := concatKDF(h, []byte("input"), nil, test.length)
|
||||||
|
if !bytes.Equal(k, test.output) {
|
||||||
|
t.Fatalf("KDF: generated key %x does not match expected output %x", k, test.output)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -398,7 +407,7 @@ func TestSharedKeyStatic(t *testing.T) {
|
||||||
t.Fatal(ErrBadSharedKeys)
|
t.Fatal(ErrBadSharedKeys)
|
||||||
}
|
}
|
||||||
|
|
||||||
sk, _ := hex.DecodeString("167ccc13ac5e8a26b131c3446030c60fbfac6aa8e31149d0869f93626a4cdf62")
|
sk := decode("167ccc13ac5e8a26b131c3446030c60fbfac6aa8e31149d0869f93626a4cdf62")
|
||||||
if !bytes.Equal(sk1, sk) {
|
if !bytes.Equal(sk1, sk) {
|
||||||
t.Fatalf("shared secret mismatch: want: %x have: %x", sk, sk1)
|
t.Fatalf("shared secret mismatch: want: %x have: %x", sk, sk1)
|
||||||
}
|
}
|
||||||
|
|
@ -411,3 +420,11 @@ func hexKey(prv string) *PrivateKey {
|
||||||
}
|
}
|
||||||
return ImportECDSA(key)
|
return ImportECDSA(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func decode(s string) []byte {
|
||||||
|
bytes, err := hex.DecodeString(s)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return bytes
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue