Просмотр исходного кода

move CryptionReader and Writer into a separate file

v2ray 9 лет назад
Родитель
Сommit
79171f105a
2 измененных файлов с 43 добавлено и 37 удалено
  1. 0 37
      common/crypto/aes.go
  2. 43 0
      common/crypto/io.go

+ 0 - 37
common/crypto/aes.go

@@ -15,40 +15,3 @@ func NewAesEncryptionStream(key []byte, iv []byte) cipher.Stream {
 	aesBlock, _ := aes.NewCipher(key)
 	return cipher.NewCFBEncrypter(aesBlock, iv)
 }
-
-type cryptionReader struct {
-	stream cipher.Stream
-	reader io.Reader
-}
-
-func NewCryptionReader(stream cipher.Stream, reader io.Reader) io.Reader {
-	return &cryptionReader{
-		stream: stream,
-		reader: reader,
-	}
-}
-
-func (this *cryptionReader) Read(data []byte) (int, error) {
-	nBytes, err := this.reader.Read(data)
-	if nBytes > 0 {
-		this.stream.XORKeyStream(data[:nBytes], data[:nBytes])
-	}
-	return nBytes, err
-}
-
-type cryptionWriter struct {
-	stream cipher.Stream
-	writer io.Writer
-}
-
-func NewCryptionWriter(stream cipher.Stream, writer io.Writer) io.Writer {
-	return &cryptionWriter{
-		stream: stream,
-		writer: writer,
-	}
-}
-
-func (this *cryptionWriter) Write(data []byte) (int, error) {
-	this.stream.XORKeyStream(data, data)
-	return this.writer.Write(data)
-}

+ 43 - 0
common/crypto/io.go

@@ -0,0 +1,43 @@
+package crypto
+
+import (
+	"crypto/cipher"
+	"io"
+)
+
+type cryptionReader struct {
+	stream cipher.Stream
+	reader io.Reader
+}
+
+func NewCryptionReader(stream cipher.Stream, reader io.Reader) io.Reader {
+	return &cryptionReader{
+		stream: stream,
+		reader: reader,
+	}
+}
+
+func (this *cryptionReader) Read(data []byte) (int, error) {
+	nBytes, err := this.reader.Read(data)
+	if nBytes > 0 {
+		this.stream.XORKeyStream(data[:nBytes], data[:nBytes])
+	}
+	return nBytes, err
+}
+
+type cryptionWriter struct {
+	stream cipher.Stream
+	writer io.Writer
+}
+
+func NewCryptionWriter(stream cipher.Stream, writer io.Writer) io.Writer {
+	return &cryptionWriter{
+		stream: stream,
+		writer: writer,
+	}
+}
+
+func (this *cryptionWriter) Write(data []byte) (int, error) {
+	this.stream.XORKeyStream(data, data)
+	return this.writer.Write(data)
+}