mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-06-08 16:12:37 -04:00
tests/libzscanner: extend tests for SVCB and HTTPS
This commit is contained in:
parent
ca492e5295
commit
c82d9fdcbd
4 changed files with 414 additions and 40 deletions
|
|
@ -2,25 +2,101 @@ $ORIGIN .
|
|||
$TTL 1
|
||||
|
||||
; OK
|
||||
@ SVCB 1 .
|
||||
@ TYPE64 2 @
|
||||
@ SVCB 3 x. key1026=foo
|
||||
@ TYPE64 4 . key1026="foo bar" key1027=baz
|
||||
@ SVCB 5 . mandatory=key1,port alpn="h1,h2\,h3" port=1029
|
||||
@ TYPE64 6 . (
|
||||
mandatory="ipv4hint"
|
||||
alpn="h\010h"
|
||||
ipv4hint=1.2.3.4,1.2.3.5
|
||||
ipv6hint=1::2
|
||||
)
|
||||
@ SVCB 7 . alpn=h1,h2\044h3 echconfig="YWhvag=="
|
||||
@ SVCB 0 .
|
||||
@ SVCB 0 @ ; Comment
|
||||
@ SVCB 65535 . mandatory=alpn alpn=h2
|
||||
@ SVCB 1 . mandatory="alpn" alpn=h2
|
||||
@ SVCB 1 . alpn=h2
|
||||
@ SVCB 1 . alpn="abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMN1234\053" ; Text string of maximal length (255 chars)
|
||||
@ SVCB 1 . alpn="part1,part2,part3\\,part4\\\\"
|
||||
@ SVCB 1 . alpn=part1\,\p\a\r\t2\044part3\092,part4\092\\
|
||||
@ SVCB 1 . no-default-alpn
|
||||
@ SVCB 1 . port=0
|
||||
@ SVCB 1 . port="65535"
|
||||
@ SVCB 1 . ipv4hint=0.0.0.0
|
||||
@ SVCB 1 . ipv4hint="255.255.255.255"
|
||||
@ SVCB 1 . ech=AA==
|
||||
@ SVCB 1 . ech="Zm9vYg=="
|
||||
@ SVCB 1 . ipv6hint=::1
|
||||
@ SVCB 1 . ipv6hint="::1"
|
||||
@ SVCB 1 . key7
|
||||
@ SVCB 1 . key65535
|
||||
@ SVCB 1 . key65535=a
|
||||
@ SVCB 1 . key65535="a"
|
||||
@ SVCB 1 . key65535="a" key1000=b port=4 key7 mandatory=key7,port
|
||||
@ TYPE64 \# 3 000000
|
||||
@ TYPE64 0 .
|
||||
@ svcb 0 .
|
||||
|
||||
; RFC OK examples
|
||||
example.com. HTTPS 0 foo.example.com.
|
||||
example.com. SVCB 1 .
|
||||
example.com. SVCB 16 foo.example.com. port=53
|
||||
example.com. SVCB 1 foo.example.com. key667=hello
|
||||
example.com. SVCB 1 foo.example.com. key667="hello\210qoo"
|
||||
example.com. SVCB 1 foo.example.com. (
|
||||
ipv6hint="2001:db8::1,2001:db8::53:1"
|
||||
)
|
||||
example.com. SVCB 1 example.com. ipv6hint="::ffff:198.51.100.100"
|
||||
example.com. SVCB 16 foo.example.org. (
|
||||
alpn=h2,h3-19 mandatory=ipv4hint,alpn
|
||||
ipv4hint=192.0.2.1
|
||||
)
|
||||
example.com. SVCB 16 foo.example.org. alpn="f\\\\oo\\,bar,h2"
|
||||
example.com. SVCB 16 foo.example.org. alpn=f\\\092oo\092,bar,h2
|
||||
|
||||
; KO
|
||||
@ SVCB 70000 .
|
||||
@ SVCB 8 abcdef012345678901234567890123456789012345678901234567890123456789.
|
||||
@ SVCB 9 . key70000=foo
|
||||
@ SVCB 10 . nonextype=bar
|
||||
@ SVCB 11 . mandatory=alpn,nonextype
|
||||
@ SVCB 12 . port=70000
|
||||
@ SVCB 13 . ipv4hint=1.2.3.400
|
||||
@ SVCB 14 . ipv6hint=1::2,foo
|
||||
@ SVCB
|
||||
@ SVCB ; Empty rdata
|
||||
@ SVCB \# 0 ; Hex empty rdata
|
||||
@ SVCB 65536 . ; Priority overflow
|
||||
@ SVCB 0 ; Missing item
|
||||
@ SVCB 1 . bogus ; Unknown parameter
|
||||
@ SVCB 1 . PORT=0 ; Capital letter in parameter name
|
||||
@ SVCB 1 . mandatory
|
||||
@ SVCB 1 . mandatory=
|
||||
@ SVCB 1 . mandatory=a,
|
||||
@ SVCB 1 . mandatory=a,,b
|
||||
@ SVCB 1 . mandatory=mandatory
|
||||
@ SVCB 1 . mandatory=bogus
|
||||
@ SVCB 1 . alpn
|
||||
@ SVCB 1 . alpn=
|
||||
@ SVCB 1 . alpn=a,
|
||||
@ SVCB 1 . alpn=a,,b
|
||||
@ SVCB 1 . alpn="abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMN1234\0536" ; Text string overflow (256 chars)
|
||||
@ SVCB 1 . no-default-alpn=
|
||||
@ SVCB 1 . no-default-alpn=h1
|
||||
@ SVCB 1 . no-default-alpn="h1"
|
||||
@ SVCB 1 . port
|
||||
@ SVCB 1 . port=
|
||||
@ SVCB 1 . port=65536
|
||||
@ SVCB 1 . port=1,2
|
||||
@ SVCB 1 . ipv4hint
|
||||
@ SVCB 1 . ipv4hint=
|
||||
@ SVCB 1 . ipv4hint=1.2.3
|
||||
@ SVCB 1 . ipv4hint=1.2.3.4,
|
||||
@ SVCB 1 . ipv4hint=1.2.3.4,,2.3.4.5
|
||||
@ SVCB 1 . ech
|
||||
@ SVCB 1 . ech=
|
||||
@ SVCB 1 . ech=AA==,AA==
|
||||
@ SVCB 1 . ech=W
|
||||
@ SVCB 1 . ipv6hint
|
||||
@ SVCB 1 . ipv6hint=
|
||||
@ SVCB 1 . ipv6hint=::1,,::2
|
||||
@ SVCB 1 . ipv6hint=::W
|
||||
|
||||
; RFC KO examples
|
||||
example.com. SVCB 1 foo.example.com. (
|
||||
key123=abc key123=def
|
||||
)
|
||||
example.com. SVCB 1 foo.example.com. mandatory
|
||||
example.com. SVCB 1 foo.example.com. alpn
|
||||
example.com. SVCB 1 foo.example.com. port
|
||||
example.com. SVCB 1 foo.example.com. ipv4hint
|
||||
example.com. SVCB 1 foo.example.com. ipv6hint
|
||||
example.com. SVCB 1 foo.example.com. no-default-alpn=abc
|
||||
example.com. SVCB 1 foo.example.com. mandatory=key123
|
||||
example.com. SVCB 1 foo.example.com. mandatory=mandatory
|
||||
example.com. SVCB 1 foo.example.com. (
|
||||
mandatory=key123,key123 key123=abc
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,57 +2,305 @@ OWNER=00
|
|||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=FFFF0000000002000100010003026832
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000000002000100010003026832
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000010003026832
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000010100FF6162636465666768696A6B6C6D6E6F707172737475767778797A313233343536373839304142434445464748494A4B4C4D4E6162636465666768696A6B6C6D6E6F707172737475767778797A313233343536373839304142434445464748494A4B4C4D4E6162636465666768696A6B6C6D6E6F707172737475767778797A313233343536373839304142434445464748494A4B4C4D4E6162636465666768696A6B6C6D6E6F707172737475767778797A313233343536373839304142434445464748494A4B4C4D4E6162636465666768696A6B6C6D6E6F707172737475767778797A313233343536373839304142434445464748494A4B4C4D4E3132333435
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100000100190570617274310570617274320C70617274332C70617274345C
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100000100190570617274310570617274320C70617274332C70617274345C
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000020000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100000300020000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000030002FFFF
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0001000004000400000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000040004FFFFFFFF
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0001000005000100
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000050004666F6F62
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0001000006001000000000000000000000000000000001
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0001000006001000000000000000000000000000000001
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000070000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100FFFF0000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100FFFF000161
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100FFFF000161
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00010000000004000300070003000200040007000003E8000162FFFF000161
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=000003666F6F076578616D706C6503636F6D00
|
||||
------
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000100
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000200
|
||||
RDATA=001003666F6F076578616D706C6503636F6D00000300020035
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000301780004020003666F6F
|
||||
RDATA=000103666F6F076578616D706C6503636F6D00029B000568656C6C6F
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=00040004020007666F6F206261720403000362617A
|
||||
RDATA=000103666F6F076578616D706C6503636F6D00029B000968656C6C6FD2716F6F
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0005000000000400010003000100090268310568322C6833000300020405
|
||||
RDATA=000103666F6F076578616D706C6503636F6D000006002020010DB800000000000000000000000120010DB8000000000000000000530001
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=0006000000000200040001000403680A680004000801020304010203050006001000010000000000000000000000000002
|
||||
RDATA=0001076578616D706C6503636F6D000006001000000000000000000000FFFFC6336464
|
||||
------
|
||||
OWNER=00
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=000700000100090268310568322C68330005000461686F6A
|
||||
RDATA=001003666F6F076578616D706C65036F7267000000000400010004000100090268320568332D313900040004C0000201
|
||||
------
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=001003666F6F076578616D706C65036F7267000001000C08665C6F6F2C626172026832
|
||||
------
|
||||
OWNER=076578616D706C6503636F6D00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0040
|
||||
RDATA=001003666F6F076578616D706C65036F7267000001000C08665C6F6F2C626172026832
|
||||
------
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_BAD_HEX_CHAR
|
||||
------
|
||||
WARNG=ZS_NUMBER16_OVERFLOW
|
||||
------
|
||||
WARNG=ZS_LABEL_OVERFLOW
|
||||
WARNG=ZS_BAD_RDATA
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_EMPTY_LIST_ITEM
|
||||
------
|
||||
WARNG=ZS_EMPTY_LIST_ITEM
|
||||
------
|
||||
WARNG=ZS_ITEM_OVERFLOW
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_NUMBER16_OVERFLOW
|
||||
------
|
||||
WARNG=ZS_BAD_SVC_PARAM
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_BAD_SVC_PARAM
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_NUMBER16_OVERFLOW
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_BAD_IPV4
|
||||
------
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_BAD_ADDRESS_CHAR
|
||||
------
|
||||
WARNG=ZS_DUPLICATE_SVCB_KEY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_PARAM
|
||||
------
|
||||
WARNG=ZS_MISSING_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_BAD_SVCB_MANDATORY
|
||||
------
|
||||
WARNG=ZS_DUPLICATE_SVCB_MANDATORY
|
||||
------
|
||||
|
|
|
|||
|
|
@ -1,9 +1,19 @@
|
|||
$ORIGIN .
|
||||
$TTL 1
|
||||
|
||||
; HTTPS is the same as SVCB, so there are the differences and basics only.
|
||||
|
||||
; OK
|
||||
@ HTTPS 1 .
|
||||
@ HTTPS 0 .
|
||||
@ HTTPS 65535 @ ; Comment
|
||||
@ HTTPS 1 . key65535="a" key1000=b port=4 key7 mandatory=key7,port
|
||||
@ TYPE65 \# 3 000000
|
||||
@ TYPE65 0 .
|
||||
@ https 0 .
|
||||
|
||||
; KO
|
||||
;@ SMIMEA
|
||||
|
||||
@ HTTPS
|
||||
@ HTTPS ; Empty rdata
|
||||
@ HTTPS \# 0 ; Hex empty rdata
|
||||
@ HTTPS 65536 . ; Priority overflow
|
||||
@ HTTPS 0 ; Missing item
|
||||
|
|
|
|||
|
|
@ -2,5 +2,45 @@ OWNER=00
|
|||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=000100
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=FFFF00
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=00010000000004000300070003000200040007000003E8000162FFFF000161
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=000000
|
||||
------
|
||||
OWNER=00
|
||||
CLASS=0001
|
||||
RRTTL=00000001
|
||||
RTYPE=0041
|
||||
RDATA=000000
|
||||
------
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_BAD_NUMBER
|
||||
------
|
||||
WARNG=ZS_BAD_HEX_CHAR
|
||||
------
|
||||
WARNG=ZS_NUMBER16_OVERFLOW
|
||||
------
|
||||
WARNG=ZS_BAD_RDATA
|
||||
------
|
||||
|
|
|
|||
Loading…
Reference in a new issue