static dns_secalg_t dns_alg[DST_MAX_ALGS] = {
[DST_ALG_RSASHA256PRIVATEOID] = DNS_KEYALG_PRIVATEOID,
[DST_ALG_RSASHA512PRIVATEOID] = DNS_KEYALG_PRIVATEOID,
+#if TEST_PRIVATEDNS
+ [DST_ALG_RSASHA256PRIVATEDNS] = DNS_KEYALG_PRIVATEDNS,
+ [DST_ALG_RSASHA512PRIVATEDNS] = DNS_KEYALG_PRIVATEDNS,
+#endif
};
if (dst_alg < 256) {
*/
DST_ALG_RSASHA256PRIVATEOID = 256, /* 1.2.840.113549.1.1.11 */
DST_ALG_RSASHA512PRIVATEOID = 257, /* 1.2.840.113549.1.1.13 */
+#ifdef TEST_PRIVATEDNS
+ DST_ALG_RSASHA256PRIVATEDNS = 258, /* rsasha256.example.org. */
+ DST_ALG_RSASHA512PRIVATEDNS = 259, /* rsasha512.example.org. */
+ DST_MAX_ALGS = 260,
+#else
DST_MAX_ALGS = 258,
+#endif
} dst_algorithm_t;
/*% 'Type' for dst_read_key() */
/* An unsupported private dns algorithm */
FROMDATA(DNS_KEYALG_PRIVATEDNS, 0, 0x04, 't', 'e', 's', 't',
0x00),
+#ifdef TEST_PRIVATEDNS
+ FROMDATA(DNS_KEYALG_PRIVATEDNS, DST_ALG_RSASHA256PRIVATEDNS,
+ 0x09, 'r', 's', 'a', 's', 'h', 'a', '2', '5', '6',
+ 0x07, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 0x03, 'o',
+ 'r', 'g', 0x00),
+ FROMDATA(DNS_KEYALG_PRIVATEDNS, DST_ALG_RSASHA512PRIVATEDNS,
+ 0x09, 'r', 's', 'a', 's', 'h', 'a', '5', '1', '2',
+ 0x07, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 0x03, 'o',
+ 'r', 'g', 0x00),
+#endif
/* length byte + 1.2.840.113549.1.1.11 BER encoded RFC 4055 */
FROMDATA(DNS_KEYALG_PRIVATEOID, DST_ALG_RSASHA256PRIVATEOID,
alg = dst_algorithm_fromdata(fromdata[i].secalg,
fromdata[i].data, fromdata[i].len);
assert_int_equal(alg, fromdata[i].dstalg);
+ if (alg != 0) {
+ assert_int_equal(dst_algorithm_tosecalg(alg),
+ fromdata[i].secalg);
+ }
}
}