mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-13 18:29:07 +02:00
35 lines
694 B
Go
35 lines
694 B
Go
package hmac
|
|
|
|
import (
|
|
"crypto/sha1"
|
|
"encoding/base64"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestGenerateCredentials(t *testing.T) {
|
|
secret := "secret"
|
|
timeToLive := 1 * time.Hour
|
|
v := NewTimedHMAC(secret, timeToLive)
|
|
|
|
creds, err := v.GenerateToken(sha1.New)
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
|
|
if creds.Payload == "" {
|
|
t.Fatalf("expected non-empty payload")
|
|
}
|
|
|
|
_, err = strconv.ParseInt(creds.Payload, 10, 64)
|
|
if err != nil {
|
|
t.Fatalf("expected payload to be a valid unix timestamp, got %v", err)
|
|
}
|
|
|
|
_, err = base64.StdEncoding.DecodeString(creds.Signature)
|
|
if err != nil {
|
|
t.Fatalf("expected signature to be base64 encoded, got %v", err)
|
|
}
|
|
}
|