Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package srtp
 
import (
    "context"
    "encoding/binary"
 
    "github.com/v2fly/v2ray-core/v5/common"
    "github.com/v2fly/v2ray-core/v5/common/dice"
)
 
type SRTP struct {
    header uint16
    number uint16
}
 
func (*SRTP) Size() int32 {
    return 4
}
 
// Serialize implements PacketHeader.
func (s *SRTP) Serialize(b []byte) {
    s.number++
    binary.BigEndian.PutUint16(b, s.header)
    binary.BigEndian.PutUint16(b[2:], s.number)
}
 
// New returns a new SRTP instance based on the given config.
func New(ctx context.Context, config interface{}) (interface{}, error) {
    return &SRTP{
        header: 0xB5E8,
        number: dice.RollUint16(),
    }, nil
}
 
func init() {
    common.Must(common.RegisterConfig((*Config)(nil), New))
}