import (
"bufio"
+ "crypto/cipher"
"crypto/rand"
"crypto/sha512"
"encoding/base32"
var Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
type Worker struct {
- ctr uint64
- buf []byte
readyIn chan struct{}
readyOut chan struct{}
+ buf []byte
+ ctr uint64
last bool
}
var err error
key := make([]byte, chacha20poly1305.KeySize)
if *doGen || *doRNG {
- if _, err := io.ReadFull(rand.Reader, key); err != nil {
+ if _, err = io.ReadFull(rand.Reader, key); err != nil {
log.Fatalln(err)
}
if *doGen {
readyOut: make(chan struct{}),
}
go func() {
- ciph, err := chacha20poly1305.New(key)
+ var ciph cipher.AEAD
+ ciph, err = chacha20poly1305.New(key)
if err != nil {
log.Fatalln(err)
}
go func() {
var ctr int64
var w *Worker
- var err error
+ var errWrite error
for {
w = workers[ctr%int64(len(workers))]
<-w.readyOut
- if _, err = os.Stdout.Write(w.buf); err != nil {
- log.Fatalln(err)
+ if _, errWrite = os.Stdout.Write(w.buf); errWrite != nil {
+ log.Fatalln(errWrite)
}
w.readyOut <- struct{}{}
ctr++