| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | package cryptoimport (	"crypto/cipher"	"io")type CryptionReader struct {	stream cipher.Stream	reader io.Reader}func NewCryptionReader(stream cipher.Stream, reader io.Reader) *CryptionReader {	return &CryptionReader{		stream: stream,		reader: reader,	}}func (v *CryptionReader) Read(data []byte) (int, error) {	nBytes, err := v.reader.Read(data)	if nBytes > 0 {		v.stream.XORKeyStream(data[:nBytes], data[:nBytes])	}	return nBytes, err}type CryptionWriter struct {	stream cipher.Stream	writer io.Writer}// NewCryptionWriter creates a new CryptionWriter.func NewCryptionWriter(stream cipher.Stream, writer io.Writer) *CryptionWriter {	return &CryptionWriter{		stream: stream,		writer: writer,	}}// Write implements io.Writer.Write().func (v *CryptionWriter) Write(data []byte) (int, error) {	v.stream.XORKeyStream(data, data)	return v.writer.Write(data)}
 |