ax(ueps): rename h→header and p→packet in usage example comments
Single-letter variables in comments teach bad habits to agents. Usage examples must use predictable names matching AX principle 1. Co-Authored-By: Charon <charon@lethean.io>
This commit is contained in:
parent
adbf31e987
commit
577775cbf8
2 changed files with 11 additions and 11 deletions
|
|
@ -20,7 +20,7 @@ const (
|
|||
TagPayload = 0xFF // The Data
|
||||
)
|
||||
|
||||
// h := ueps.UEPSHeader{Version: 0x09, CurrentLayer: 5, TargetLayer: 3, IntentID: 0x01, ThreatScore: 0}
|
||||
// header := ueps.UEPSHeader{Version: 0x09, CurrentLayer: 5, TargetLayer: 3, IntentID: 0x01, ThreatScore: 0}
|
||||
type UEPSHeader struct {
|
||||
Version uint8 // 0x09 = IPv9
|
||||
CurrentLayer uint8 // OSI layer of the sender (5 = Application)
|
||||
|
|
@ -52,27 +52,27 @@ func NewBuilder(intentID uint8, payload []byte) *PacketBuilder {
|
|||
}
|
||||
|
||||
// frame, err := builder.MarshalAndSign([]byte("my-shared-secret"))
|
||||
func (p *PacketBuilder) MarshalAndSign(sharedSecret []byte) ([]byte, error) {
|
||||
func (builder *PacketBuilder) MarshalAndSign(sharedSecret []byte) ([]byte, error) {
|
||||
buffer := new(bytes.Buffer)
|
||||
|
||||
// 1. Write Standard Header Tags (0x01 - 0x05)
|
||||
// We write these first because they are part of what we sign.
|
||||
if err := writeTLV(buffer, TagVersion, []byte{p.Header.Version}); err != nil {
|
||||
if err := writeTLV(buffer, TagVersion, []byte{builder.Header.Version}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := writeTLV(buffer, TagCurrentLayer, []byte{p.Header.CurrentLayer}); err != nil {
|
||||
if err := writeTLV(buffer, TagCurrentLayer, []byte{builder.Header.CurrentLayer}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := writeTLV(buffer, TagTargetLayer, []byte{p.Header.TargetLayer}); err != nil {
|
||||
if err := writeTLV(buffer, TagTargetLayer, []byte{builder.Header.TargetLayer}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := writeTLV(buffer, TagIntent, []byte{p.Header.IntentID}); err != nil {
|
||||
if err := writeTLV(buffer, TagIntent, []byte{builder.Header.IntentID}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Threat Score is uint16, needs binary packing
|
||||
threatScoreBytes := make([]byte, 2)
|
||||
binary.BigEndian.PutUint16(threatScoreBytes, p.Header.ThreatScore)
|
||||
binary.BigEndian.PutUint16(threatScoreBytes, builder.Header.ThreatScore)
|
||||
if err := writeTLV(buffer, TagThreatScore, threatScoreBytes); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -81,8 +81,8 @@ func (p *PacketBuilder) MarshalAndSign(sharedSecret []byte) ([]byte, error) {
|
|||
// The signature covers: Existing Header TLVs + The Payload
|
||||
// It does NOT cover the HMAC TLV tag itself (obviously)
|
||||
messageAuthCode := hmac.New(sha256.New, sharedSecret)
|
||||
messageAuthCode.Write(buffer.Bytes()) // The headers so far
|
||||
messageAuthCode.Write(p.Payload) // The data
|
||||
messageAuthCode.Write(buffer.Bytes()) // The headers so far
|
||||
messageAuthCode.Write(builder.Payload) // The data
|
||||
signature := messageAuthCode.Sum(nil)
|
||||
|
||||
// 3. Write HMAC TLV (0x06)
|
||||
|
|
@ -101,7 +101,7 @@ func (p *PacketBuilder) MarshalAndSign(sharedSecret []byte) ([]byte, error) {
|
|||
// We don't write a 1-byte length for payload here assuming stream mode,
|
||||
// but if strict TLV, we'd need a multi-byte length protocol.
|
||||
// For this snippet, simply appending data:
|
||||
buffer.Write(p.Payload)
|
||||
buffer.Write(builder.Payload)
|
||||
|
||||
return buffer.Bytes(), nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"io"
|
||||
)
|
||||
|
||||
// packet, err := ueps.ReadAndVerify(r, secret)
|
||||
// packet, err := ueps.ReadAndVerify(r, sharedSecret)
|
||||
// if err == nil { _ = packet.Header.IntentID; _ = packet.Header.ThreatScore; _ = packet.Payload }
|
||||
type ParsedPacket struct {
|
||||
Header UEPSHeader
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue