mirror of https://github.com/v2ray/v2ray-core
parent
1931820c4c
commit
85d6e1ad13
|
@ -2,6 +2,7 @@
|
||||||
package alloc
|
package alloc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"hash"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/v2ray/v2ray-core/common/serial"
|
"github.com/v2ray/v2ray-core/common/serial"
|
||||||
|
@ -109,6 +110,12 @@ func (b *Buffer) PrependUint32(v uint32) *Buffer {
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *Buffer) PrependHash(h hash.Hash) *Buffer {
|
||||||
|
b.SliceBack(h.Size())
|
||||||
|
h.Sum(b.Value[:0])
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
// Bytes returns the content bytes of this Buffer.
|
// Bytes returns the content bytes of this Buffer.
|
||||||
func (b *Buffer) Bytes() []byte {
|
func (b *Buffer) Bytes() []byte {
|
||||||
return b.Value
|
return b.Value
|
||||||
|
|
|
@ -30,9 +30,7 @@ func (this *AuthChunkWriter) Release() {
|
||||||
func Authenticate(buffer *alloc.Buffer) {
|
func Authenticate(buffer *alloc.Buffer) {
|
||||||
fnvHash := fnv.New32a()
|
fnvHash := fnv.New32a()
|
||||||
fnvHash.Write(buffer.Value)
|
fnvHash.Write(buffer.Value)
|
||||||
|
buffer.PrependHash(fnvHash)
|
||||||
buffer.SliceBack(4)
|
|
||||||
fnvHash.Sum(buffer.Value[:0])
|
|
||||||
|
|
||||||
buffer.PrependUint16(uint16(buffer.Len()))
|
buffer.PrependUint16(uint16(buffer.Len()))
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,9 +32,7 @@ func (this *SimpleAuthenticator) Seal(buffer *alloc.Buffer) {
|
||||||
buffer.PrependUint16(uint16(buffer.Len()))
|
buffer.PrependUint16(uint16(buffer.Len()))
|
||||||
fnvHash := fnv.New32a()
|
fnvHash := fnv.New32a()
|
||||||
fnvHash.Write(buffer.Value)
|
fnvHash.Write(buffer.Value)
|
||||||
|
buffer.PrependHash(fnvHash)
|
||||||
buffer.SliceBack(4)
|
|
||||||
fnvHash.Sum(buffer.Value[:0])
|
|
||||||
|
|
||||||
len := buffer.Len()
|
len := buffer.Len()
|
||||||
xtra := 4 - len%4
|
xtra := 4 - len%4
|
||||||
|
|
Loading…
Reference in New Issue