summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2016-04-07 16:23:00 +0200
committerLinus Nordberg <linus@nordu.net>2016-04-07 16:23:00 +0200
commited60e7e384560e8581d16c218ca629a7555beb1e (patch)
treebc2f205006f40ab99b1d0390efdd70afc0f00d1c
parent5485d7c6724a34db28c4da34386caa8d4059f11d (diff)
Add knot config dir for local root, for testing.
-rw-r--r--src/dnssecport.erl2
-rw-r--r--test/testdata/dnssec/local-root-knot/com.zone38
-rw-r--r--test/testdata/dnssec/local-root-knot/example.com.zone37
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/0ff5512971dcaba9f86b8bb66327ca96618c219c.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/1871eaf10efa16fbb7fd09629a98756c105db287.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/31e5aa9c4e693a96755ea60be7591d912a2cbd56.pem28
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/401727559d9eed3f65f869d12c976709dad7c752.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/49d9856a4fb1df370e4f779c5cd3a2a3cc8a62c7.pem28
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/58ecb4f3b5b3e0530e2d453735132d98b6117db5.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/b33387f19fcbb81ef35ec60a1d6720d0936ce16b.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/c6a6622a84600d8ef007e601094fcf177cdf324a.pem28
-rw-r--r--test/testdata/dnssec/local-root-knot/keys/e29b6739c26b908efa88b9c47c4833b44265d005.pem6
-rw-r--r--test/testdata/dnssec/local-root-knot/keystore_default.json4
-rw-r--r--test/testdata/dnssec/local-root-knot/knot.conf31
-rw-r--r--test/testdata/dnssec/local-root-knot/policy_default.json15
-rw-r--r--test/testdata/dnssec/local-root-knot/policy_default_manual.json15
-rw-r--r--test/testdata/dnssec/local-root-knot/root.zone37
-rw-r--r--test/testdata/dnssec/local-root-knot/zone_.json33
-rw-r--r--test/testdata/dnssec/local-root-knot/zone_com.json33
-rw-r--r--test/testdata/dnssec/local-root-knot/zone_example.com.json33
-rw-r--r--test/testdata/dnssec/req-basic (renamed from test/testdata/dnssec/req.1)bin2597 -> 2597 bytes
-rw-r--r--test/testdata/dnssec/req-lowttlbin0 -> 2597 bytes
22 files changed, 397 insertions, 1 deletions
diff --git a/src/dnssecport.erl b/src/dnssecport.erl
index c942fb4..30c8c9e 100644
--- a/src/dnssecport.erl
+++ b/src/dnssecport.erl
@@ -101,7 +101,7 @@ stop_port(State) ->
%%%%%%%%%%%%%%%%%%%%
%% Unit tests.
-define(TA_FILE, "test/testdata/dnssec/trust_anchors").
--define(REQ1_FILE, "test/testdata/dnssec/req.1").
+-define(REQ1_FILE, "test/testdata/dnssec/req-basic").
-define(REQ2_FILE, "test/testdata/dnssec/req-lowttl").
start_test_port() ->
diff --git a/test/testdata/dnssec/local-root-knot/com.zone b/test/testdata/dnssec/local-root-knot/com.zone
new file mode 100644
index 0000000..ee40d1d
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/com.zone
@@ -0,0 +1,38 @@
+;; Zone dump (Knot DNS 2.2.0-dev)
+com. 3600 SOA dns1.com. hostmaster.com. 2016040503 21600 3600 604800 86400
+com. 3600 NS dns1.com.
+com. 3600 MX 10 mail.com.
+com. 3600 DNSKEY 256 3 8 AwEAAe0bWxXw0mkIIiLBSdIGlatvpq7KhHCmWuh9Hj/7Ee0P7y1UY7/ZAIlvK0oHJseg1v44iPnbibde4bQw28crn8LCnohl2jBQv/bpw8mC49XPXXbCRoma10p4rzfIiXr8AgXmgC/D8x6JoA4xtnWF5KGq+q3Nec6HNzIeQJxINaAXVCq3sV/SYUG4eU3aEYSSEqsTQacKpO7ZtBN7YSL8v6xfEo3sriYUlQ94TU3GBgxYKH8XvooVocUA9ARVFMtClfpwZGlbS6jpaH2QiqqVYoCtne9wTyorKoxfWNTC1X9JYFpCR8pcHBeodwRKzo8lezkz6hd3a7+5B58rZos+1hM=
+com. 3600 DNSKEY 256 3 13 TFtL3TVRtx8buiwmnBtaJMiEyu1n0LyEwFcJO9kV632SaPcL4qDlWKPvnZmNTsXOtTCJNPzJic71gSMGPgdB6g==
+com. 3600 DNSKEY 257 3 13 YxYghREM4L1HunkRIE3Y23X3XbHONYNIu7CDSCanE6bGckJaBmQDw5xx//5zyYhHxqnT+PCeA5G3ac/yjXKlbQ==
+dns1.com. 3600 A 127.0.0.1
+dns1.com. 3600 AAAA ::1
+example.com. 3600 NS dns1.example.com.
+example.com. 3600 DS 21098 13 2 59D00D0F78ADC0860929A923467AC2BDCBF028D204AB141E873F6BB8743DD586
+;; DNSSEC signatures
+com. 3600 RRSIG NS 8 1 3600 20160419135240 20160405135240 42325 com. zz3MvRwmE4tXCIvW+KdEBD0dCQ9P92E1s60u+3TSnjfYfzoyMJRhJkpDaJuHwIZC9XnVju4iF0Z72YeoZaMW7evc8eWFbsHC7DjeaT+9yUO8SLjDSiKWMA+vmbFPWjxCQck6STzYc8TwapN6boZoO9loiyQEF0ZaFWe7bLeJ8nzUXHje6OsO4U3EJ1gYRjL3710r4+SOjXX/OIzbekkcHsi+32jxfeFAEARg4mX+sGnujpOX9zg2O3PFv5t+lVScPy0JQ3/LTlO7MGC12ZdwWzjb1DKidBN4dytiU3HEqQDYmtpwYKY1SBCa6wVnVo49bwLH7Iwq0py6cgdBUrqZKw==
+com. 3600 RRSIG NS 13 1 3600 20160419135240 20160405135240 20561 com. mk7U4sdS5/n5WQsICUDy4xw+aY7+BTaG7TlhL/Mb4jZLUWNWA46+gQlFEFKOv7Y6RnAMvl47F/6RIpXXdRfTIA==
+com. 3600 RRSIG SOA 8 1 3600 20160420111320 20160406111320 42325 com. p3wY29FoCKPXw4hrNi7wNkXyEGYfZaUecpFnFpjwXly5Nh6+pvh9ZypMljCmYvz0sLSNafCcXS9TYl7JW+e/MY4/miX8QWL9dGYGUd83mcL4aK+qnd+d76dpqE4dDAtqX/rWMmzF/LnKUMDw5bqZliPr8ChIXj3omjrag3YHrRl+cQbmGRPE+WeDbA9YfOMK5i8Pa8nQyz7S+H8txzUW9M8H5g/Xsng1lJpySdWwmSTlAMzMF3T3+6xqzJ2s0hBwsWPzI1wK6bkrsX9lmNHdMR1/WF3rCIVzSQtOfF3Iru8HYiDWL6Bj7xH/NmEcPm4ILKEcEfgoDpGrx0gy2/6zPA==
+com. 3600 RRSIG SOA 13 1 3600 20160420111320 20160406111320 20561 com. GprIAZNVo6NS1k8IoU6bTMR2L6CIIQtyZAMK0D/4apMfbaFBUeHf/ZktvQd86HqkY7jF98UhtXPxon0qZn/nkQ==
+com. 3600 RRSIG MX 8 1 3600 20160419135240 20160405135240 42325 com. WuDWaZE+G0dENoUN/9rSGKKin9EVEHqiN213XhE8/YyrsS3jUYHgQxrj4beRckH8voJTH2mKNdd6WfxDNTmCbJ21qS0KLpZivbx5xUOZ6zDIuxYWU/SFoJnd4jkzJrSGmdgLvPrXoJEwbbttpTI+TUQw/wukGSDts/X/Fk3xM41VH1H2rDVza53f7O86+G95LowdBC8gr2845qFhxEOlaPbm5ODVI9mhH9SGofOYl7rmq1FeioIA9AeQ8qnx7gbR32roouDX8bZeijXCtxWAyVaCIPXoTrP9JfOWJ6cvWimUH6LYa3fu16RiqYXv7x/sxpXyN8rPGKWGKG9SOx9sVA==
+com. 3600 RRSIG MX 13 1 3600 20160419135240 20160405135240 20561 com. eqJJvf1Vei3ovczTU7EJ6kjjuY9Y6EDm2zWPgrZ9UrjzoSt6gyQL3zaQ2mcFzF/LStVY67AblHhcbA/MNZWMsQ==
+com. 86400 RRSIG NSEC 8 1 86400 20160419135240 20160405135240 42325 com. 1ptvqI3VuXr6Aps10LUQhwhvjrkQnOMEB/h+QNhjKj90nk5DojDYCfgtugPCP3TlIxOOb+JeBUQeuxrVIfUMCb5wWXRDY+9HTKn3a5IAkCitvm4+bBVR7G15Kgb/u4lpsLDAi+UsA14hxjDIxtuoF0r73+MC9aCA0KADkKpzEfL/iBBM94a1DpsA2w3iGafF9ydy2Q8FG2CXWaauZYjM44OQQyGE82Cc4fl6BINIdQfNnGp1bhWXrWnSQ7S/6GT2Ox+So4ywIamydYq6+MoQ3Ec6VLodFswSK/qHclZk7MCp7mss7WeY7/S7HhwFMnOWukl4EfFVj+WZPEo6BgXzGw==
+com. 86400 RRSIG NSEC 13 1 86400 20160419135240 20160405135240 20561 com. Ij3MWKHQlIhZk0r90z3EKnb6/sgWYZdmuax4g2QQuvveEhy4i0XDRQRFj62Rol4KGGx+ctVOvjJPVaT1FTR5ig==
+com. 3600 RRSIG DNSKEY 8 1 3600 20160419135240 20160405135240 42325 com. q6j7RwXOmrSxyi3EXC80tmY5woCvPdmCr+Rw/6bJ3fjzKyj7qPERGGn2BQSA1eEZ+iXRHM8GjQWeK842yMyZuLp4q70+tV9pg4CCcMgYa0+mLUDrU3vIMNtNn+NpekOdMrLhLQvrE+/MdwsBMt+gmcW4HyUBpr7p7iTcSEq6pc3M/ZLydRjz7dAunX9WUBxEx+u++NOhdGAIpn/ELwj8UlFfIrofwBee4LRQYzAk+B2Bw9LVbT0wcFAgCZ/LAbsM2i28Zk3FrSzXnYzLOlCmjLnAHGeENDsMkmGaPoOfKC9tD/i/MafYgDLWpHIBmTQWuiV6MhzNycZslyAu1gmipw==
+com. 3600 RRSIG DNSKEY 13 1 3600 20160419135240 20160405135240 50778 com. GNvkI2Qa8bBjoXUuJlawgaPAxJTsdpu8DsDfN4wzRnCm+Kx2SNqTTIhFMjogD3fz9WNWg30+Zdwd1zW7tO7LfA==
+dns1.com. 3600 RRSIG A 8 2 3600 20160419135240 20160405135240 42325 com. UUu/P+aoXYs8zayr0O7DWwpBFTf/h4J1VGqmUte7wgMaHXEW9xyQjf30/7QKY5XQkZ1lN//PnBSbllaWiLH6AJHKf1mtdX8+X6bnxJMK+u3zWC8cHiZNp46qpKuWlD9fFA6Q0tB9kAAddgluo7ZozTrzRNJO3ZYMMJ6tfG0QXSxHntlJkwE2wQLvi3rWEgDx5PNag7BdLy7nlg5/pEzb9OuE1fNXUsvU/31H2nGAyBq8VUVDmBvQnjSsBqE43qJs2m9jV/eZj3jTCu4gcZdEJOlmTJOg1Sj4J/GqHrTgP3sYNTakO29WXkUHxSjcTLRm/Uv6OR4sKemIgTSIIJM1GQ==
+dns1.com. 3600 RRSIG A 13 2 3600 20160419135240 20160405135240 20561 com. yPOsvKBwtpidyyGlj0cHu0QQCqZFjcWTh9cMo8bf3PGSENWawG3cUIQi6V5AKDtz5SX3GW8UpjjpNfdVek507Q==
+dns1.com. 3600 RRSIG AAAA 8 2 3600 20160419135240 20160405135240 42325 com. u18tBqwyIt8nEwIen9pTKJ8Wl0mEbZv1fYCvzN/68SU7xo9+s9762PcmIQLA62IjcRAnv8pmD8diumHskLCR+f+nYu+1jE7brk/qHfiPPrXL3SVA8l9WgY7O0GJj0gZiWZKvkvgX+mueJtOW3cCTcWd3etVMmPBk5vxiYjT5i3pNXbvppg2YF8Z5m35sp/o34QsVzTRsAVrqTqoRZCPN8TlgXtaDmdHUk9FOK+JqeNxXZYX1G1VVeHIHW2/s5xMjIGLepkoVbmlOH9wDKyN09fd30gBZwbpIx0mtvjDytWY/Ov052oL7hO+Kt12iSZsFulcDO++Ie+rLZU74hIHdkg==
+dns1.com. 3600 RRSIG AAAA 13 2 3600 20160419135240 20160405135240 20561 com. LKfz4S79o/0Za3nNgysOIk4z1iRu8VM6PXWg8V5V+YdILl2SGdIs/j6bvINDAM4px+vQzWVNHHOavudDOzGTOw==
+dns1.com. 86400 RRSIG NSEC 8 2 86400 20160419135240 20160405135240 42325 com. M8bgrUcgNxipAuR8y5Yq+8Qfp22M4sqFMOaiPCWa9k6lXA8xnx5+En7f+yApAupAOEYyTGycCuBpNwKxliXUPd1Gokw4wsf9EQ1oiL1EdxBvEChQ3aCqcIyrukNOOafi8fbKfJV5OOSTeG1fgk3vr5hQeKxkfa3SQMyDqKlCpZFH+zXLzwaJkipb7FAaD4gG9GH34hjfMOobwIus+hPlCfNpwyV3VvzG/l3nDep4J8P41h/gBDe9IK+m9p0TfWvUjWLGPCWDakOpTbq871vlxEiIfQEKgsgeGA0p9SoASGkR129aclvf+DccNuwFBTxwq0cqCagWI/TNYy1WTdAZ1w==
+dns1.com. 86400 RRSIG NSEC 13 2 86400 20160419135240 20160405135240 20561 com. ecEdBfbf3ZlspG+u36hc35MuZnnYn6ZUazWhb2nVaVwWKzwpVD4m0Hia/BCWYLIAflWXyMlNdN3ppLAfKegAcA==
+example.com. 3600 RRSIG DS 8 2 3600 20160419100603 20160405100603 42325 com. 0oUvWQ4jmBucApn9kSSXhZ3ej6tT0Y7krKSYsV7CNPImftDtpiJ8eyZ/y8+e5idKbF47fSOex6N+JIPntDUUqU7S9uyYvf1tuThR0M8OCD6zjK9qa75OiLZJvA+gVAbwuj2YyZN/oV/ycsSBebrv6R/LVVhdvLHt9EHRGI99gfPzeOxw4GOTjPC9As0z9US3PqYqGIEvsw74nHFfXTvABTA5rT9m1obL55uOb9GKnJFBXbGzsGsIqcHHO4wbMlkwAPX5vqgXjk2m1BVH8v4pamzXqY/XoljVUdtbwoDbEhAW72G+CM2nR0f1FUHOaeTg4yGtri384tNREenifN0CuQ==
+example.com. 3600 RRSIG DS 13 2 3600 20160419100603 20160405100603 20561 com. BuRYOwDFNjLTcKVudg7XPv/SH6l1wHEv6B9vrxx2H+G+i/n69EXZCW96S4IKn75H8bjmOn694SodwwfZVennmw==
+example.com. 86400 RRSIG NSEC 8 2 86400 20160420111320 20160406111320 42325 com. 5vJsIiTM5x6W2FG67WbHGpH2D48p5dOB0ZqvF7Ssvxb5tkEE6waLDWEZEA0Uf6+8Hh5fGtH3i5m+2KVxnI8WevnUWhrB5+gF7Agh1vcJG29eTyMWWt1sGc7jalC2JSgyMGdSj+aRjcDWZo8gdKRjbEy9+9/pqMUpKoWDxfzpV4UfDLgTcG2Fe/oTWiHRhMXl7spvoEmYR/D0KAjsWo6F4Zeb+c6GStovPbBSee5ih3XFQgvEWfyz31lgbNxGrWRX0jBnkQfPD6Yq34rN1ZQ0vjT3hbrgiC6Ni//aU5pAvnzC+VcLIaCqhbgoxDDloN1/6JCU8KUIvch5NH8jDJF/BQ==
+example.com. 86400 RRSIG NSEC 13 2 86400 20160420111320 20160406111320 20561 com. B3GLwut1bOTE2J/gxB3CEXbS/OFjLOtGCT2Zvojzfy7XEzXuECkASUpUUGpZwhI4nytMat43FBnbC96qDy3CHA==
+;; DNSSEC NSEC chain
+com. 86400 NSEC dns1.com. NS SOA MX RRSIG NSEC DNSKEY
+dns1.com. 86400 NSEC example.com. A AAAA RRSIG NSEC
+example.com. 86400 NSEC com. NS DS RRSIG NSEC
+;; Written 33 records
+;; Time 2016-04-06 13:13:20 CEST
diff --git a/test/testdata/dnssec/local-root-knot/example.com.zone b/test/testdata/dnssec/local-root-knot/example.com.zone
new file mode 100644
index 0000000..0ed78db
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/example.com.zone
@@ -0,0 +1,37 @@
+;; Zone dump (Knot DNS 2.2.0-dev)
+example.com. 3600 SOA dns1.example.com. hostmaster.example.com. 2016032903 21600 3600 604800 86400
+example.com. 3600 NS dns1.example.com.
+example.com. 3600 MX 10 mail.example.com.
+example.com. 3600 DNSKEY 256 3 8 AwEAAcK/XalnYZkcFRlp0GnLTDbzWFUshwDX29rKxqz0k8cZ5LMMYP5X6nhlYfMhbcKhnhRq7591dk6UquXgTNUXPr1I1goZ45uDvneq0oyB7GnXqDlXRuztslfUIXSqsqLnbyeu9HBd3bD5KuFrsPEm+hsV1Xd7d5sR6wFswMaZ/J0lSGUB9fgZEwGKf+2IC9j0oTYiQdgar0We5VS2jNC3Kv+xuDfLyGMm/HujPu8BLvmF/AkaPVJl80mbMEm7/U0mKFPvtzNr6C4EZp3mjy6/Cpb9LC9OvFl2ctJcb/V0XDbFfUZk+UU8Zo+1UrgtqmlRKZ1mam8KeiEnRw1ultaaGNM=
+example.com. 3600 DNSKEY 256 3 13 DWXYU7mHp7j/RlQg1JX9BkHZy6ElZ7krn6GYNA9Qj5vjPsbEpoPYk+TOu5/MJa9SGQ85YH9EoSlq6QBUlGw9Tw==
+example.com. 3600 DNSKEY 257 3 13 d3dWx+uk4Q091CsUthycpmsGbBzwjbVyazWSjftzlzuzqHFMQwp1Ihns6UJkf84DseZxQ+nlbkCWj+7VIma0OA==
+example.com. 3600 A 127.0.0.2
+example.com. 3600 AAAA ::2
+dns1.example.com. 3600 A 127.0.0.1
+dns1.example.com. 3600 AAAA ::1
+;; DNSSEC signatures
+example.com. 3600 RRSIG A 8 2 3600 20160419183332 20160405183332 45433 example.com. nhvafzB1H7kkPFsJaHuO/t+u2GsgkDghAb8CrtqKiPzyrDrlZpnnKGGV5II8GSlq1aNO4v59wraqXID/9NxHxy3I7J+z2UdrLQEDzvt9vZxxWN8GXEv+KWnST9vQDld2RCPbiTEaFDbgYyW66MvCsrzAgMMgnJDaTWV1M5pwkDKSVRjwBCHT6kSpcNHrGWPD1UfKoJQnVe0BehqXMSXpqAmLPEupJlBrVA2H9VCmXs8GKOJYA0NoPaRBdjvKjNw/YsfVJ1w6YT/LOxyGn6wfJEeTAONsLteanX87//b8DPxKZkML1wL/S8IWj/lkAQO9muiMx1pphTS9SPGECMMdAQ==
+example.com. 3600 RRSIG A 13 2 3600 20160419183332 20160405183332 10163 example.com. Jxsgur/rz68RQb1KT387D2MmPvnjVxX8HjgLH/Vnn8jPsE+VqS/c7NMScNASCQJvx3JyaQYUxEVl7TdRH67cmw==
+example.com. 3600 RRSIG NS 8 2 3600 20160419135240 20160405135240 45433 example.com. p1RrpTxPud9j4Lt0BrJpmdI2oA9LmNir82Ny6Ze/EwN04EpaL2dW+j5RisEddRaeAcA79YPxKQ/OB517WqZahrYBayaE1cELppDFeVfQdStBV2W2lmzLKz43KYtP9CScO7r7inl3YPghKA1OIHzG9dn0XUsxIbRi0IO0wccfqGpr0gF2kp36cGzlCPtCAHhG5yzQnqpOpKrJ5aTKzZSiDNY+XwT/S3dccfPr/5uQN4meKeYZNm8QYz8Qnua90C2RDrwu6LZbOIN+a08siPyD1mr8gM0qpE5CI+VCm1qQMgzqCnH62nMtHFqIx8GSgGbHyyI78cqPNGVSQpKYTwD89g==
+example.com. 3600 RRSIG NS 13 2 3600 20160419135240 20160405135240 10163 example.com. ep92WhhHlezn+Vglpkujo8D9DnPk2sRIZaUMCsSsY10IrUlSdIMqFPVqXjvEOANCzHgd0pwlnc+kVC7HScsAjg==
+example.com. 3600 RRSIG SOA 8 2 3600 20160419183332 20160405183332 45433 example.com. hcQ95ftVlEAS6ie4kT967aUOVb5UVKLnS0gU4g/+ECYJBVrgLDzPQXji6Shw9TKaHRNRoEXQqJi4KC7Md/v7E9zAYecopEzLEWw3wHvaufO1Poc8S9xVnLikSB+tA1vzRnmxlotmRBp6WUKBF4SizW0EYAyH2p/hug48DkpA/kZXqUf1zbXAKPDBGFqkWxxgy86Pg68mnkvKo1P6AjLt6sqButwDtkRi2TGg0Sug54dPZ1DCLoDzXJD3RX4DNIoSRmio9+5No+BIoHcdre8oKpZgXEafeqlrD7FYNgVDZSf5AWj82Ovc/CZazLeEPhFZK9Nu1dkNcfi7Ib3wXgTQUw==
+example.com. 3600 RRSIG SOA 13 2 3600 20160419183332 20160405183332 10163 example.com. FCh5pmoo8rxelv5yEd8SO45Sdj57teqnmHushurvsh8vMPq2/Qw2wN4+n6bgjJ7aKdBD8fgWHfAkVvwZ2yDxUA==
+example.com. 3600 RRSIG MX 8 2 3600 20160419135240 20160405135240 45433 example.com. IRXOm57eMMHqbSfG3urRpbaq+qY5GOuWtet72vqlOKMnrD2+kQ9+hGuSjgg4KnPgRAet8NnKGiUFqMaXxMZo8FVAFzOkcTsSKFqwBjEMxeTHig7jxA/T4qjc9zE3E0OmzsZYRKR8XaxXP6SXwifal5JMDFKPI5UbW6RkjWNBl6nICg1DGZJPCyf8cH2/QGOYZ1OIJY6Qkwljj9fE8Zgl6y8b6X8v+N0izDNT5bc+EFtl/NktXW1Ot6G9KdGQbO4eEzsWDigdYFiaHUScLXdjcTH+5FoRv7m9OG/BtG8C047X+mNUuzoIAYUNdCl0cUZ78rvw/YtYCz0RhwWfOLYrOQ==
+example.com. 3600 RRSIG MX 13 2 3600 20160419135240 20160405135240 10163 example.com. xD7Z5E9K8ReImo45s/+Aezkg91VXVOgaCBVXpJYI7mIGnfZwN6sYK1OQAEI3JflZHLsLxJwkKF0gBZd1liiXaQ==
+example.com. 3600 RRSIG AAAA 8 2 3600 20160419183332 20160405183332 45433 example.com. l1CoPfh4Xyls9Mah8oUYsMbPGXGU818SxqGNwLIUvNE/PRa8UU+UwvOjdul60OrhDgiD9SQ+NMgou5AcZnnXoFa4IE2jY0eU3ng9zO5+xqvFIl8P4TfKqGJcWi3WJqo4lqu1/NRs4GZ8/GYotp1eekOs2yZMHqliBT1iHobvMpKn/aKMJyENP0n6O4xjiSjPZ2LWelvNwrXnYnhe7MGZtrb0Ml5PmaaW3ZHBlb6qELcm6BqSIAmXmE0cgkBZWMCd6ge3dTZ4XJKdh+HhVhK6erhD3wyZAxBa2mqKuJsyDHYfPmCpK2Vp6BFJtP5KyqhXOyeM2irXI+WexyhpP4bB1g==
+example.com. 3600 RRSIG AAAA 13 2 3600 20160419183332 20160405183332 10163 example.com. fX7Cwh/vQvWXR0Ac9r1RRD3KiGg8KmcmutqMxYQN45m5cnNxV+jXBXLAHJVqeLrNH9GnJiktQPO7VbWPp/Ngkg==
+example.com. 86400 RRSIG NSEC 8 2 86400 20160419183332 20160405183332 45433 example.com. qxAjrgOc8CO9HzybOKCQhdUWwOD67wIRVgAkPQU1FsvtHcSrIpBEiLITQzeR6k/c/VGnkMRlxnRl/Z8AbMlpEIT/reZO+0H9Qe4nix+wIgAJmPH3RHWUXGWCeKB4p9pHPgeZg05slemLDNyA1Nxa+p+Wv+DUj8myq0d7K0HEM7+d8ufFrHIaoy2RGCglwjqsgl+WxezOmhA9vU9g3sM6HR6WlNX+9AV7ABekQwvfcpxSBKfbYaDuLSe/IBalaZaGkofeFlCypWwwyj61E86vlpQVCLfL/IqOBDYixBBLYlml4ZDSw7zR1oiOcD0w/iKpNrxKhcy3FDuDRzi92Y+1bw==
+example.com. 86400 RRSIG NSEC 13 2 86400 20160419183332 20160405183332 10163 example.com. 7m8Fh2Z03azfncENiHqLWBrHt5qQFDpSt9Xku6EKYoZ5MLImZRua9PBtDHkCQcWzLR5o/RzeoHAxw01EAE0n1w==
+example.com. 3600 RRSIG DNSKEY 8 2 3600 20160419135240 20160405135240 45433 example.com. YA1RBeuiT5H4RgW7czRkkFmqgoKuYL/w6X5gKzn5Dv61liLR4zKnuG1ijTJxxkDslFhOz28Nf0Gwoaluwcxr4kebh0y5uRiV6QAPlWU7+MrwPe0hsIilwUsA0LihJ+6E3QtksYrp87FB90IuKDj9WKrsPrmBa7Sqm8MOFWkmnsG1LPPUZJJRbgHVnUkoPlXN/aZGBjmeF9SzKC+KzG08N2hGhM19dEOwxPnI0CpR8t7ImIBx9Qm8xZ5p9gPuxvS2wDwskNl72tj36HoIWAXkCNpSXyjI6q4Xzqwq0V4UjbrPDi/4PTwy52d+BmEWwbc2BFKqXvMC1nThCDz9vaLpbA==
+example.com. 3600 RRSIG DNSKEY 13 2 3600 20160419135240 20160405135240 21098 example.com. X8CMePB/kvDi5c/tvzCo7tWxm/RwnFs+PYfrG1z185Ta6akQy5HkvckvAGNgnAURkn5lo06Wh8vHoiOVX2jgQg==
+dns1.example.com. 3600 RRSIG A 8 3 3600 20160419135240 20160405135240 45433 example.com. BDQsTNuq10v3/vWMj86YoZSZSsHdM2qUISSFLKXdQulrQ7A8k7uzTrAMjx6JVBnZymMcKurZ6145TaqT2Y7GSDuZlYPk8+TMvXM+U3qaGcqutZg7p4bDm8osd0VgH3cOtKJv5jKdjz/eB6OeLT5PubRbMIwOn12bqaZXvLeC474w5y5XzQ6P8HQB73tS3G9tST6Dh9Jkudq26kwg8Vs0Yak6PzD7K/sJMKNf3zQfN2kVmRqC/4HF79kRcdX7jxhq7bj5jWYfmIFipvOJTLrZaHzuw67VLVGVWkyLgWPVgVRmFKtbjvddp72ZXxEwuY5PHMiUxQ4TZSBNCdjsD/dqNg==
+dns1.example.com. 3600 RRSIG A 13 3 3600 20160419135240 20160405135240 10163 example.com. NP1rJ/I9PS/xZf7bEShoyphfbUdmQBtm9+zNY8k/qzFn7WPP5df1ILSrV86n4cKEQ7+ln3jcXKIqNsFWzunCZw==
+dns1.example.com. 3600 RRSIG AAAA 8 3 3600 20160419135240 20160405135240 45433 example.com. VgBU5zda3QsrU7HVOFqhkon2hbFPLgOZT92cxA9EomIj5j3YN2QWewwOr93Rc4Z+1SF9kdSYzs+sdboWhNEdJS/cxRv0Pb0EPFbH9BtYm2ToL67qicEm9SpjjX+R3kK9AGtGPyaW+jf4PRH9n7eWCvl66OyQv7K+vgmqlhrkNnawUSQW22hC40w9/nb9GbqlB/HDgh8jsaXBFCkO4fj0IalzbwH11yDu2UaW4r9KO4VQlLBX0jDQ9Z7TpvSUmFVm5yQMxdLFpSxNRUiBbcyzcTxlg0eIGGQ9ipbrXpZRqRU0kLnUxpd4vhPiVFJ1Dh/0wAE042JWHvGXF1tkhlvkuA==
+dns1.example.com. 3600 RRSIG AAAA 13 3 3600 20160419135240 20160405135240 10163 example.com. typ9zbX3ZAf2uIoWAXopAqGrpE4OPrTL+tJ4eUVnBFZPTt474Xtos/dYpHblli0sDN8p5fNCuCDdH8Spt7Mqkw==
+dns1.example.com. 86400 RRSIG NSEC 8 3 86400 20160419183332 20160405183332 45433 example.com. WXKNIHt9nqnzozu7Zh8jBAF16UnLBTuFxIFICq7rhn+8y5vlpoA7/PVPdBhZiIwDLoFZVxMmKF/LK4QD3ovf2UfKAUhPFhjflCwy/1QwiHmWP5vXGLUkXQhH6LWfiu35P+fFZk+fLSCIngy6VVIITuiFFNYYDG0wePC6nVmOssGHPMvKgsbuBnxE1BmnJbyDpaZ9NmgICuYHhTiNxMZmhPew5wX0bmH7csoTXVpirTwHGtzDE8/Rdwdz2vTaE1pTT/vIO95ohuoX5BFJBnKRuTwOIZmlr9VqvsEwCuwuBZ4LqcByanN99JJHSLkH5PNiL7hybx55VpdmN/yGNLEI1g==
+dns1.example.com. 86400 RRSIG NSEC 13 3 86400 20160419183332 20160405183332 10163 example.com. zYiooyqsl9NZazHXiaUTwPobM7GRQVP3EzYXV1d3jYJPFDBj2e28x3dtbqGDkWZIB2amhObPsH6D3bG8lpq70g==
+;; DNSSEC NSEC chain
+example.com. 86400 NSEC dns1.example.com. A NS SOA MX AAAA RRSIG NSEC DNSKEY
+dns1.example.com. 86400 NSEC example.com. A AAAA RRSIG NSEC
+;; Written 32 records
+;; Time 2016-04-05 20:33:32 CEST
diff --git a/test/testdata/dnssec/local-root-knot/keys/0ff5512971dcaba9f86b8bb66327ca96618c219c.pem b/test/testdata/dnssec/local-root-knot/keys/0ff5512971dcaba9f86b8bb66327ca96618c219c.pem
new file mode 100644
index 0000000..3163eab
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/0ff5512971dcaba9f86b8bb66327ca96618c219c.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgPbaErx56BAGdHqUC
+HHNBMiAl8eJQ3P3LhUF4uc5AiC2gCgYIKoZIzj0DAQehRANCAARMW0vdNVG3Hxu6
+LCacG1okyITK7WfQvITAVwk72RXrfZJo9wvioOVYo++dmY1Oxc61MIk0/MmJzvWB
+IwY+B0Hq
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/1871eaf10efa16fbb7fd09629a98756c105db287.pem b/test/testdata/dnssec/local-root-knot/keys/1871eaf10efa16fbb7fd09629a98756c105db287.pem
new file mode 100644
index 0000000..4a46531
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/1871eaf10efa16fbb7fd09629a98756c105db287.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhAIcXYRBy2iZ4dVzg
+1wAJb8IBtAxjPNw5SEh8ytAXFVLRoAoGCCqGSM49AwEHoUQDQgAEDWXYU7mHp7j/
+RlQg1JX9BkHZy6ElZ7krn6GYNA9Qj5vjPsbEpoPYk+TOu5/MJa9SGQ85YH9EoSlq
+6QBUlGw9Tw==
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/31e5aa9c4e693a96755ea60be7591d912a2cbd56.pem b/test/testdata/dnssec/local-root-knot/keys/31e5aa9c4e693a96755ea60be7591d912a2cbd56.pem
new file mode 100644
index 0000000..4db0d6f
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/31e5aa9c4e693a96755ea60be7591d912a2cbd56.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9qzS2lr88IrVF
+PRP56nkxeKUvS7aqAIA+kaCtDtAtfDEkiOtJ3hYdkIDoL2d5QqSQbubad3bXumUX
+qxzIMZoPTI8pwxHNr/b74e5JwAbdoRH/zftiH3Qfbu5+ENmzCdpqZRJdEuNfkL/Q
+/WHOXTZBShRbouiMQ8mUyQwwQUfVC7KG/oTd9+xOYKyOHfs+O7Vt6ufruiDtZeY+
+iN5Az70jbbIqDFhN0mVbl/BXMFhYLF/cwFiKmPyXT40P4Yg4DMLHbzShbn7XevP1
+8md/KeMKt1Viee7RM6+B2RBZeN7a5iTobCBfNTCPWz6YFdmYLIwN54Hcz4/ZN0OI
+fKThVeu9AgMBAAECggEBAIkF0LVAPrPBF1gIAhCAtkFpOVzrw/EZH40URBICK59Q
+o2gTinf4+90r8hTLemN+I8k8dYbK246KWFI7CjYOr4/x7VNsW8ZPI41g8XdSRSOE
+I668Lqn6szeqOp3UqpHPwn0uu4+F/8GgnxLqmugtKu8MB50UGhCLQGw+upF5990O
+ryhYV4jN696rcCDeA1He9JKDsWOBRsWruM2t/rr0PvD84U+d4sa0BIX0eKZI3EV7
+TTarYZ0lOMQ6hNbeCiVSPfW+TTT9ZfVNXzIxGnjqcFCoxINpe38xinZ+Zusu8x//
+Twk2KgK2RSy32rJyAqRrDAPMoMZDbUxc1ePS68RpP7kCgYEAwR2gdL9UHgmoNca9
+6Yg3CLeDfdWeGR1mjBzyY/naV6o7IfMchdDRRZi0yehc2rSG4oifE/xXmPO8pXdS
+eFzQ/2nQLFX1v51TR76XD/iE+PY4GYOhXX2VQgROg34uy2czkXuwT0rjUzHTwQfK
+S6qvlTxFF4Z3d0WDWTNRRU7m/C8CgYEA+248h4WSDmn3vkTAijkSXOAlBFS1S8M5
+NFboSIybOAxE2+jzVat6jETo2IkYlBZXlOoFCq0f+XLI774AxAgyLM1necfk9Scg
+PaU29cGj94bZapYGQ0R5QEFVv6Q0Gao1aLIe41bpMlCZ2FLxhZwBmz3FYoDMgBb7
+727vUIXDv9MCgYAsIRkJlK8kLhDCOSgstXPeChGCL85w7scAPZ0mO3IpljztBSD/
+czhfLwYhHXgagiZQnee8KW3bBdeV+C5gUtVviD6J4xrFLq5ZNrROcfvw6FLpgare
+MlRpQZKveaY31N1z4U/ozrQjzr8U3TLdF6QH9j3TomaqWrgpKhDoRZ+DAQKBgHxk
+xb2m7+QBuXiBO2Ena1ZX7vh9kFSzeZHTjYiXSBQqvcavMfSoqjDLxweajHZ3t00N
+mwD1NmSLza4PKwHRrEFOPmuZ4kUH3oOhQdfEvgKwzNBW+TI+pl6L9IikDMLF2za5
+KV8AmM8z4WmNX8Ditki//vAFGSgmNu72y5/jDj3RAoGAP8to0njDDivowYryyFQC
+K2cNAtyE6v8+smD7JLMclKSgcrfQSVK/QrwjI8QQA7XfaMSdJdOpnhjfC7HVj5q6
+SID3bLetnPIGW5wmg4wcfuWwCCDR3dchcEXywbFNg8wkdiyqzY+AA+gjD/iH93fi
+mtiOxPEe3C3EOx37JsI4LNw=
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/401727559d9eed3f65f869d12c976709dad7c752.pem b/test/testdata/dnssec/local-root-knot/keys/401727559d9eed3f65f869d12c976709dad7c752.pem
new file mode 100644
index 0000000..a5e1f9b
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/401727559d9eed3f65f869d12c976709dad7c752.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhAP2Jhxmyoh84ez1+
+9EsVnxLhf42r04AHSH3tP64jmh9soAoGCCqGSM49AwEHoUQDQgAEj4HX2iqs6aFd
+NjUoHP321mJiuHzD4ONYyFNIcQ5vPpWEZN63/LsV8TyThOhluheMcqXKxTU0uuSo
+kCfVMWODog==
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/49d9856a4fb1df370e4f779c5cd3a2a3cc8a62c7.pem b/test/testdata/dnssec/local-root-knot/keys/49d9856a4fb1df370e4f779c5cd3a2a3cc8a62c7.pem
new file mode 100644
index 0000000..5e6abfc
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/49d9856a4fb1df370e4f779c5cd3a2a3cc8a62c7.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCv12pZ2GZHBUZ
+adBpy0w281hVLIcA19vaysas9JPHGeSzDGD+V+p4ZWHzIW3CoZ4Uau+fdXZOlKrl
+4EzVFz69SNYKGeObg753qtKMgexp16g5V0bs7bJX1CF0qrKi528nrvRwXd2w+Srh
+a7DxJvobFdV3e3ebEesBbMDGmfydJUhlAfX4GRMBin/tiAvY9KE2IkHYGq9FnuVU
+tozQtyr/sbg3y8hjJvx7oz7vAS75hfwJGj1SZfNJmzBJu/1NJihT77cza+guBGad
+5o8uvwqW/SwvTrxZdnLSXG/1dFw2xX1GZPlFPGaPtVK4LappUSmdZmpvCnohJ0cN
+bpbWmhjTAgMBAAECggEATYBcpMsIkycS2n86uq92EDQ9hf/nZhWBYAvsju3yVXzf
+f8XAX9fa7rjiByDZjmhFAbkgzWOwhksxy7O8v9y1UhzHWVO+OahvRy5LBjG6RNDX
+GKK8DhP2Mm+wNL6twpi5qqA8lO82B3TRdM4np4CsbdT9k8Ql8CdsT6/Y8/BaEKsQ
+qGlEENXIMFl40w4sTNbleOjnlptsbgyIKql+2xM+vt3c9/bc0xZBrmQUQTjeqcyb
+wttUHj8lSm9rjPtIaPJ9d9Cj3xrXlIozEWqy7jXzSNBWXndg6zBSF1lh0hGYpP6o
+DBEtAKK7zVaYeUq+06Pi8ZLwXbW7mkoW8NetFaL7YQKBgQDsUvupPOQ/X1BDlrrO
+wXvhqM6RYq4xEm1SQUQaTxloxOXMU63FvUVhuSFPWGcbE5B45z/pvc+cuGzUNNE8
+f7UhaD1JePeBe5wfWXqeuZvhdC8nsY1ahaC3ePs6k9vbNvBZXkGa1uTzTcxWeVe4
+EqwsHulRbFW2MT2cvxf+WEmnwwKBgQDS9jfD+s2OimOHMoD1VHQzWSnKob2yZQIQ
+pQt3jkR84azMQdaGjNdH4+6UAYqUftB2dzBFm3IdCEa7XgtvZlHv4WtEz0lBRrQE
+6vH1LgPODLu1rxTFf8Mb43hrsjoAmxemcmNqMSJfhIPCWC/swmmZqkly4CeBofro
+sciasufJsQKBgQDfW2r5wFBlyPr+dpam1V31oOtjo6XJQYZLiN4KE5qLWBVtMeV6
+j/Hkc+oUqRQCFlKkwsO4cqqnj/Nj+WuMx5L1OSU7rPYYzjB3vMVVAU5gHsR2uqxD
+0ypcXh7sdVUFcn5lqN1OsC6B+pTXYiZTFmrd5HVWfJLh+NYnsMDHpsAuqwKBgDqh
+X2JCQ/rHj121tY15SUo0D59XUEdSNz60//jcO0CR39psudhvMC20tUvBGeinTfx+
+p5XQ2+ghsrbELl1pjIAkoBFhorRXmBR9z30aqsgLVefqntU86tbHY2JbCC++6tXB
+mMucmDb/tza+F6OvbHXek8cvcQtgH0Gol14XNsAhAoGAcm0bupGPeyjpYL1IehO/
+deXmYKgbYrkTe2TnxPRudGwuF6neikyJ9v7h8N9VxOdJKzhGKAqc5e9oVWjDh+L5
+ZbQSnhZz6iuyBbcs8gRAZAAj0kQP/+kfBpzP7+9uzwQUz9xJVxt6Zfs8d6rn5scY
+JEGD7AdTp3rjm4CqNxXnEmM=
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/58ecb4f3b5b3e0530e2d453735132d98b6117db5.pem b/test/testdata/dnssec/local-root-knot/keys/58ecb4f3b5b3e0530e2d453735132d98b6117db5.pem
new file mode 100644
index 0000000..c76ae0d
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/58ecb4f3b5b3e0530e2d453735132d98b6117db5.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhAKGmWFAIV6jbGIHK
+rnQCZPgIm4aIScP8N2pZkVzq0F1ioAoGCCqGSM49AwEHoUQDQgAE0aeFdYl8v6PJ
+CpcTi+jg9Mtqyekcpx6xVDV9f1V02zIj2HUyf/DDj9vBDEFfBRB0AI0FU0LVKFsW
+xGWRf21E0g==
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/b33387f19fcbb81ef35ec60a1d6720d0936ce16b.pem b/test/testdata/dnssec/local-root-knot/keys/b33387f19fcbb81ef35ec60a1d6720d0936ce16b.pem
new file mode 100644
index 0000000..fc8e143
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/b33387f19fcbb81ef35ec60a1d6720d0936ce16b.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgKHVV+sPI0Jrz1Nz3
+/ipljUQG9fHCTpEY6SUi9mIeoH+gCgYIKoZIzj0DAQehRANCAAR3d1bH66ThDT3U
+KxS2HJymawZsHPCNtXJrNZKN+3OXO7OocUxDCnUiGezpQmR/zgOx5nFD6eVuQJaP
+7tUiZrQ4
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/c6a6622a84600d8ef007e601094fcf177cdf324a.pem b/test/testdata/dnssec/local-root-knot/keys/c6a6622a84600d8ef007e601094fcf177cdf324a.pem
new file mode 100644
index 0000000..38cb0c9
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/c6a6622a84600d8ef007e601094fcf177cdf324a.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDtG1sV8NJpCCIi
+wUnSBpWrb6auyoRwplrofR4/+xHtD+8tVGO/2QCJbytKBybHoNb+OIj524m3XuG0
+MNvHK5/Cwp6IZdowUL/26cPJguPVz112wkaJmtdKeK83yIl6/AIF5oAvw/MeiaAO
+MbZ1heShqvqtzXnOhzcyHkCcSDWgF1Qqt7Ff0mFBuHlN2hGEkhKrE0GnCqTu2bQT
+e2Ei/L+sXxKN7K4mFJUPeE1NxgYMWCh/F76KFaHFAPQEVRTLQpX6cGRpW0uo6Wh9
+kIqqlWKArZ3vcE8qKyqMX1jUwtV/SWBaQkfKXBwXqHcESs6PJXs5M+oXd2u/uQef
+K2aLPtYTAgMBAAECggEBALnxQQ5EzI2HzlVZJY4qkcdfCOV8dj5th09Zh5Z/S8CQ
+RW5UBuHVyOD+qIEmeJgHH3NAXNMtAqQmKXSI+GIKaQBwZajrzx8ixFhbXKo0Fn5/
+X3mZw314S6vgVvC1OHOVG/UKna5XydpB7Z4UCFXDydeq4WnZgNOhIH0SUnL9Aejn
+wB07kYt1xL+NdINWAzSpMv9AXxC1Tj6bS4FW4mdtXcIayajhnMqJN5DEtahB1Bgo
+5nfuoUYLWbDyS/WSEdn0VMMH6McEauYPPhbEUe4oVsxmquvR6C8hJ0jPQcrpLnDZ
+FFBWuZektpBsjCQXS1z/EYT3xBs4+blLkamACPPD8vkCgYEA8VKsNVVxiIUN3pXV
+so0iOdBbDNFQLXISVbxEmWc/aiO4nb4ezKJCXcK9hl93sl92BWXO2oJ4/uWQyPjd
+IVAzyHKonG2WQnccogAf3Gek/+knaYcRZ+h2mAZoXBDh5vUKndYJ6r6267SsTU93
+p185kal4VCkaO9Y6SvvO1Wrmr60CgYEA+4cKOvz3wsTfyBEwmEZhFH1wH9RYx27x
+m2o29LDJliZ8gdqNSyWZl1bKN1U8jD1tiHarJ8xau8lT0lLIJMC/GlI0wdE8VkN8
+oT3ntDOTf8WlcGvz817Ozi0hY0s344v3S9ORWZJmiBeJbA4yf2eeBDW0RzN135d2
+BndzScERVL8CgYA6Ox6+x91bee+81B76tL+bf8FYuHFGZg4yjflnothUfkYgGi5I
+ZqbpBQLCl+rEKfDKoKRnabBUoYRsWlDRpw63waMaC/+EDkXkeW82ufPApLwT5Lm4
+fwmO6YzpGlHIbzyelXVTJa3x9mjVRuWyh3HWyjP06u4fnjP2wAhKyz7bCQKBgDXT
+w1u2UStMSHufOiAMR7BD29/j6I/dbTUOOO6Kesl4OQLtC3m+dS0O9L18rzVv2+Xt
+R1mAARbY0ehbsNs0qHDwkLu9lET9skkrX0+QDgu091+kqpM1gdpbjB6ctTwr8uM2
+Ro+9pdWP++e07heXzBgoigkGuT39QtPFclWhTJ0vAoGAF7rfAW7Yl1zHBRfOmd3U
+8hDhwb3E1+5gAs1EMTv5UD0YI83wz3lUmJYt5wKBwbFMdHNpo1xCNaC0MUGGHAjN
+JSV1IO/LtW4ULAeqIdOljaIhmETyib2x6UgFagutYD3pFibfiSXjCMH8fUGUhJb/
+fMRt2ti3pRz/A6rLkxpHFaU=
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keys/e29b6739c26b908efa88b9c47c4833b44265d005.pem b/test/testdata/dnssec/local-root-knot/keys/e29b6739c26b908efa88b9c47c4833b44265d005.pem
new file mode 100644
index 0000000..740befa
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keys/e29b6739c26b908efa88b9c47c4833b44265d005.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgfUwrcNeaswAglprV
+t9w/36h0bPtfprIHHbY1eucLhXCgCgYIKoZIzj0DAQehRANCAARjFiCFEQzgvUe6
+eREgTdjbdfddsc41g0i7sINIJqcTpsZyQloGZAPDnHH//nPJiEfGqdP48J4Dkbdp
+z/KNcqVt
+-----END PRIVATE KEY-----
diff --git a/test/testdata/dnssec/local-root-knot/keystore_default.json b/test/testdata/dnssec/local-root-knot/keystore_default.json
new file mode 100644
index 0000000..946479b
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/keystore_default.json
@@ -0,0 +1,4 @@
+{
+ "backend": "pkcs8",
+ "config": "keys"
+}
diff --git a/test/testdata/dnssec/local-root-knot/knot.conf b/test/testdata/dnssec/local-root-knot/knot.conf
new file mode 100644
index 0000000..48b4cbf
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/knot.conf
@@ -0,0 +1,31 @@
+# Configuration export (Knot DNS 2.2.0-dev)
+
+server:
+ user: "user:user"
+ listen: [ "0.0.0.0@53", "::@53" ]
+
+control:
+ listen: "knot.sock"
+
+log:
+ - target: "stderr"
+ any: "warning"
+
+ - target: "syslog"
+ any: "info"
+
+template:
+ - id: "default"
+ dnssec-signing: "on"
+ kasp-db: "/home/user/usr/etc/knot"
+
+zone:
+ - domain: "."
+ file: "/home/user/usr/etc/knot/root.zone"
+
+ - domain: "com."
+ file: "/home/user/usr/etc/knot/com.zone"
+
+ - domain: "example.com."
+ file: "/home/user/usr/etc/knot/example.com.zone"
+
diff --git a/test/testdata/dnssec/local-root-knot/policy_default.json b/test/testdata/dnssec/local-root-knot/policy_default.json
new file mode 100644
index 0000000..12ecc36
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/policy_default.json
@@ -0,0 +1,15 @@
+{
+ "keystore": "default",
+ "manual": false,
+ "algorithm": 13,
+ "ksk_size": 256,
+ "zsk_size": 256,
+ "dnskey_ttl": 1200,
+ "zsk_lifetime": 2592000,
+ "rrsig_lifetime": 1209600,
+ "rrsig_refresh_before": 604800,
+ "nsec3_enabled": false,
+ "soa_minimal_ttl": 0,
+ "zone_maximal_ttl": 0,
+ "propagation_delay": 3600
+}
diff --git a/test/testdata/dnssec/local-root-knot/policy_default_manual.json b/test/testdata/dnssec/local-root-knot/policy_default_manual.json
new file mode 100644
index 0000000..ff5e818
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/policy_default_manual.json
@@ -0,0 +1,15 @@
+{
+ "keystore": "default",
+ "manual": true,
+ "algorithm": 13,
+ "ksk_size": 256,
+ "zsk_size": 256,
+ "dnskey_ttl": 1200,
+ "zsk_lifetime": 2592000,
+ "rrsig_lifetime": 1209600,
+ "rrsig_refresh_before": 604800,
+ "nsec3_enabled": false,
+ "soa_minimal_ttl": 0,
+ "zone_maximal_ttl": 0,
+ "propagation_delay": 3600
+}
diff --git a/test/testdata/dnssec/local-root-knot/root.zone b/test/testdata/dnssec/local-root-knot/root.zone
new file mode 100644
index 0000000..2751194
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/root.zone
@@ -0,0 +1,37 @@
+;; Zone dump (Knot DNS 2.2.0-dev)
+. 3600 SOA dns1. hostmaster. 2016032910 21600 3600 604800 86400
+. 3600 NS dns1.
+. 3600 DNSKEY 256 3 8 AwEAAb2rNLaWvzwitUU9E/nqeTF4pS9LtqoAgD6RoK0O0C18MSSI60neFh2QgOgvZ3lCpJBu5tp3dte6ZRerHMgxmg9MjynDEc2v9vvh7knABt2hEf/N+2IfdB9u7n4Q2bMJ2mplEl0S41+Qv9D9Yc5dNkFKFFui6IxDyZTJDDBBR9ULsob+hN337E5grI4d+z47tW3q5+u6IO1l5j6I3kDPvSNtsioMWE3SZVuX8FcwWFgsX9zAWIqY/JdPjQ/hiDgMwsdvNKFuftd68/XyZ38p4wq3VWJ57tEzr4HZEFl43trmJOhsIF81MI9bPpgV2ZgsjA3ngdzPj9k3Q4h8pOFV670=
+. 3600 DNSKEY 256 3 13 0aeFdYl8v6PJCpcTi+jg9Mtqyekcpx6xVDV9f1V02zIj2HUyf/DDj9vBDEFfBRB0AI0FU0LVKFsWxGWRf21E0g==
+. 3600 DNSKEY 257 3 13 j4HX2iqs6aFdNjUoHP321mJiuHzD4ONYyFNIcQ5vPpWEZN63/LsV8TyThOhluheMcqXKxTU0uuSokCfVMWODog==
+com. 3600 NS dns1.com.
+com. 3600 DS 20561 13 2 4DD798355F9FC693033627ACB1BBAECF9095127EF86205657E236D19AD532430
+com. 3600 DS 42325 8 2 6442F67D876A3B3BD1547ADD70CCA7B69F825996ABB206E7E51A0A44B28E9AD7
+com. 3600 DS 50778 13 2 BB3588ED02E5F7DB0407035785445062A08524CE37C04F1EBE34F01498A2E5B2
+dns1. 3600 A 127.0.0.1
+dns1. 3600 AAAA ::1
+;; DNSSEC signatures
+. 3600 RRSIG NS 8 0 3600 20160419135240 20160405135240 28270 . s1CO84wXCc0Y7IbYQAnpg4mb+UqwOsyZMfz7Csj58SvDWQujFY5Un++JhutY3f5Zw4R6xKkRHhI6IFDkDef2vT0LTWKqJoRspjON04hWBNJA3yBTXs3jPNOtsfVevqk7reFT0MI7VhXTmd1Kx9KyDERWQU7pxTCp4EjStfJ8kfvPRLRQIkyAyVk57vywg3V5t0pTlyEzv0Xf/DVAhu+Y85lWqPbCrJn/8v1/vywrjVJcp2xw3louMxydbjnAn/Xi3904nTsJflhE4vuE6VU1gYMXE8VH57orfzSGxNcrrssNTe3mHtYs8zfE/gR19/74q3y0lluTKbJ/spvATZ4Lhg==
+. 3600 RRSIG NS 13 0 3600 20160419135240 20160405135240 10748 . bzwCgmSWLnbJO7WDbkjVnYl5WtCoho93SwRswqt89rp7pn3QvladdhpJWbSqYJjHABYcMBGFsPEh4xfzlbIh0Q==
+. 3600 RRSIG SOA 8 0 3600 20160420111320 20160406111320 28270 . Ffxd0/pJoSxghRgSAJvgmNVnGVbru0R0IvZae+BLcnOukDAxFoNW9QZDSv/P9H2opgfBYd/lVOIrrbxNk4ut4LiqkPNPHiLM9gScTPJzrPyw9shW++tVJxjx1g0ps0WAZgCIIjceA1CnD6WaYhuduz5WWQwcf1jnNrvpqCKUHUF/mFrDgU67yxoR8o/9PYgbZ/S/ABcwG2FsR6UaeD3RNJQ4bvr0O2p/yBRaFKz21gXFsbj3VIOQl8aOcG3xV5XaAmDJNzk0ksMGn7lf5BkF2jERFtI8pZUHI2sCIA75IrafqJn0JDZ+HX9Nh7FGQj94gDjXQDy8MH1Fca1UNpNmgA==
+. 3600 RRSIG SOA 13 0 3600 20160420111320 20160406111320 10748 . lLM/Y38qsUiTk3buKsGQXUkG/dsKnw5sDM3fD9CT2rv8sk9wsXzaJOzTfe9Xf4T1oNJpoW0/OqrCPAaAEaI2+A==
+. 86400 RRSIG NSEC 8 0 86400 20160419155734 20160405155734 28270 . jbqMaaCUMw0eQwfDyRw7etxo2xSMy1gTABTTWNXIADM+bVnlo5OMu75FkY41Dlbpz/VVFASMd0KWO8ruipUPs5L7oBDuCF8RpXVUjFzH0u0y6jop+lJ0iBo0hJ7zR514oVEIse0m7j3xyi5PIlzkgpBUfjjH2IfaXoEuOIQONpw2yBMsvdGyWp3/6VsyXUOCa7toxizVqfits/Y0lUp4tFPFVTyyf6FKqIe8VQHNJx+xeu78l+Xygj8hbHal9hNu7Ydxjxj8Nz6EI9n0BjXg0o6cv/kLhkx0iehSjv/h5OhgXyZQYiOBuE85sTnljV0KzPRb2agh9IzbalHK7DOMeQ==
+. 86400 RRSIG NSEC 13 0 86400 20160419155734 20160405155734 10748 . R8KIOiTbtzdMBkkAhBKzwfknY9Rf6zxURE6jI+CoOhPgyq11Ie06p/TtAZ29qp65ioH7ZBn2vBOP/MFDQQi2wg==
+. 3600 RRSIG DNSKEY 8 0 3600 20160419135240 20160405135240 28270 . ft6RSfKNWJcRTkOHz4CExxasYHEGwDp4Uec09rCAydfRDeTWIhBk63sHZDWn/4WBiUW2Y3tVFdMpuNrRiL1M/SNzPsTxk86RAUIoz8HLxZkXIF2zBwHnW5iEP3tb4Ram4DppaYvzjHOpvxLh6h4YJNR6MfYySeiMTwZuVkuLcTl3KejCcnTfNzCDfrBWcfAEXDPs+23VQQywmVqCE6n2m6um2Z8fNggacb7FUkCTXFeBIUrCPyzAt406mLMMQ6PpmXLPpMgXBi9Wa9YGrQSwqsXihA95HmhfGj0Nxl6zfQesRzEklZKUz/ScTz2kQeZU9F3LMT+zJ1+kB5Ny4D2FhA==
+. 3600 RRSIG DNSKEY 13 0 3600 20160419135240 20160405135240 44360 . p3o7ss5jBrin8RwDKY7kRnVI1iSZfFIpyP1WzeMpV1NN5Mk8ERf1BfTVvXL8J4pdL0ufJOFOSxmVWmFuYwxFXw==
+com. 3600 RRSIG DS 8 1 3600 20160420111320 20160406111320 28270 . cnGc0tTB3cQFVwhpOzSwC2SS8BkUWmi1p1cwk02o/zrUFXSnRRIjMuR7pKxSzvCuy1zkMyBU10JgIluslpgqJljlGRh3fOtD/YhglQU+nkdqDaKgA+SfaSMCYMdgllIqVmYY2vVensVFOiA48kiVLE/39GvF36X84uC6SS2O7bfDH8rV3bHn9eQzAKvw5zDtr2U9XnRFdnPIs0tTNr/WEu2+HNDxcA5FDVeWcG1CP104YWOPoErUa8qFl6YftopbvQ1zpGNSsHfBu80E60b3HvICoK8pEmRhzkSPs9HXwfjuOfrTxCiNfTD/2/otL50hMmfIBaIL7yV/xgR2lhwwzQ==
+com. 3600 RRSIG DS 13 1 3600 20160420111320 20160406111320 10748 . 8M8ufteIstE9dfZ1qyN0wNQQHROsmk4Kp4PU21TgkMX0BYrXnYOaYB1Kf04x7tvLAxQvScvg0HCeDZR0WiGCIw==
+com. 86400 RRSIG NSEC 8 1 86400 20160420111320 20160406111320 28270 . aVYtC7Z6h2g3nTXMaH/UC70tM1GuHzhM0Rgr4kCjGG2j1RWWxsUxl+JxHdf7phIgSxqzNe2eWiUf0oufI21eRc30UtZ1NyNOQQLofw/kidHRzsFrhocjw1T88m6AKffb9WhCxz/5VRw+kToI+hgbSYbA+f5RWn1hUqhjais05UatgZk7aCDLSJTRIQIKHR4lgvaEBF6ckqfGg5ECy/kIvV+l7t5KIQNmMBVyIBusB6d6OBPzXvesfbTbIL2XcUScW1Isg1Vpu2B2tHJWc6Gw7dm+D7DpSe02RaVr3PnO9yU0iUkLNvOJMzqtyZ613KwGC9/tGk1Xxw6zCxQ7S+wG7w==
+com. 86400 RRSIG NSEC 13 1 86400 20160420111320 20160406111320 10748 . lyHfYRU9+tLUrveuJ53L7Zp85Q6Qjve+APhOrd3bR10Wn9IiDSsJVeGynAFZxU39Qrv0AqraOIEiSppeheVGWQ==
+dns1. 3600 RRSIG A 8 1 3600 20160419155734 20160405155734 28270 . FeyvR3YkZR6jQXMQh636cnq43fNTv6v/rvNCM0qM/8r81hVfAN3pkcAd0449+wnshJGUDWLmnDCqUnOhlQL0aJECrzBtH2xu0zioWXntNyM7CsygD8wLzV+HgZKYId8SXapH7koQxp1d/JGHfnHN1uP9cK+1n+R01rRYCrV4mexp/nmmbxqDCIY0qhXLR8QDExlUfmC2Qpww73C5dzzTQATH0d+z4EnCo6lgqT4XosnNnCzU4sHVVhzbYCapP1PW5oQkF4S8jmEEALZo1UGbrtbMGQvc1M6ukJyKAquEqBz39Ns6oqjJscZ2UdB+JxdZkbyOIVDIKv6v8hS1NOEfxg==
+dns1. 3600 RRSIG A 13 1 3600 20160419155734 20160405155734 10748 . KKrhB6NOqSbAfRTtJK2maapAEqwfkAsUa3D9NTk2Q/YKDvlfWtelLgo4Bqv69YryVwP0ahMN95rztg6ydrDezw==
+dns1. 3600 RRSIG AAAA 8 1 3600 20160419155734 20160405155734 28270 . mbA3I/E09FBzoxj9uCHp8OrUiwFhVUDgh/VTgDQMEAAoA5RVATCbFDWePqqxi3mFPfn2RzyBqK67+hTtd+RTptHELtq7spy9Uoqb1LIhfbjgCHG7fDJpHWZrLyE4Xpdjb4/3XL/NZ3zpy65prKJ8A1KK9c2CxY93j8SBOitFfx+opQBvPGmfEQgN/k42RSWfrIJXzSvPnHCk3ryM+K5jjZY8cyk3XM5NDIVpBdMaCw/19IkbVle/li0WF6q7Sjswlk84SmGGmDXhdc/g1VfN1DCGd9UV4JGckcL2NJV8aOATROKk6k4fbBk1YuK9efX8+y/vWAThN25pTrDq1Jcq0Q==
+dns1. 3600 RRSIG AAAA 13 1 3600 20160419155734 20160405155734 10748 . vbWUAyPLu9iOjGClyLXB/yoHf8rS8X8LvYdc1olc8q1rvYuc63fh/8GkhVGv1Se83zp6zLllnbBC/8JcU5aD8g==
+dns1. 86400 RRSIG NSEC 8 1 86400 20160419135240 20160405135240 28270 . HEl9sVul9MU+ESWD73HX/sgM2qwEBdt6hM8LFc9dCDflb7mHsILmemNzpBpL8SwudOejTHNi4/Jbe84nCiXupNVtlLJ73P+L1+rhI11Mm+wwhg7gG1ROyZUd5T0sWCKTY49YEczOvxbTDKbdRZ0rTvb4Dx8px2Ln1KdeCrOBE1OWHIFYQX0lM6umMKvuUFfDFmMwJO7AheRViX1CFraCGYMemk+SA7+img7mrcQHtGmjnn81JTtJpIkKV/4CE4ZSSM8m94LORrVBFPisfDoAmZXvZaPzit9u/f7TCImxVDnwhHQ+eXOvdKCY5YTYRhVAle9MCF1vQl57kCbXtdMuAw==
+dns1. 86400 RRSIG NSEC 13 1 86400 20160419135240 20160405135240 10748 . XqSuichOC2p0GpII6GGItOH3XNXNB9+SG/0Gj/x4bmXViw7//sUmZkq94HcvenNcniKX7SgLLdwF5tVGPvur4A==
+;; DNSSEC NSEC chain
+. 86400 NSEC com. NS SOA RRSIG NSEC DNSKEY
+com. 86400 NSEC dns1. NS DS RRSIG NSEC
+dns1. 86400 NSEC . A AAAA RRSIG NSEC
+;; Written 32 records
+;; Time 2016-04-06 13:13:20 CEST
diff --git a/test/testdata/dnssec/local-root-knot/zone_.json b/test/testdata/dnssec/local-root-knot/zone_.json
new file mode 100644
index 0000000..a643c6d
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/zone_.json
@@ -0,0 +1,33 @@
+{
+ "policy": "default",
+ "keys": [
+ {
+ "id": "31e5aa9c4e693a96755ea60be7591d912a2cbd56",
+ "keytag": 28270,
+ "algorithm": 8,
+ "public_key": "AwEAAb2rNLaWvzwitUU9E/nqeTF4pS9LtqoAgD6RoK0O0C18MSSI60neFh2QgOgvZ3lCpJBu5tp3dte6ZRerHMgxmg9MjynDEc2v9vvh7knABt2hEf/N+2IfdB9u7n4Q2bMJ2mplEl0S41+Qv9D9Yc5dNkFKFFui6IxDyZTJDDBBR9ULsob+hN337E5grI4d+z47tW3q5+u6IO1l5j6I3kDPvSNtsioMWE3SZVuX8FcwWFgsX9zAWIqY/JdPjQ/hiDgMwsdvNKFuftd68/XyZ38p4wq3VWJ57tEzr4HZEFl43trmJOhsIF81MI9bPpgV2ZgsjA3ngdzPj9k3Q4h8pOFV670=",
+ "ksk": false,
+ "created": "2016-03-29T13:43:23+0000"
+ },
+ {
+ "id": "401727559d9eed3f65f869d12c976709dad7c752",
+ "keytag": 44360,
+ "algorithm": 13,
+ "public_key": "j4HX2iqs6aFdNjUoHP321mJiuHzD4ONYyFNIcQ5vPpWEZN63/LsV8TyThOhluheMcqXKxTU0uuSokCfVMWODog==",
+ "ksk": true,
+ "created": "2016-03-29T13:43:29+0000",
+ "publish": "2016-03-29T13:43:29+0000",
+ "active": "2016-03-29T13:43:29+0000"
+ },
+ {
+ "id": "58ecb4f3b5b3e0530e2d453735132d98b6117db5",
+ "keytag": 10748,
+ "algorithm": 13,
+ "public_key": "0aeFdYl8v6PJCpcTi+jg9Mtqyekcpx6xVDV9f1V02zIj2HUyf/DDj9vBDEFfBRB0AI0FU0LVKFsWxGWRf21E0g==",
+ "ksk": false,
+ "created": "2016-03-29T13:43:29+0000",
+ "publish": "2016-03-29T13:43:29+0000",
+ "active": "1969-12-31T23:59:59+0000"
+ }
+ ]
+}
diff --git a/test/testdata/dnssec/local-root-knot/zone_com.json b/test/testdata/dnssec/local-root-knot/zone_com.json
new file mode 100644
index 0000000..f72c36d
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/zone_com.json
@@ -0,0 +1,33 @@
+{
+ "policy": "default",
+ "keys": [
+ {
+ "id": "c6a6622a84600d8ef007e601094fcf177cdf324a",
+ "keytag": 42325,
+ "algorithm": 8,
+ "public_key": "AwEAAe0bWxXw0mkIIiLBSdIGlatvpq7KhHCmWuh9Hj/7Ee0P7y1UY7/ZAIlvK0oHJseg1v44iPnbibde4bQw28crn8LCnohl2jBQv/bpw8mC49XPXXbCRoma10p4rzfIiXr8AgXmgC/D8x6JoA4xtnWF5KGq+q3Nec6HNzIeQJxINaAXVCq3sV/SYUG4eU3aEYSSEqsTQacKpO7ZtBN7YSL8v6xfEo3sriYUlQ94TU3GBgxYKH8XvooVocUA9ARVFMtClfpwZGlbS6jpaH2QiqqVYoCtne9wTyorKoxfWNTC1X9JYFpCR8pcHBeodwRKzo8lezkz6hd3a7+5B58rZos+1hM=",
+ "ksk": false,
+ "created": "2016-03-29T13:41:36+0000"
+ },
+ {
+ "id": "e29b6739c26b908efa88b9c47c4833b44265d005",
+ "keytag": 50778,
+ "algorithm": 13,
+ "public_key": "YxYghREM4L1HunkRIE3Y23X3XbHONYNIu7CDSCanE6bGckJaBmQDw5xx//5zyYhHxqnT+PCeA5G3ac/yjXKlbQ==",
+ "ksk": true,
+ "created": "2016-03-29T13:42:53+0000",
+ "publish": "2016-03-29T13:42:53+0000",
+ "active": "2016-03-29T13:42:53+0000"
+ },
+ {
+ "id": "0ff5512971dcaba9f86b8bb66327ca96618c219c",
+ "keytag": 20561,
+ "algorithm": 13,
+ "public_key": "TFtL3TVRtx8buiwmnBtaJMiEyu1n0LyEwFcJO9kV632SaPcL4qDlWKPvnZmNTsXOtTCJNPzJic71gSMGPgdB6g==",
+ "ksk": false,
+ "created": "2016-03-29T13:42:53+0000",
+ "publish": "2016-03-29T13:42:53+0000",
+ "active": "1969-12-31T23:59:59+0000"
+ }
+ ]
+}
diff --git a/test/testdata/dnssec/local-root-knot/zone_example.com.json b/test/testdata/dnssec/local-root-knot/zone_example.com.json
new file mode 100644
index 0000000..204a325
--- /dev/null
+++ b/test/testdata/dnssec/local-root-knot/zone_example.com.json
@@ -0,0 +1,33 @@
+{
+ "policy": "default",
+ "keys": [
+ {
+ "id": "49d9856a4fb1df370e4f779c5cd3a2a3cc8a62c7",
+ "keytag": 45433,
+ "algorithm": 8,
+ "public_key": "AwEAAcK/XalnYZkcFRlp0GnLTDbzWFUshwDX29rKxqz0k8cZ5LMMYP5X6nhlYfMhbcKhnhRq7591dk6UquXgTNUXPr1I1goZ45uDvneq0oyB7GnXqDlXRuztslfUIXSqsqLnbyeu9HBd3bD5KuFrsPEm+hsV1Xd7d5sR6wFswMaZ/J0lSGUB9fgZEwGKf+2IC9j0oTYiQdgar0We5VS2jNC3Kv+xuDfLyGMm/HujPu8BLvmF/AkaPVJl80mbMEm7/U0mKFPvtzNr6C4EZp3mjy6/Cpb9LC9OvFl2ctJcb/V0XDbFfUZk+UU8Zo+1UrgtqmlRKZ1mam8KeiEnRw1ultaaGNM=",
+ "ksk": false,
+ "created": "2016-03-29T13:41:13+0000"
+ },
+ {
+ "id": "b33387f19fcbb81ef35ec60a1d6720d0936ce16b",
+ "keytag": 21098,
+ "algorithm": 13,
+ "public_key": "d3dWx+uk4Q091CsUthycpmsGbBzwjbVyazWSjftzlzuzqHFMQwp1Ihns6UJkf84DseZxQ+nlbkCWj+7VIma0OA==",
+ "ksk": true,
+ "created": "2016-03-29T13:42:53+0000",
+ "publish": "2016-03-29T13:42:53+0000",
+ "active": "2016-03-29T13:42:53+0000"
+ },
+ {
+ "id": "1871eaf10efa16fbb7fd09629a98756c105db287",
+ "keytag": 10163,
+ "algorithm": 13,
+ "public_key": "DWXYU7mHp7j/RlQg1JX9BkHZy6ElZ7krn6GYNA9Qj5vjPsbEpoPYk+TOu5/MJa9SGQ85YH9EoSlq6QBUlGw9Tw==",
+ "ksk": false,
+ "created": "2016-03-29T13:42:53+0000",
+ "publish": "2016-03-29T13:42:53+0000",
+ "active": "1969-12-31T23:59:59+0000"
+ }
+ ]
+}
diff --git a/test/testdata/dnssec/req.1 b/test/testdata/dnssec/req-basic
index e15a791..e15a791 100644
--- a/test/testdata/dnssec/req.1
+++ b/test/testdata/dnssec/req-basic
Binary files differ
diff --git a/test/testdata/dnssec/req-lowttl b/test/testdata/dnssec/req-lowttl
new file mode 100644
index 0000000..be50d2c
--- /dev/null
+++ b/test/testdata/dnssec/req-lowttl
Binary files differ