Add packet padding container for packet length shaping: refactor

This commit is contained in:
Shelikhoo 2025-01-28 14:08:03 +00:00
parent 9e1cc35878
commit 1689279e95
No known key found for this signature in database
GPG key ID: 4C9764E9FE80A3DC

View file

@ -11,8 +11,8 @@ type packetPaddingContainer struct {
func (c packetPaddingContainer) Pack(data_OWNERSHIP_RELINQUISHED []byte, padding int) []byte { func (c packetPaddingContainer) Pack(data_OWNERSHIP_RELINQUISHED []byte, padding int) []byte {
data := append(data_OWNERSHIP_RELINQUISHED, make([]byte, padding)...) data := append(data_OWNERSHIP_RELINQUISHED, make([]byte, padding)...)
data_length := len(data_OWNERSHIP_RELINQUISHED) dataLength := len(data_OWNERSHIP_RELINQUISHED)
data = append(data, byte(data_length>>8), byte(data_length)) data = binary.BigEndian.AppendUint16(data, uint16(dataLength))
return data return data
} }
@ -34,14 +34,16 @@ func (c packetPaddingContainer) Pad(padding int) []byte {
} }
func (c packetPaddingContainer) Unpack(wrappedData_OWNERSHIP_RELINQUISHED []byte) ([]byte, int) { func (c packetPaddingContainer) Unpack(wrappedData_OWNERSHIP_RELINQUISHED []byte) ([]byte, int) {
if len(wrappedData_OWNERSHIP_RELINQUISHED) < 2 { dataLength := len(wrappedData_OWNERSHIP_RELINQUISHED)
return nil, len(wrappedData_OWNERSHIP_RELINQUISHED) if dataLength < 2 {
return nil, dataLength
} }
wrappedData_tail := wrappedData_OWNERSHIP_RELINQUISHED[len(wrappedData_OWNERSHIP_RELINQUISHED)-2:]
dataLength := int(binary.BigEndian.Uint16(wrappedData_tail)) dataLen := int(binary.BigEndian.Uint16(wrappedData_OWNERSHIP_RELINQUISHED[dataLength-2:]))
paddingLength := len(wrappedData_OWNERSHIP_RELINQUISHED) - dataLength - 2 paddingLength := dataLength - dataLen - 2
if paddingLength < 0 { if paddingLength < 0 {
return nil, paddingLength return nil, paddingLength
} }
return wrappedData_OWNERSHIP_RELINQUISHED[:dataLength], paddingLength
return wrappedData_OWNERSHIP_RELINQUISHED[:dataLen], paddingLength
} }