import (
"bytes"
"crypto/rand"
+ "io"
"testing"
"testing/quick"
)
)
func init() {
- rand.Read(testKey[:])
+ io.ReadFull(rand.Reader, testKey[:])
}
func TestSymmetric(t *testing.T) {
func BenchmarkEncode(b *testing.B) {
data := make([]byte, 128)
- rand.Read(data)
+ io.ReadFull(rand.Reader, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
Encode(testKey, data)
func BenchmarkDecode(b *testing.B) {
data := make([]byte, 128)
- rand.Read(data)
+ io.ReadFull(rand.Reader, data)
encoded, _ := Encode(testKey, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
"bytes"
"flag"
"fmt"
+ "io"
"log"
"cypherpunks.ru/govpn"
}
if *verifier == "" {
id := new([govpn.IDSize]byte)
- if _, err := govpn.Rand.Read(id[:]); err != nil {
+ if _, err = io.ReadFull(govpn.Rand, id[:]); err != nil {
log.Fatalln(err)
}
pid := govpn.PeerId(*id)
"bytes"
"crypto/rand"
"encoding/binary"
+ "io"
"testing"
"testing/quick"
)
)
func init() {
- rand.Read(testKey[:])
+ io.ReadFull(rand.Reader, testKey[:])
}
func TestSymmetric(t *testing.T) {
func BenchmarkChaff(b *testing.B) {
nonce := make([]byte, 8)
data := make([]byte, 16)
- rand.Read(nonce)
- rand.Read(data)
+ io.ReadFull(rand.Reader, nonce)
+ io.ReadFull(rand.Reader, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
Chaff(testKey, nonce, data)
func BenchmarkWinnow(b *testing.B) {
nonce := make([]byte, 8)
data := make([]byte, 16)
- rand.Read(nonce)
- rand.Read(data)
+ io.ReadFull(rand.Reader, nonce)
+ io.ReadFull(rand.Reader, data)
chaffed := Chaff(testKey, nonce, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
import (
"crypto/rand"
- "errors"
"io"
"net"
)
if err != nil {
return 0, err
}
+ defer conn.Close()
conn.Write([]byte{0x02, byte(len(b))})
- read, err := conn.Read(b)
- if err != nil {
- conn.Close()
- return read, err
- }
- if read != len(b) {
- conn.Close()
- return read, errors.New("Got less bytes than expected from EGD")
- }
- conn.Close()
- return read, nil
+ return io.ReadFull(conn, b)
}
func EGDInit(path string) {
package govpn
import (
+ "io"
+
"cypherpunks.ru/govpn/aont"
"cypherpunks.ru/govpn/cnw"
)
func EnclessEncode(authKey *[32]byte, nonce, in []byte) ([]byte, error) {
r := new([aont.RSize]byte)
var err error
- if _, err = Rand.Read(r[:]); err != nil {
+ if _, err = io.ReadFull(Rand, r[:]); err != nil {
return nil, err
}
aonted, err := aont.Encode(r, in)
import (
"bytes"
- "crypto/rand"
"encoding/binary"
+ "io"
"testing"
"testing/quick"
)
)
func init() {
- rand.Read(testKey[:])
+ io.ReadFull(Rand, testKey[:])
}
func TestEnclessSymmetric(t *testing.T) {
func BenchmarkEnclessEncode(b *testing.B) {
nonce := make([]byte, 8)
data := make([]byte, 128)
- rand.Read(nonce)
- rand.Read(data)
+ io.ReadFull(Rand, nonce)
+ io.ReadFull(Rand, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
EnclessEncode(testKey, nonce, data)
func BenchmarkEnclessDecode(b *testing.B) {
nonce := make([]byte, 8)
data := make([]byte, 128)
- rand.Read(nonce)
- rand.Read(data)
+ io.ReadFull(Rand, nonce)
+ io.ReadFull(Rand, data)
encoded, _ := EnclessEncode(testKey, nonce, data)
b.ResetTimer()
for i := 0; i < b.N; i++ {
repr := new([32]byte)
reprFound := false
for !reprFound {
- if _, err := Rand.Read(priv[:]); err != nil {
+ if _, err := io.ReadFull(Rand, priv[:]); err != nil {
log.Fatalln("Error reading random for DH private key:", err)
}
reprFound = extra25519.ScalarBaseMult(pub, repr, priv)
state.dhPriv, dhPubRepr = dhKeypairGen()
state.rNonce = new([RSize]byte)
- if _, err := Rand.Read(state.rNonce[:]); err != nil {
+ if _, err := io.ReadFull(Rand, state.rNonce[:]); err != nil {
log.Fatalln("Error reading random for nonce:", err)
}
var enc []byte
// Generate R* and encrypt them
h.rServer = new([RSize]byte)
- if _, err = Rand.Read(h.rServer[:]); err != nil {
+ if _, err = io.ReadFull(Rand, h.rServer[:]); err != nil {
log.Fatalln("Error reading random for R:", err)
}
h.sServer = new([SSize]byte)
- if _, err = Rand.Read(h.sServer[:]); err != nil {
+ if _, err = io.ReadFull(Rand, h.sServer[:]); err != nil {
log.Fatalln("Error reading random for S:", err)
}
var encRs []byte
// Generate R* and signature and encrypt them
h.rClient = new([RSize]byte)
- if _, err = Rand.Read(h.rClient[:]); err != nil {
+ if _, err = io.ReadFull(Rand, h.rClient[:]); err != nil {
log.Fatalln("Error reading random for R:", err)
}
h.sClient = new([SSize]byte)
- if _, err = Rand.Read(h.sClient[:]); err != nil {
+ if _, err = io.ReadFull(Rand, h.sClient[:]); err != nil {
log.Fatalln("Error reading random for S:", err)
}
sign := ed25519.Sign(h.Conf.DSAPriv, h.key[:])