31 lines
718 B
Go
31 lines
718 B
Go
package credentials
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"testing"
|
|
)
|
|
|
|
func TestEncryptDecrypt(t *testing.T) {
|
|
key := base64.StdEncoding.EncodeToString([]byte("0123456789abcdef0123456789abcdef"))
|
|
manager, err := NewManager("v1:"+key, "v1")
|
|
if err != nil {
|
|
t.Fatalf("new manager: %v", err)
|
|
}
|
|
|
|
blob, err := manager.Encrypt("alice@example.com", "secret")
|
|
if err != nil {
|
|
t.Fatalf("encrypt: %v", err)
|
|
}
|
|
if !IsEncrypted(blob) {
|
|
t.Fatalf("expected encrypted blob prefix")
|
|
}
|
|
|
|
username, password, err := manager.Decrypt(blob)
|
|
if err != nil {
|
|
t.Fatalf("decrypt: %v", err)
|
|
}
|
|
if username != "alice@example.com" || password != "secret" {
|
|
t.Fatalf("unexpected decrypted credentials: %s/%s", username, password)
|
|
}
|
|
}
|