Darien Raymond пре 9 година
родитељ
комит
1431e32d01
2 измењених фајлова са 15 додато и 4 уклоњено
  1. 7 1
      transport/internet/kcp/crypt.go
  2. 8 3
      transport/internet/kcp/segment.go

+ 7 - 1
transport/internet/kcp/crypt.go

@@ -2,9 +2,9 @@ package kcp
 
 import (
 	"crypto/cipher"
-	"errors"
 	"hash/fnv"
 
+	"v2ray.com/core/common/errors"
 	"v2ray.com/core/common/serial"
 )
 
@@ -12,20 +12,25 @@ var (
 	errInvalidAuth = errors.New("Invalid auth.")
 )
 
+// SimpleAuthenticator is a legacy AEAD used for KCP encryption.
 type SimpleAuthenticator struct{}
 
+// NewSimpleAuthenticator creates a new SimpleAuthenticator
 func NewSimpleAuthenticator() cipher.AEAD {
 	return &SimpleAuthenticator{}
 }
 
+// NonceSize implements cipher.AEAD.NonceSize().
 func (v *SimpleAuthenticator) NonceSize() int {
 	return 0
 }
 
+// Overhead implements cipher.AEAD.NonceSize().
 func (v *SimpleAuthenticator) Overhead() int {
 	return 6
 }
 
+// Seal implements cipher.AEAD.Seal().
 func (v *SimpleAuthenticator) Seal(dst, nonce, plain, extra []byte) []byte {
 	dst = append(dst, 0, 0, 0, 0)
 	dst = serial.Uint16ToBytes(uint16(len(plain)), dst)
@@ -47,6 +52,7 @@ func (v *SimpleAuthenticator) Seal(dst, nonce, plain, extra []byte) []byte {
 	return dst
 }
 
+// Open implements cipher.AEAD.Open().
 func (v *SimpleAuthenticator) Open(dst, nonce, cipherText, extra []byte) ([]byte, error) {
 	dst = append(dst, cipherText...)
 	dstLen := len(dst)

+ 8 - 3
transport/internet/kcp/segment.go

@@ -6,13 +6,18 @@ import (
 	"v2ray.com/core/common/serial"
 )
 
+// Command is a KCP command that indicate the purpose of a Segment.
 type Command byte
 
 const (
-	CommandACK       Command = 0
-	CommandData      Command = 1
+	// CommandACK indicates a AckSegment.
+	CommandACK Command = 0
+	// CommandData indicates a DataSegment.
+	CommandData Command = 1
+	// CommandTerminate indicates that peer terminates the connection.
 	CommandTerminate Command = 2
-	CommandPing      Command = 3
+	// CommandPing indicates a ping.
+	CommandPing Command = 3
 )
 
 type SegmentOption byte