Home | History | Annotate | Line # | Download | only in testdata
      1  1.1  christos ; config options
      2  1.1  christos server:
      3  1.1  christos 	answer-cookie: yes
      4  1.1  christos 	cookie-secret: "000102030405060708090a0b0c0d0e0f"
      5  1.1  christos 	access-control: 127.0.0.1 allow_cookie
      6  1.1  christos 	access-control: 1.2.3.4 allow
      7  1.1  christos 	local-data: "test. TXT test"
      8  1.1  christos 
      9  1.1  christos CONFIG_END
     10  1.1  christos 
     11  1.1  christos SCENARIO_BEGIN Test downstream DNS Cookies
     12  1.1  christos 
     13  1.1  christos ; Note: When a valid hash was required, it was generated by running this test
     14  1.1  christos ; with an invalid one and checking the output for the valid one.
     15  1.1  christos ; Actual hash generation is tested with unit tests.
     16  1.1  christos 
     17  1.1  christos ; Query without a client cookie ...
     18  1.1  christos STEP 0 QUERY
     19  1.1  christos ENTRY_BEGIN
     20  1.1  christos REPLY RD
     21  1.1  christos SECTION QUESTION
     22  1.1  christos test. IN TXT
     23  1.1  christos ENTRY_END
     24  1.1  christos ; ... get TC and refused
     25  1.1  christos STEP 1 CHECK_ANSWER
     26  1.1  christos ENTRY_BEGIN
     27  1.1  christos MATCH all
     28  1.1  christos REPLY QR RD RA TC REFUSED
     29  1.1  christos SECTION QUESTION
     30  1.1  christos test. IN TXT
     31  1.1  christos ENTRY_END
     32  1.1  christos 
     33  1.1  christos ; Query without a client cookie on TCP ...
     34  1.1  christos STEP 10 QUERY
     35  1.1  christos ENTRY_BEGIN
     36  1.1  christos REPLY RD
     37  1.1  christos MATCH TCP
     38  1.1  christos SECTION QUESTION
     39  1.1  christos test. IN TXT
     40  1.1  christos ENTRY_END
     41  1.1  christos ; ... get an answer
     42  1.1  christos STEP 11 CHECK_ANSWER
     43  1.1  christos ENTRY_BEGIN
     44  1.1  christos MATCH all
     45  1.1  christos REPLY QR RD RA AA NOERROR
     46  1.1  christos SECTION QUESTION
     47  1.1  christos test. IN TXT
     48  1.1  christos SECTION ANSWER
     49  1.1  christos test. IN TXT "test"
     50  1.1  christos ENTRY_END
     51  1.1  christos 
     52  1.1  christos ; Query with only a client cookie ...
     53  1.1  christos STEP 20 QUERY
     54  1.1  christos ENTRY_BEGIN
     55  1.1  christos REPLY RD
     56  1.1  christos SECTION QUESTION
     57  1.1  christos test. IN TXT
     58  1.1  christos SECTION ADDITIONAL
     59  1.1  christos HEX_EDNSDATA_BEGIN
     60  1.1  christos 	00 0a			; Opcode 10
     61  1.1  christos 	00 08			; Length 8
     62  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
     63  1.1  christos HEX_EDNSDATA_END
     64  1.1  christos ENTRY_END
     65  1.1  christos ; ... get BADCOOKIE and a new cookie
     66  1.1  christos STEP 21 CHECK_ANSWER
     67  1.1  christos ENTRY_BEGIN
     68  1.1  christos MATCH all server_cookie
     69  1.1  christos REPLY QR RD RA DO YXRRSET	; BADCOOKIE is an extended rcode
     70  1.1  christos SECTION QUESTION
     71  1.1  christos test. IN TXT
     72  1.1  christos ENTRY_END
     73  1.1  christos 
     74  1.1  christos ; Query with an invalid cookie ...
     75  1.1  christos STEP 30 QUERY
     76  1.1  christos ENTRY_BEGIN
     77  1.1  christos REPLY RD
     78  1.1  christos SECTION QUESTION
     79  1.1  christos test. IN TXT
     80  1.1  christos SECTION ADDITIONAL
     81  1.1  christos HEX_EDNSDATA_BEGIN
     82  1.1  christos 	00 0a			; Opcode 10
     83  1.1  christos 	00 18			; Length 24
     84  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
     85  1.1  christos 	02 00 00 00		; wrong version
     86  1.1  christos 	00 00 00 00		; Timestamp
     87  1.1  christos 	31 32 33 34 35 36 37 38	; wrong hash
     88  1.1  christos HEX_EDNSDATA_END
     89  1.1  christos ENTRY_END
     90  1.1  christos ; ... get BADCOOKIE and a new cookie
     91  1.1  christos STEP 31 CHECK_ANSWER
     92  1.1  christos ENTRY_BEGIN
     93  1.1  christos MATCH all server_cookie
     94  1.1  christos REPLY QR RD RA DO YXRRSET	; BADCOOKIE is an extended rcode
     95  1.1  christos SECTION QUESTION
     96  1.1  christos test. IN TXT
     97  1.1  christos ENTRY_END
     98  1.1  christos 
     99  1.1  christos ; Query with an invalid cookie from a non-cookie protected address ...
    100  1.1  christos STEP 40 QUERY ADDRESS 1.2.3.4
    101  1.1  christos ENTRY_BEGIN
    102  1.1  christos REPLY RD
    103  1.1  christos SECTION QUESTION
    104  1.1  christos test. IN TXT
    105  1.1  christos SECTION ADDITIONAL
    106  1.1  christos HEX_EDNSDATA_BEGIN
    107  1.1  christos 	00 0a			; Opcode 10
    108  1.1  christos 	00 18			; Length 24
    109  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
    110  1.1  christos 	02 00 00 00		; wrong version
    111  1.1  christos 	00 00 00 00		; Timestamp
    112  1.1  christos 	31 32 33 34 35 36 37 38	; wrong hash
    113  1.1  christos HEX_EDNSDATA_END
    114  1.1  christos ENTRY_END
    115  1.1  christos ; ... get answer and a cookie
    116  1.1  christos STEP 41 CHECK_ANSWER
    117  1.1  christos ENTRY_BEGIN
    118  1.1  christos MATCH all server_cookie
    119  1.1  christos REPLY QR RD RA AA DO NOERROR
    120  1.1  christos SECTION QUESTION
    121  1.1  christos test. IN TXT
    122  1.1  christos SECTION ANSWER
    123  1.1  christos test. IN TXT "test"
    124  1.1  christos ENTRY_END
    125  1.1  christos 
    126  1.1  christos ; Query with a valid cookie ...
    127  1.1  christos STEP 50 QUERY
    128  1.1  christos ENTRY_BEGIN
    129  1.1  christos REPLY RD
    130  1.1  christos SECTION QUESTION
    131  1.1  christos test. IN TXT
    132  1.1  christos SECTION ADDITIONAL
    133  1.1  christos HEX_EDNSDATA_BEGIN
    134  1.1  christos 	00 0a			; Opcode 10
    135  1.1  christos 	00 18			; Length 24
    136  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
    137  1.1  christos 	01 00 00 00		; Version/Reserved
    138  1.1  christos 	00 00 00 00		; Timestamp
    139  1.1  christos 	38 52 7b a8 c6 a4 ea 96	; Hash
    140  1.1  christos HEX_EDNSDATA_END
    141  1.1  christos ENTRY_END
    142  1.1  christos ; ... get answer and the cookie
    143  1.1  christos STEP 51 CHECK_ANSWER
    144  1.1  christos ENTRY_BEGIN
    145  1.1  christos MATCH all server_cookie
    146  1.1  christos REPLY QR RD RA AA DO NOERROR
    147  1.1  christos SECTION QUESTION
    148  1.1  christos test. IN TXT
    149  1.1  christos SECTION ANSWER
    150  1.1  christos test. IN TXT "test"
    151  1.1  christos ENTRY_END
    152  1.1  christos 
    153  1.1  christos ; Query with a valid >30 minutes old cookie ...
    154  1.1  christos STEP 59 TIME_PASSES ELAPSE 1801
    155  1.1  christos STEP 60 QUERY
    156  1.1  christos ENTRY_BEGIN
    157  1.1  christos REPLY RD
    158  1.1  christos SECTION QUESTION
    159  1.1  christos test. IN TXT
    160  1.1  christos SECTION ADDITIONAL
    161  1.1  christos HEX_EDNSDATA_BEGIN
    162  1.1  christos 	00 0a			; Opcode 10
    163  1.1  christos 	00 18			; Length 24
    164  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
    165  1.1  christos 	01 00 00 00		; Version/Reserved
    166  1.1  christos 	00 00 00 00		; Timestamp
    167  1.1  christos 	38 52 7b a8 c6 a4 ea 96	; Hash
    168  1.1  christos HEX_EDNSDATA_END
    169  1.1  christos ENTRY_END
    170  1.1  christos ; ... Get answer and a refreshed cookie
    171  1.1  christos ;     (we don't check the re-freshness here; it has its own unit test)
    172  1.1  christos STEP 61 CHECK_ANSWER
    173  1.1  christos ENTRY_BEGIN
    174  1.1  christos MATCH all server_cookie
    175  1.1  christos REPLY QR RD RA AA DO NOERROR
    176  1.1  christos SECTION QUESTION
    177  1.1  christos test. IN TXT
    178  1.1  christos SECTION ANSWER
    179  1.1  christos test. IN TXT "test"
    180  1.1  christos ENTRY_END
    181  1.1  christos 
    182  1.1  christos ; Query with a hash-valid >60 minutes old cookie ...
    183  1.1  christos STEP 69 TIME_PASSES ELAPSE 3601
    184  1.1  christos STEP 70 QUERY
    185  1.1  christos ENTRY_BEGIN
    186  1.1  christos REPLY RD
    187  1.1  christos SECTION QUESTION
    188  1.1  christos test. IN TXT
    189  1.1  christos SECTION ADDITIONAL
    190  1.1  christos HEX_EDNSDATA_BEGIN
    191  1.1  christos 	00 0a			; Opcode 10
    192  1.1  christos 	00 18			; Length 24
    193  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
    194  1.1  christos 	01 00 00 00		; Version/Reserved
    195  1.1  christos 	00 00 07 09		; Timestamp (1801)
    196  1.1  christos 	77 81 38 e3 8f aa 72 86	; Hash
    197  1.1  christos HEX_EDNSDATA_END
    198  1.1  christos ENTRY_END
    199  1.1  christos ; ... get BADCOOKIE and a new cookie
    200  1.1  christos STEP 71 CHECK_ANSWER
    201  1.1  christos ENTRY_BEGIN
    202  1.1  christos MATCH all server_cookie
    203  1.1  christos REPLY QR RD RA DO YXRRSET	; BADCOOKIE is an extended rcode
    204  1.1  christos SECTION QUESTION
    205  1.1  christos test. IN TXT
    206  1.1  christos ENTRY_END
    207  1.1  christos 
    208  1.1  christos ; Query with a valid future (<5 minutes) cookie ...
    209  1.1  christos STEP 80 QUERY
    210  1.1  christos ENTRY_BEGIN
    211  1.1  christos REPLY RD
    212  1.1  christos SECTION QUESTION
    213  1.1  christos test. IN TXT
    214  1.1  christos SECTION ADDITIONAL
    215  1.1  christos HEX_EDNSDATA_BEGIN
    216  1.1  christos 	00 0a			; Opcode 10
    217  1.1  christos 	00 18			; Length 24
    218  1.1  christos 	31 32 33 34 35 36 37 38	; Random bits
    219  1.1  christos 	01 00 00 00		; Version/Reserved
    220  1.1  christos 	00 00 16 45		; Timestamp (1801 + 3601 + 299)
    221  1.1  christos 	4a f5 0f df f0 e8 c7 09	; Hash
    222  1.1  christos HEX_EDNSDATA_END
    223  1.1  christos ENTRY_END
    224  1.1  christos ; ... get an answer
    225  1.1  christos STEP 81 CHECK_ANSWER
    226  1.1  christos ENTRY_BEGIN
    227  1.1  christos MATCH all server_cookie
    228  1.1  christos REPLY QR RD RA AA DO NOERROR
    229  1.1  christos SECTION QUESTION
    230  1.1  christos test. IN TXT
    231  1.1  christos SECTION ANSWER
    232  1.1  christos test. IN TXT "test"
    233  1.1  christos ENTRY_END
    234  1.1  christos 
    235  1.1  christos SCENARIO_END
    236