49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package key
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestNLPrivate(t *testing.T) {
|
|
p := NewNLPrivate()
|
|
|
|
encoded, err := p.MarshalText()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var decoded NLPrivate
|
|
if err := decoded.UnmarshalText(encoded); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(decoded.k[:], p.k[:]) {
|
|
t.Error("decoded and generated NLPrivate bytes differ")
|
|
}
|
|
|
|
// Test NLPublic
|
|
pub := p.Public()
|
|
encoded, err = pub.MarshalText()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var decodedPub NLPublic
|
|
if err := decodedPub.UnmarshalText(encoded); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(decodedPub.k[:], pub.k[:]) {
|
|
t.Error("decoded and generated NLPublic bytes differ")
|
|
}
|
|
|
|
// Test decoding with CLI prefix: 'nlpub:' => 'tlpub:'
|
|
decodedPub = NLPublic{}
|
|
if err := decodedPub.UnmarshalText([]byte(pub.CLIString())); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(decodedPub.k[:], pub.k[:]) {
|
|
t.Error("decoded and generated NLPublic bytes differ (CLI prefix)")
|
|
}
|
|
}
|