25 lines
586 B
Go
25 lines
586 B
Go
package credential
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"testing"
|
|
)
|
|
|
|
func TestOpaqueCredential(t *testing.T) {
|
|
raw, digest, err := New()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
decoded, err := base64.RawURLEncoding.DecodeString(raw)
|
|
if err != nil || len(decoded) != 32 {
|
|
t.Fatal("credential must contain 256 random bits")
|
|
}
|
|
if raw == digest || !Matches(raw, digest) || Matches("other", digest) || Matches("", Digest("")) {
|
|
t.Fatal("invalid digest matching behavior")
|
|
}
|
|
other, _, err := New()
|
|
if err != nil || other == raw {
|
|
t.Fatal("credentials must be independently generated")
|
|
}
|
|
}
|