github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/auth/key/key_test.go (about)

     1  package key_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/qri-io/qri/auth/key"
     7  	testkeys "github.com/qri-io/qri/auth/key/test"
     8  )
     9  
    10  func TestKeyDecodeID(t *testing.T) {
    11  	kd0 := testkeys.GetKeyData(0)
    12  
    13  	id, err := key.DecodeID(kd0.EncodedPeerID)
    14  	if err != nil {
    15  		t.Fatal(err)
    16  	}
    17  
    18  	if kd0.EncodedPeerID != id.String() {
    19  		t.Errorf("string mistmatch want: %q got: %q", kd0.EncodedPeerID, id.String())
    20  	}
    21  }
    22  
    23  func TestIDFromPriv(t *testing.T) {
    24  	kd := testkeys.GetKeyData(0)
    25  	expect := kd.KeyID.String()
    26  	got, err := key.IDFromPrivKey(kd.PrivKey)
    27  	if err != nil {
    28  		t.Error(err)
    29  	}
    30  
    31  	if expect != got {
    32  		t.Errorf("ID mismatch. expected: '%s', got: '%s'", expect, got)
    33  	}
    34  }
    35  
    36  func TestIDFromPub(t *testing.T) {
    37  	if _, err := key.IDFromPubKey(nil); err == nil {
    38  		t.Errorf("expected error calculating the ID of nil")
    39  	}
    40  
    41  	kd := testkeys.GetKeyData(1)
    42  	expect := kd.KeyID.String()
    43  	got, err := key.IDFromPubKey(kd.PrivKey.GetPublic())
    44  	if err != nil {
    45  		t.Error(err)
    46  	}
    47  
    48  	if expect != got {
    49  		t.Errorf("ID mismatch. expected: '%s', got: '%s'", expect, got)
    50  	}
    51  }
    52  
    53  func TestPubKeyB64Coding(t *testing.T) {
    54  	kd := testkeys.GetKeyData(0)
    55  	str, err := key.EncodePubKeyB64(kd.PrivKey.GetPublic())
    56  	if err != nil {
    57  		t.Fatal(err)
    58  	}
    59  
    60  	got, err := key.DecodeB64PubKey(str)
    61  	if err != nil {
    62  		t.Fatal(err)
    63  	}
    64  
    65  	if !got.Equals(kd.PrivKey.GetPublic()) {
    66  		t.Errorf("public key mismatch")
    67  	}
    68  
    69  	if _, err := key.EncodePubKeyB64(nil); err == nil {
    70  		t.Error("expected encoding nil key to error. got nil.")
    71  	}
    72  
    73  	if _, err := key.DecodeB64PubKey("👋"); err == nil {
    74  		t.Error("expected decoding bad key to error. got nil.")
    75  	}
    76  }
    77  
    78  func TestB64PrivKeyCoding(t *testing.T) {
    79  	key1 := testkeys.GetKeyData(0)
    80  
    81  	pkstr, err := key.EncodePrivKeyB64(key1.PrivKey)
    82  	if err != nil {
    83  		t.Fatal(err)
    84  	}
    85  
    86  	got, err := key.DecodeB64PrivKey(pkstr)
    87  	if err != nil {
    88  		t.Fatal(err)
    89  	}
    90  
    91  	if !got.Equals(key1.PrivKey) {
    92  		t.Errorf("private key mismatch")
    93  	}
    94  
    95  	if _, err := key.EncodePrivKeyB64(nil); err == nil {
    96  		t.Error("expected encoding nil key to error. got nil.")
    97  	}
    98  
    99  	if _, err := key.DecodeB64PrivKey("👋"); err == nil {
   100  		t.Error("expected decoding bad key to error. got nil.")
   101  	}
   102  }