mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-12-29 18:05:18 +00:00
123 lines
1.9 KiB
Go
123 lines
1.9 KiB
Go
package pnet
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/base64"
|
|
"testing"
|
|
)
|
|
|
|
func bufWithBase(base string, windows bool) *bytes.Buffer {
|
|
b := &bytes.Buffer{}
|
|
b.Write(pathPSKv1)
|
|
if windows {
|
|
b.WriteString("\r")
|
|
}
|
|
b.WriteString("\n")
|
|
b.WriteString(base)
|
|
if windows {
|
|
b.WriteString("\r")
|
|
}
|
|
b.WriteString("\n")
|
|
return b
|
|
}
|
|
|
|
func TestDecodeHex(t *testing.T) {
|
|
testDecodeHex(t, true)
|
|
testDecodeHex(t, false)
|
|
}
|
|
|
|
func TestDecodeBad(t *testing.T) {
|
|
testDecodeBad(t, true)
|
|
testDecodeBad(t, false)
|
|
}
|
|
|
|
func testDecodeBad(t *testing.T, windows bool) {
|
|
b := bufWithBase("/verybadbase/", windows)
|
|
b.WriteString("Have fun decoding that key")
|
|
|
|
_, err := DecodeV1PSK(b)
|
|
if err == nil {
|
|
t.Fatal("expected 'unknown encoding' got nil")
|
|
}
|
|
}
|
|
|
|
func testDecodeHex(t *testing.T, windows bool) {
|
|
b := bufWithBase("/base16/", windows)
|
|
for i := 0; i < 32; i++ {
|
|
b.WriteString("FF")
|
|
}
|
|
|
|
psk, err := DecodeV1PSK(b)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
for _, b := range psk {
|
|
if b != 255 {
|
|
t.Fatal("byte was wrong")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDecodeB64(t *testing.T) {
|
|
testDecodeB64(t, true)
|
|
testDecodeB64(t, false)
|
|
}
|
|
|
|
func testDecodeB64(t *testing.T, windows bool) {
|
|
b := bufWithBase("/base64/", windows)
|
|
key := make([]byte, 32)
|
|
for i := 0; i < 32; i++ {
|
|
key[i] = byte(i)
|
|
}
|
|
|
|
e := base64.NewEncoder(base64.StdEncoding, b)
|
|
_, err := e.Write(key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = e.Close()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
psk, err := DecodeV1PSK(b)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
for i, b := range psk {
|
|
if b != psk[i] {
|
|
t.Fatal("byte was wrong")
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
func TestDecodeBin(t *testing.T) {
|
|
testDecodeBin(t, true)
|
|
testDecodeBin(t, false)
|
|
}
|
|
|
|
func testDecodeBin(t *testing.T, windows bool) {
|
|
b := bufWithBase("/bin/", windows)
|
|
key := make([]byte, 32)
|
|
for i := 0; i < 32; i++ {
|
|
key[i] = byte(i)
|
|
}
|
|
|
|
b.Write(key)
|
|
|
|
psk, err := DecodeV1PSK(b)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
for i, b := range psk {
|
|
if b != psk[i] {
|
|
t.Fatal("byte was wrong")
|
|
}
|
|
}
|
|
|
|
}
|