$INCLUDE dictionary.rfc2241
$INCLUDE dictionary.rfc2610
$INCLUDE dictionary.rfc3004
+$INCLUDE dictionary.rfc3118
$INCLUDE dictionary.rfc3397
$INCLUDE dictionary.rfc3442
$INCLUDE dictionary.rfc4280
# Internet Storage Name Service
ATTRIBUTE iSNS 83 octets
-# Authentication
-ATTRIBUTE Authentication 90 octets
-
ATTRIBUTE Client-Last-Transaction-Time 91 uint32 # seconds on the past
ATTRIBUTE associated-ip 92 ipaddr array
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3118 - Authentication for DHCP Messages
+#
+# $Id$
+#
+##############################################################################
+
+# Authentication
+ATTRIBUTE Authentication 90 struct
+MEMBER Protocol uint8
+MEMBER Algorithm uint8
+MEMBER RDM uint8
+MEMBER Replay-Detection uint64
+MEMBER Authentication-Information octets
--- /dev/null
+#
+# Test vectors for DHCP attributes
+#
+proto dhcpv4
+proto-dictionary dhcpv4
+fuzzer-out dhcpv4
+
+#
+# Authentication
+#
+encode-pair Authentication = { Protocol = 1, Algorithm = 2, RDM = 32, Replay-Detection = 0, Authentication-Information = "123456789a123456789a123456789a" }
+match 5a 29 01 02 20 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 61 31 32 33 34 35 36 37 38 39 61 31 32 33 34 35 36 37 38 39 61
+
+decode-pair -
+match Authentication = { Protocol = 1, Algorithm = 2, RDM = 32, Replay-Detection = 0, Authentication-Information = 0x313233343536373839613132333435363738396131323334353637383961 }
+
+count
+match 7