mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 17:35:40 +08:00
vmess: fixed bug in aes-128-gcm
This commit is contained in:
parent
d84f540c4d
commit
5ebbf7ffe8
@ -36,14 +36,14 @@ func (w *aeadWriter) Write(b []byte) (int, error) {
|
||||
func (w *aeadWriter) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
for {
|
||||
buf := w.buf
|
||||
payloadBuf := buf[lenSize : lenSize+defaultChunkSize]
|
||||
payloadBuf := buf[lenSize : lenSize+defaultChunkSize-w.Overhead()]
|
||||
|
||||
nr, er := r.Read(payloadBuf)
|
||||
if nr > 0 {
|
||||
n += int64(nr)
|
||||
buf = buf[:lenSize+nr+w.Overhead()]
|
||||
payloadBuf = payloadBuf[:nr]
|
||||
binary.BigEndian.PutUint16(buf[:lenSize], uint16(nr))
|
||||
binary.BigEndian.PutUint16(buf[:lenSize], uint16(nr+w.Overhead()))
|
||||
|
||||
binary.BigEndian.PutUint16(w.nonce[:2], w.count)
|
||||
copy(w.nonce[2:], w.iv[2:12])
|
||||
@ -126,9 +126,10 @@ func (r *aeadReader) Read(b []byte) (int, error) {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
m := copy(b, r.buf[:len])
|
||||
if m < int(len) {
|
||||
r.leftover = r.buf[m:len]
|
||||
dataLen := int(len) - r.Overhead()
|
||||
m := copy(b, r.buf[:dataLen])
|
||||
if m < int(dataLen) {
|
||||
r.leftover = r.buf[m:dataLen]
|
||||
}
|
||||
|
||||
return m, err
|
||||
|
Loading…
Reference in New Issue
Block a user