func encryptReaderV10(src io.Reader, config *Config) (*encReaderV10, error) {
	ae, err := newAuthEncV10(config)
	if err != nil {
		return nil, err
	}
	return &encReaderV10{
		authEncV10:  ae,
		src:         src,
		buffer:      packageBufferPool.Get().([]byte)[:maxPackageSize],
		payloadSize: config.PayloadSize,
	}, nil
}
encryptReaderV10 returns an io.Reader wrapping the given io.Reader.
The returned io.Reader encrypts everything it reads using DARE 1.0.
package sio
import (
	"errors"
	"io"
	"io/ioutil"
)
type encReaderV10 struct {
	authEncV10
	src io.Reader
	buffer      packageV10
	offset      int
	payloadSize int
	stateErr    error
}