MCPcopy
hub / github.com/hashicorp/memberlist / TestKeyring_AddRemoveUse

Function TestKeyring_AddRemoveUse

keyring_test.go:56–105  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

54}
55
56func TestKeyring_AddRemoveUse(t *testing.T) {
57 keyring, err := NewKeyring(nil, TestKeys[1])
58 if err != nil {
59 t.Fatalf("err :%s", err)
60 }
61
62 // Use non-existent key throws error
63 if err := keyring.UseKey(TestKeys[2]); err == nil {
64 t.Fatalf("Expected key not installed error")
65 }
66
67 // Add key to ring
68 if err := keyring.AddKey(TestKeys[2]); err != nil {
69 t.Fatalf("err: %s", err)
70 }
71
72 keys := keyring.GetKeys()
73 if !bytes.Equal(keys[0], TestKeys[1]) {
74 t.Fatalf("Unexpected primary key change")
75 }
76
77 if len(keys) != 2 {
78 t.Fatalf("Expected 2 keys but have %d", len(keys))
79 }
80
81 // Use key that exists should succeed
82 if err := keyring.UseKey(TestKeys[2]); err != nil {
83 t.Fatalf("err: %s", err)
84 }
85
86 primaryKey := keyring.GetPrimaryKey()
87 if !bytes.Equal(primaryKey, TestKeys[2]) {
88 t.Fatalf("Unexpected primary key: %v", primaryKey)
89 }
90
91 // Removing primary key should fail
92 if err := keyring.RemoveKey(TestKeys[2]); err == nil {
93 t.Fatalf("Expected primary key removal error")
94 }
95
96 // Removing non-primary key should succeed
97 if err := keyring.RemoveKey(TestKeys[1]); err != nil {
98 t.Fatalf("err: %s", err)
99 }
100
101 keys = keyring.GetKeys()
102 if len(keys) != 1 {
103 t.Fatalf("Expected 1 key but have %d", len(keys))
104 }
105}
106
107func TestKeyRing_MultiKeyEncryptDecrypt(t *testing.T) {
108 plaintext := []byte("this is a plain text message")

Callers

nothing calls this directly

Calls 7

UseKeyMethod · 0.95
AddKeyMethod · 0.95
GetKeysMethod · 0.95
GetPrimaryKeyMethod · 0.95
RemoveKeyMethod · 0.95
NewKeyringFunction · 0.85
FatalfMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…