2017-11-04 20:31:37 +00:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
2018-09-22 20:12:08 +00:00
|
|
|
"crypto/rand"
|
|
|
|
"golang.org/x/crypto/ed25519"
|
2018-01-12 18:02:15 +00:00
|
|
|
"math"
|
2018-01-12 18:04:20 +00:00
|
|
|
"testing"
|
2017-11-04 20:31:37 +00:00
|
|
|
)
|
|
|
|
|
2018-05-01 01:03:06 +00:00
|
|
|
const (
|
|
|
|
privateKeyFile = "./../testing/private_key"
|
|
|
|
)
|
|
|
|
|
2017-11-04 20:31:37 +00:00
|
|
|
func TestLoadPrivateKey(t *testing.T) {
|
2018-05-01 01:03:06 +00:00
|
|
|
_, err := LoadPrivateKeyFromFile(privateKeyFile)
|
2017-12-05 19:00:04 +00:00
|
|
|
if err != nil {
|
|
|
|
t.Errorf("Error while loading private key from file: %v", err)
|
|
|
|
}
|
2017-11-04 20:31:37 +00:00
|
|
|
}
|
2018-01-12 18:02:15 +00:00
|
|
|
|
2018-09-22 20:12:08 +00:00
|
|
|
func TestEDH(t *testing.T) {
|
|
|
|
cpub, cpriv, _ := ed25519.GenerateKey(rand.Reader)
|
|
|
|
spub, spriv, _ := ed25519.GenerateKey(rand.Reader)
|
|
|
|
cedh := EDH(cpriv, spub)
|
|
|
|
sedh := EDH(spriv, cpub)
|
|
|
|
if string(cedh[:]) != string(sedh[:]) {
|
|
|
|
t.Errorf("Client and Server should see the same secret %v %v", cedh, sedh)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-01-12 18:02:15 +00:00
|
|
|
func TestGetRandNumber(t *testing.T) {
|
2018-01-12 18:04:20 +00:00
|
|
|
num := GetRandNumber()
|
|
|
|
if !num.IsUint64() || num.Uint64() > uint64(math.MaxUint32) {
|
|
|
|
t.Errorf("Error random number outside of expected bounds %v", num)
|
|
|
|
}
|
2018-01-12 18:02:15 +00:00
|
|
|
}
|