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 }