diff --git a/pkg/ueps/reader.go b/pkg/ueps/reader.go index 185a1fc..6ea0972 100644 --- a/pkg/ueps/reader.go +++ b/pkg/ueps/reader.go @@ -47,13 +47,12 @@ func ReadAndVerify(reader *bufio.Reader, sharedSecret []byte) (*ParsedPacket, er break } - tagLengthByte, err := reader.ReadByte() + tagValueLength, err := reader.ReadByte() if err != nil { return nil, err } - tagLength := int(tagLengthByte) - tagValue := make([]byte, tagLength) + tagValue := make([]byte, tagValueLength) if _, err := io.ReadFull(reader, tagValue); err != nil { return nil, err } @@ -62,34 +61,34 @@ func ReadAndVerify(reader *bufio.Reader, sharedSecret []byte) (*ParsedPacket, er case TagVersion: header.Version = tagValue[0] signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) case TagCurrentLayer: header.CurrentLayer = tagValue[0] signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) case TagTargetLayer: header.TargetLayer = tagValue[0] signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) case TagIntent: header.IntentID = tagValue[0] signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) case TagThreatScore: header.ThreatScore = binary.BigEndian.Uint16(tagValue) signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) case TagHMAC: hmacSignature = tagValue default: // signedData.WriteByte(unknownTag); signedData.Write(tagValue) — unknown tags contribute to HMAC, blocking injection signedData.WriteByte(tagByte) - signedData.WriteByte(byte(tagLength)) + signedData.WriteByte(tagValueLength) signedData.Write(tagValue) } }