From 951ee383e9d4821d0c36993e5af92668af380600 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Thu, 9 Jan 2020 18:06:03 +0300 Subject: [PATCH] keys: improve NEP2 testing --- pkg/crypto/keys/nep2_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkg/crypto/keys/nep2_test.go b/pkg/crypto/keys/nep2_test.go index 2a67b9b26..a12c21447 100644 --- a/pkg/crypto/keys/nep2_test.go +++ b/pkg/crypto/keys/nep2_test.go @@ -43,3 +43,39 @@ func TestNEP2Decrypt(t *testing.T) { assert.Equal(t, testCase.Address, address) } } + +func TestNEP2DecryptErrors(t *testing.T) { + p := "qwerty" + + // Not a base58-encoded value + s := "qazwsx" + _, err := NEP2Decrypt(s, p) + assert.Error(t, err) + + // Valid base58, but not a NEP-2 format. + s = "KxhEDBQyyEFymvfJD96q8stMbJMbZUb6D1PmXqBWZDU2WvbvVs9o" + _, err = NEP2Decrypt(s, p) + assert.Error(t, err) +} + +func TestValidateNEP2Format(t *testing.T) { + // Wrong length. + s := []byte("gobbledygook") + assert.Error(t, validateNEP2Format(s)) + + // Wrong header 1. + s = []byte("gobbledygookgobbledygookgobbledygookgob") + assert.Error(t, validateNEP2Format(s)) + + // Wrong header 2. + s[0] = 0x01 + assert.Error(t, validateNEP2Format(s)) + + // Wrong header 3. + s[1] = 0x42 + assert.Error(t, validateNEP2Format(s)) + + // OK + s[2] = 0xe0 + assert.NoError(t, validateNEP2Format(s)) +}