]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add DS digest type code points SM3 and GOST-2012
authorMark Andrews <marka@isc.org>
Wed, 28 May 2025 01:06:41 +0000 (11:06 +1000)
committerMark Andrews <marka@isc.org>
Wed, 18 Jun 2025 21:00:53 +0000 (07:00 +1000)
Provide mapping between mnemonic and value.

lib/dns/include/dns/ds.h
lib/dns/rcode.c

index a10d9355c1b0e420369db747c67c5b9fc1956087..a1cad49683312b793349da668ad2e3d503b515ae 100644 (file)
 #include <dns/rdatastruct.h>
 #include <dns/types.h>
 
-#define DNS_DSDIGEST_SHA1   (1)
-#define DNS_DSDIGEST_SHA256 (2)
-#define DNS_DSDIGEST_GOST   (3)
-#define DNS_DSDIGEST_SHA384 (4)
+#define DNS_DSDIGEST_SHA1     (1)
+#define DNS_DSDIGEST_SHA256   (2)
+#define DNS_DSDIGEST_GOST     (3)
+#define DNS_DSDIGEST_SHA384   (4)
+#define DNS_DSDIGEST_GOST2012 (5)
+#define DNS_DSDIGEST_SM3      (6)
 
 /*
  * Assuming SHA-384 digest type.
index 6c957e870c8cf3d1ae0a2e2858f559eab0fb5918..8c803d7bb37eff3fcac0a5bdb0458949b47a2a46 100644 (file)
 
 #define TOTEXTONLY 0x01
 
+/* clang-format off */
+#define SENTINEL { 0, NULL, 0 }
+/* clang-format on */
+
 #define RCODENAMES                                     \
        /* standard rcodes */                          \
        { dns_rcode_noerror, "NOERROR", 0 },           \
@@ -69,7 +73,7 @@
 #define ERCODENAMES                          \
        /* extended rcodes */                \
        { dns_rcode_badvers, "BADVERS", 0 }, \
-               { dns_rcode_badcookie, "BADCOOKIE", 0 }, { 0, NULL, 0 }
+               { dns_rcode_badcookie, "BADCOOKIE", 0 }, SENTINEL
 
 #define TSIGRCODENAMES                                   \
        /* extended rcodes */                            \
@@ -79,7 +83,7 @@
                { dns_tsigerror_badmode, "BADMODE", 0 }, \
                { dns_tsigerror_badname, "BADNAME", 0 }, \
                { dns_tsigerror_badalg, "BADALG", 0 },   \
-               { dns_tsigerror_badtrunc, "BADTRUNC", 0 }, { 0, NULL, 0 }
+               { dns_tsigerror_badtrunc, "BADTRUNC", 0 }, SENTINEL
 
 /* RFC4398 section 2.1 */
 
@@ -87,7 +91,7 @@
        { 1, "PKIX", 0 }, { 2, "SPKI", 0 }, { 3, "PGP", 0 },                \
                { 4, "IPKIX", 0 }, { 5, "ISPKI", 0 }, { 6, "IPGP", 0 },     \
                { 7, "ACPKIX", 0 }, { 8, "IACPKIX", 0 }, { 253, "URI", 0 }, \
-               { 254, "OID", 0 }, { 0, NULL, 0 }
+               { 254, "OID", 0 }, SENTINEL
 
 /* RFC2535 section 7, RFC3110 */
 
                { DNS_KEYALG_ED448, "ED448", 0 },               \
                { DNS_KEYALG_INDIRECT, "INDIRECT", 0 },         \
                { DNS_KEYALG_PRIVATEDNS, "PRIVATEDNS", 0 },     \
-               { DNS_KEYALG_PRIVATEOID, "PRIVATEOID", 0 }, { 0, NULL, 0 }
+               { DNS_KEYALG_PRIVATEOID, "PRIVATEOID", 0 }, SENTINEL
 
 /* RFC2535 section 7.1 */
 
 #define SECPROTONAMES                                                     \
        { 0, "NONE", 0 }, { 1, "TLS", 0 }, { 2, "EMAIL", 0 },             \
                { 3, "DNSSEC", 0 }, { 4, "IPSEC", 0 }, { 255, "ALL", 0 }, \
-               { 0, NULL, 0 }
+               SENTINEL
 
-#define HASHALGNAMES { 1, "SHA-1", 0 }, { 0, NULL, 0 }
+#define HASHALGNAMES { 1, "SHA-1", 0 }, SENTINEL
 
-/* RFC3658, RFC4509, RFC5933, RFC6605 */
+/* RFC3658, RFC4509, RFC5933, RFC6605, RFC9558, RFC9563 */
 
 #define DSDIGESTNAMES                                                        \
        { DNS_DSDIGEST_SHA1, "SHA-1", 0 }, { DNS_DSDIGEST_SHA1, "SHA1", 0 }, \
                { DNS_DSDIGEST_SHA256, "SHA-256", 0 },                       \
                { DNS_DSDIGEST_SHA256, "SHA256", 0 },                        \
                { DNS_DSDIGEST_GOST, "GOST", 0 },                            \
+               { DNS_DSDIGEST_SM3, "SM3", 0 },                              \
                { DNS_DSDIGEST_SHA384, "SHA-384", 0 },                       \
-               { DNS_DSDIGEST_SHA384, "SHA384", 0 }, { 0, NULL, 0 }
+               { DNS_DSDIGEST_SHA384, "SHA384", 0 },                        \
+               { DNS_DSDIGEST_GOST2012, "GOST-2012", 0 },                   \
+               { DNS_DSDIGEST_GOST2012, "GOST2012", 0 }, SENTINEL
 
 struct tbl {
        unsigned int value;