2017-12-27 11:41:54 +00:00
#![ allow(non_snake_case) ]
2020-03-07 15:57:47 +00:00
use crate ::common_types ::{ classes , types , Class , DnsCompressedName , DnsName , Type } ;
2019-07-01 15:43:34 +00:00
use crate ::errors ::* ;
2020-03-07 15:57:47 +00:00
use crate ::packet ::opt ::{ DnsOption , Opt } ;
2019-07-01 15:43:34 +00:00
use crate ::packet ::* ;
2020-03-07 15:57:47 +00:00
use crate ::records ::{ registry , UnknownRecord , A } ;
use crate ::ser ::packet ::{ deserialize_with , DnsPacketData } ;
use crate ::ser ::{ text , RRData } ;
use bytes ::Bytes ;
2017-12-27 17:38:02 +00:00
use std ::io ::Cursor ;
2017-12-27 11:41:54 +00:00
fn fake_packet ( rrtype : Type , raw : & [ u8 ] ) -> Bytes {
2020-03-07 15:57:47 +00:00
let mut p = DnsPacket {
question : vec ! [ Question {
qname : " . " . parse ( ) . unwrap ( ) ,
qtype : rrtype ,
qclass : classes ::IN ,
} ] ,
answer : vec ! [ Resource {
name : " rec.test. " . parse ( ) . unwrap ( ) ,
class : classes ::IN ,
ttl : 0 ,
data : Box ::new ( UnknownRecord ::new ( rrtype , Bytes ::from ( raw ) ) ) ,
} ] ,
.. Default ::default ( )
2017-12-27 17:38:02 +00:00
} ;
p . to_bytes ( ) . unwrap ( ) . into ( )
}
fn get_first_answer_rdata ( packet : Bytes ) -> Result < Bytes > {
let mut data = Cursor ::new ( packet ) ;
let data = & mut data ;
let header = DnsHeader ::deserialize ( data ) ? ;
for _ in 0 .. header . qdcount {
Question ::deserialize ( data ) ? ;
}
2019-07-01 15:43:34 +00:00
failure ::ensure! ( header . ancount > 0 , " need at least one answer " ) ;
2017-12-27 17:38:02 +00:00
let _name = DnsCompressedName ::deserialize ( data ) ? ;
let _rr_type = Type ::deserialize ( data ) ? ;
let _class = Class ::deserialize ( data ) ? ;
let _ttl = u32 ::deserialize ( data ) ? ;
let rdlength = u16 ::deserialize ( data ) ? as usize ;
check_enough_data! ( data , rdlength , " RDATA " ) ;
let pos = data . position ( ) as usize ;
Ok ( data . get_ref ( ) . slice ( pos , pos + rdlength ) )
2017-12-27 11:41:54 +00:00
}
2019-09-08 13:34:28 +00:00
fn serialized_answer ( rrdata : Box < dyn RRData > ) -> Result < Bytes > {
2020-03-07 15:57:47 +00:00
let mut p = DnsPacket {
question : vec ! [ Question {
qname : " . " . parse ( ) . unwrap ( ) ,
qtype : rrdata . rr_type ( ) ,
qclass : classes ::IN ,
} ] ,
answer : vec ! [ Resource {
name : " rec.test. " . parse ( ) . unwrap ( ) ,
class : classes ::IN ,
ttl : 0 ,
data : rrdata ,
} ] ,
.. Default ::default ( )
2017-12-27 17:38:02 +00:00
} ;
get_first_answer_rdata ( p . to_bytes ( ) ? . into ( ) )
}
2017-12-27 11:41:54 +00:00
fn check ( q : Type , text_input : & 'static str , canonic : Option < & 'static str > , raw : & 'static [ u8 ] ) {
2018-02-11 10:13:04 +00:00
// Make sure the canonic representation is sound itself
if let Some ( canonic ) = canonic {
check ( q , canonic , None , raw ) ;
}
2017-12-27 11:41:54 +00:00
let canonic = canonic . unwrap_or ( text_input ) ;
let mut context = text ::DnsTextContext ::new ( ) ;
context . set_zone_class ( classes ::IN ) ;
context . set_origin ( DnsName ::new_root ( ) ) ;
context . set_record_type ( q ) ;
context . set_last_ttl ( 3600 ) ;
2020-03-07 15:57:47 +00:00
let d_zone : Box < dyn RRData > =
text ::parse_with ( text_input , | data | registry ::parse_rr_data ( & context , data ) ) . unwrap ( ) ;
2017-12-27 11:41:54 +00:00
2017-12-29 13:07:58 +00:00
let d_zone_text = d_zone . text ( ) . unwrap ( ) ;
// make sure we actually know the type and the text representation
// uses the known representation (and not the generic one)
2020-03-07 16:09:50 +00:00
assert_eq! (
Some ( d_zone_text . 0. as_ref ( ) ) ,
d_zone . rr_type ( ) . known_name ( ) ,
" type uses generic representation "
) ;
2017-12-29 13:07:58 +00:00
// ... and the text representation matches the canonic format
2020-03-07 16:09:50 +00:00
assert_eq! (
& d_zone_text . 1 , canonic ,
" canonic representation doesn't match "
) ;
2017-12-29 13:07:58 +00:00
// (pdns tests compares this to the input_text sometimes, because
// they often (TXT, DNS names) use the master file representation
// internally instead of normalizing it. This is bad for testing,
// because they do normalize some parts...)
// pdns tests deserialize `zone_as_wire` (from below) here, but we
// make sure it's the same anyway
2017-12-27 17:38:02 +00:00
let d_wire_packet = deserialize_with ( fake_packet ( q , raw ) , DnsPacket ::deserialize ) . unwrap ( ) ;
2019-09-08 13:34:28 +00:00
let d_wire : & Box < dyn RRData > = & d_wire_packet . answer [ 0 ] . data ;
2017-12-27 11:41:54 +00:00
let d_wire_text = d_wire . text ( ) . unwrap ( ) ;
2017-12-29 13:07:58 +00:00
// pdns tests compare d_wire_text and canonic, but d_zone_text
// already matches canonic
2020-03-07 15:57:47 +00:00
assert_eq! (
d_zone_text , d_wire_text ,
" data parsed from zone doesn't match data from wire "
) ;
2017-12-27 11:41:54 +00:00
2017-12-27 17:38:02 +00:00
let zone_as_wire = serialized_answer ( d_zone ) . unwrap ( ) ;
assert_eq! ( zone_as_wire , raw ) ;
2017-12-27 11:41:54 +00:00
}
#[ test ]
fn test_A ( ) {
2020-03-07 15:57:47 +00:00
check ( types ::A , " 127.0.0.1 " , None , b " \x7F \x00 \x00 \x01 " ) ;
2017-12-27 11:41:54 +00:00
}
#[ test ]
fn test_NS ( ) {
// local nameserver
2020-03-07 15:57:47 +00:00
check ( types ::NS , " ns.rec.test. " , None , b " \x02 ns \xc0 \x11 " ) ;
2017-12-27 11:41:54 +00:00
// non-local nameserver
2020-03-07 15:57:47 +00:00
check (
types ::NS ,
2017-12-27 11:41:54 +00:00
" ns.example.com. " ,
None ,
b " \x02 ns \x07 example \x03 com \x00 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_MD
// missing test_MF
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_CNAME ( ) {
// local alias
2020-03-07 15:57:47 +00:00
check ( types ::CNAME , " name.rec.test. " , None , b " \x04 name \xc0 \x11 " ) ;
2017-12-27 11:41:54 +00:00
// non-local alias
2020-03-07 15:57:47 +00:00
check (
types ::CNAME ,
2017-12-27 11:41:54 +00:00
" name.example.com. " ,
None ,
b " \x04 name \x07 example \x03 com \x00 " ,
) ;
// max label length (63)
check ( types ::CNAME ,
" 123456789012345678901234567890123456789012345678901234567890123.example.com. " ,
None ,
b " \x3f 123456789012345678901234567890123456789012345678901234567890123 \x07 example \x03 com \x00 " ,
) ;
// local max name length (255)
check ( types ::CNAME ,
" 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012.rec.test. " ,
None ,
b " \x3f 123456789012345678901234567890123456789012345678901234567890123 \x3f 123456789012345678901234567890123456789012345678901234567890123 \x3f 123456789012345678901234567890123456789012345678901234567890123 \x34 1234567890123456789012345678901234567890123456789012 \xc0 \x11 " ,
) ;
// non-local max name length (255)
check ( types ::CNAME ,
" 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901. " ,
None ,
b " \x3f 123456789012345678901234567890123456789012345678901234567890123 \x3f 123456789012345678901234567890123456789012345678901234567890123 \x3f 123456789012345678901234567890123456789012345678901234567890123 \x3d 1234567890123456789012345678901234567890123456789012345678901 \x00 " ,
) ;
}
#[ test ]
fn test_SOA ( ) {
// local names
check ( types ::SOA ,
" ns.rec.test. hostmaster.test.rec. 2013051201 3600 3600 604800 120 " ,
None ,
b " \x02 ns \xc0 \x11 \x0a hostmaster \x04 test \x03 rec \x00 \x77 \xfc \xb9 \x41 \x00 \x00 \x0e \x10 \x00 \x00 \x0e \x10 \x00 \x09 \x3a \x80 \x00 \x00 \x00 \x78 " ,
) ;
// local name without dots
check ( types ::SOA ,
" ns.rec.test. hostmaster.test.rec. 2013051201 3600 3600 604800 120 " ,
None ,
b " \x02 ns \xc0 \x11 \x0a hostmaster \x04 test \x03 rec \x00 \x77 \xfc \xb9 \x41 \x00 \x00 \x0e \x10 \x00 \x00 \x0e \x10 \x00 \x09 \x3a \x80 \x00 \x00 \x00 \x78 " ,
) ;
// non-local names
check ( types ::SOA ,
" ns.example.com. hostmaster.example.com. 2013051201 3600 3600 604800 120 " ,
None ,
b " \x02 ns \x07 example \x03 com \x00 \x0a hostmaster \xc0 \x28 \x77 \xfc \xb9 \x41 \x00 \x00 \x0e \x10 \x00 \x00 \x0e \x10 \x00 \x09 \x3a \x80 \x00 \x00 \x00 \x78 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_MB
// missing test_MG
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_MR ( ) {
// BROKEN TESTS (2) (deprecated)
// local name
2020-03-07 15:57:47 +00:00
check (
types ::MR ,
2017-12-27 11:41:54 +00:00
" newmailbox.rec.test. " ,
None ,
b " \x0a newmailbox \xc0 \x11 " ,
) ;
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::MR ,
2017-12-27 11:41:54 +00:00
" newmailbox.example.com. " ,
None ,
b " \x0a newmailbox \x07 example \x03 com \x00 " ,
) ;
}
#[ test ]
fn test_PTR ( ) {
// local name
2020-03-07 15:57:47 +00:00
check ( types ::PTR , " ptr.rec.test. " , None , b " \x03 ptr \xc0 \x11 " ) ;
2017-12-27 11:41:54 +00:00
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::PTR ,
2017-12-27 11:41:54 +00:00
" ptr.example.com. " ,
None ,
b " \x03 ptr \x07 example \x03 com \x00 " ,
) ;
}
#[ test ]
fn test_HINFO ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::HINFO ,
2017-12-27 11:41:54 +00:00
" \" i686 \" \" Linux \" " ,
None ,
b " \x04 i686 \x05 Linux " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::HINFO ,
2017-12-27 11:41:54 +00:00
" i686 \" Linux \" " ,
Some ( " \" i686 \" \" Linux \" " ) ,
b " \x04 i686 \x05 Linux " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::HINFO ,
2017-12-27 11:41:54 +00:00
" \" i686 \" Linux " ,
Some ( " \" i686 \" \" Linux \" " ) ,
b " \x04 i686 \x05 Linux " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::HINFO ,
2017-12-27 11:41:54 +00:00
" i686 Linux " ,
Some ( " \" i686 \" \" Linux \" " ) ,
b " \x04 i686 \x05 Linux " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_MINFO
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_MX ( ) {
// local name
2020-03-07 15:57:47 +00:00
check (
types ::MX ,
2017-12-27 11:41:54 +00:00
" 10 mx.rec.test. " ,
None ,
b " \x00 \x0a \x02 mx \xc0 \x11 " ,
) ;
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::MX ,
2017-12-27 11:41:54 +00:00
" 20 mx.example.com. " ,
None ,
b " \x00 \x14 \x02 mx \x07 example \x03 com \x00 " ,
) ;
// root label
2020-03-07 15:57:47 +00:00
check ( types ::MX , " 20 . " , None , b " \x00 \x14 \x00 " ) ;
2017-12-27 11:41:54 +00:00
}
#[ test ]
fn test_TXT ( ) {
2020-03-07 15:57:47 +00:00
check ( types ::TXT , " \" short text \" " , None , b " \x0a short text " ) ;
2017-12-27 11:41:54 +00:00
check ( types ::TXT ,
" \" long record test 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \" \" 2222222222 \" " ,
None ,
b " \xff long record test 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \x0a 2222222222 " ,
) ;
2017-12-27 20:50:51 +00:00
// autosplitting not supported
2020-03-07 15:57:47 +00:00
/*
2020-03-07 16:09:50 +00:00
check ( types ::TXT ,
" \" long record test 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222 \" " ,
Some ( " \" long record test 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \" \" 2222222222 \" " ) ,
b " \xff long record test 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \x0a 2222222222 " ,
) ;
2020-03-07 15:57:47 +00:00
* /
check (
types ::TXT ,
2017-12-27 11:41:54 +00:00
" \" \\ 195 \\ 133LAND ISLANDS \" " ,
None ,
b " \x0e \xc3 \x85 LAND ISLANDS " ,
) ;
2020-03-07 16:10:12 +00:00
check (
types ::TXT ,
" \" text with DEL in there: \\ 127 \" " ,
None ,
b " \x19 text with DEL in there: \x7f " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::TXT ,
2017-12-27 11:41:54 +00:00
" \" \u{00c5} LAND ISLANDS \" " ,
Some ( " \" \\ 195 \\ 133LAND ISLANDS \" " ) ,
b " \x0e \xc3 \x85 LAND ISLANDS " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::TXT ,
2017-12-27 11:41:54 +00:00
" \" nonbreakingtxt \" " ,
None ,
b " \x0e nonbreakingtxt " ,
) ;
}
#[ test ]
fn test_RP ( ) {
// local name
2020-03-07 15:57:47 +00:00
check (
types ::RP ,
2017-12-27 11:41:54 +00:00
" admin.rec.test. admin-info.rec.test. " ,
None ,
b " \x05 admin \x03 rec \x04 test \x00 \x0a admin-info \x03 rec \x04 test \x00 " ,
) ;
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::RP ,
2017-12-27 11:41:54 +00:00
" admin.example.com. admin-info.example.com. " ,
None ,
b " \x05 admin \x07 example \x03 com \x00 \x0a admin-info \x07 example \x03 com \x00 " ,
) ;
}
#[ test ]
fn test_AFSDB ( ) {
// local name
2020-03-07 15:57:47 +00:00
check (
types ::AFSDB ,
2017-12-27 11:41:54 +00:00
" 1 afs-server.rec.test. " ,
None ,
b " \x00 \x01 \x0a afs-server \x03 rec \x04 test \x00 " ,
) ;
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::AFSDB ,
2017-12-27 11:41:54 +00:00
" 1 afs-server.example.com. " ,
None ,
b " \x00 \x01 \x0a afs-server \x07 example \x03 com \x00 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_RT
// missing test_NSAP_PTR
#[ test ]
fn test_SIG ( ) {
// not supported by powerdns
// last ttl is 3600 in this test environment
check ( types ::SIG ,
" NXT 1 2 19970102030405 19961211100908 2143 foo.nil. AIYADP8d3zYNyQwW2EM4wXVFdslEJcUx/fxkfBeH1El4ixPFhpfHFElxbvKoWmvjDTCm fiYy2X+8XpFjwICHc398kzWsTMKlxovpz2FnCTM= " ,
Some ( " NXT 1 2 3600 19970102030405 19961211100908 2143 foo.nil. AIYADP8d3zYNyQwW2EM4wXVFdslEJcUx/fxkfBeH1El4ixPFhpfHFElxbvKoWmvjDTCmfiYy2X+8XpFjwICHc398kzWsTMKlxovpz2FnCTM= " ) ,
b " \x00 \x1e \x01 \x02 \x00 \x00 \x0e \x10 \x32 \xcb \x25 \xa5 \x32 \xae \x88 \x44 \x08 \x5f \x03 foo \x03 nil \x00 \x00 \x86 \x00 \x0c \xff \x1d \xdf \x36 \x0d \xc9 \x0c \x16 \xd8 \x43 \x38 \xc1 \x75 \x45 \x76 \xc9 \x44 \x25 \xc5 \x31 \xfd \xfc \x64 \x7c \x17 \x87 \xd4 \x49 \x78 \x8b \x13 \xc5 \x86 \x97 \xc7 \x14 \x49 \x71 \x6e \xf2 \xa8 \x5a \x6b \xe3 \x0d \x30 \xa6 \x7e \x26 \x32 \xd9 \x7f \xbc \x5e \x91 \x63 \xc0 \x80 \x87 \x73 \x7f \x7c \x93 \x35 \xac \x4c \xc2 \xa5 \xc6 \x8b \xe9 \xcf \x61 \x67 \x09 \x33 "
) ;
}
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_KEY ( ) {
// deprecated (and i don't know what i am doing wrong)
check ( types ::KEY ,
" 0 3 3 V19hwufL6LJARVIxzHDyGdvZ7dbQE0Kyl18yPIWj/sbCcsBbz7zO6Q2qgdzmWI3OvGNne2nxflhorhefKIMsUg== " ,
None ,
b " \x00 \x00 \x03 \x03 \x57 \x5f \x61 \xc2 \xe7 \xcb \xe8 \xb2 \x40 \x45 \x52 \x31 \xcc \x70 \xf2 \x19 \xdb \xd9 \xed \xd6 \xd0 \x13 \x42 \xb2 \x97 \x5f \x32 \x3c \x85 \xa3 \xfe \xc6 \xc2 \x72 \xc0 \x5b \xcf \xbc \xce \xe9 \x0d \xaa \x81 \xdc \xe6 \x58 \x8d \xce \xbc \x63 \x67 \x7b \x69 \xf1 \x7e \x58 \x68 \xae \x17 \x9f \x28 \x83 \x2c \x52 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_PX
// missing test_GPOS
2017-12-30 12:05:08 +00:00
#[ test ]
fn test_AAAA ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::AAAA ,
2017-12-30 12:05:08 +00:00
" fe80::250:56ff:fe9b:114 " ,
None ,
b " \xFE \x80 \x00 \x00 \x00 \x00 \x00 \x00 \x02 \x50 \x56 \xFF \xFE \x9B \x01 \x14 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::AAAA ,
2017-12-30 12:05:08 +00:00
" 2a02:1b8:10:2::151 " ,
None ,
b " \x2a \x02 \x01 \xb8 \x00 \x10 \x00 \x02 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x51 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::AAAA ,
2017-12-30 12:05:08 +00:00
" ::1 " ,
None ,
b " \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 " ,
) ;
}
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_LOC ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::LOC ,
2017-12-27 11:41:54 +00:00
" 32 7 19 S 116 2 25 E " ,
Some ( " 32 7 19.000 S 116 2 25.000 E 0.00m 1.00m 10000.00m 10.00m " ) ,
b " \x00 \x12 \x16 \x13 \x79 \x1b \x7d \x28 \x98 \xe6 \x48 \x68 \x00 \x98 \x96 \x80 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::LOC ,
2017-12-27 11:41:54 +00:00
" 32 7 19 S 116 2 25 E 10m " ,
Some ( " 32 7 19.000 S 116 2 25.000 E 10.00m 1.00m 10000.00m 10.00m " ) ,
b " \x00 \x12 \x16 \x13 \x79 \x1b \x7d \x28 \x98 \xe6 \x48 \x68 \x00 \x98 \x9a \x68 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::LOC ,
2017-12-27 11:41:54 +00:00
" 42 21 54 N 71 06 18 W -24m 30m " ,
Some ( " 42 21 54.000 N 71 6 18.000 W -24.00m 30.00m 10000.00m 10.00m " ) ,
b " \x00 \x33 \x16 \x13 \x89 \x17 \x2d \xd0 \x70 \xbe \x15 \xf0 \x00 \x98 \x8d \x20 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::LOC ,
2017-12-27 11:41:54 +00:00
" 42 21 43.952 N 71 5 6.344 W -24m 1m 200m " ,
Some ( " 42 21 43.952 N 71 5 6.344 W -24.00m 1.00m 200.00m 10.00m " ) ,
b " \x00 \x12 \x24 \x13 \x89 \x17 \x06 \x90 \x70 \xbf \x2d \xd8 \x00 \x98 \x8d \x20 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_NXT
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_SRV ( ) {
// local name
2020-03-07 15:57:47 +00:00
check (
types ::SRV ,
2017-12-27 11:41:54 +00:00
" 10 10 5060 sip.rec.test. " ,
None ,
b " \x00 \x0a \x00 \x0a \x13 \xc4 \x03 sip \x03 rec \x04 test \x00 " ,
) ;
// non-local name
2020-03-07 15:57:47 +00:00
check (
types ::SRV ,
2017-12-27 11:41:54 +00:00
" 10 10 5060 sip.example.com. " ,
None ,
b " \x00 \x0a \x00 \x0a \x13 \xc4 \x03 sip \x07 example \x03 com \x00 " ,
) ;
// root name
2020-03-07 15:57:47 +00:00
check (
types ::SRV ,
2017-12-27 11:41:54 +00:00
" 10 10 5060 . " ,
None ,
b " \x00 \x0a \x00 \x0a \x13 \xc4 \x00 " ,
) ;
}
#[ test ]
fn test_NAPTR ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::NAPTR ,
2017-12-27 11:41:54 +00:00
" 100 10 \" \" \" \" \" /urn:cid:.+@([^ \\ \\ .]+ \\ \\ .)(.*)$/ \\ \\ 2/i \" . " ,
None ,
b " \x00 \x64 \x00 \x0a \x00 \x00 \x20 /urn:cid:.+@([^ \\ .]+ \\ .)(.*)$/ \\ 2/i \x00 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::NAPTR ,
2017-12-27 11:41:54 +00:00
" 100 50 \" s \" \" http+I2L+I2C+I2R \" \" \" _http._tcp.rec.test. " ,
None ,
b " \x00 \x64 \x00 \x32 \x01 s \x10 http+I2L+I2C+I2R \x00 \x05 _http \x04 _tcp \x03 rec \x04 test \x00 " ,
) ;
}
#[ test ]
fn test_KX ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::KX ,
2017-12-27 11:41:54 +00:00
" 10 mail.rec.test. " ,
None ,
b " \x00 \x0a \x04 mail \x03 rec \x04 test \x00 " ,
) ;
}
#[ test ]
fn test_CERT ( ) {
// X.509 as per PKIX
check ( types ::CERT ,
" 1 0 0 MIIB9DCCAV2gAwIBAgIJAKxUfFVXhw7HMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNVBAMMCHJlYy50ZXN0MB4XDTEzMDUxMjE5NDgwOVoXDTEzMDYxMTE5NDgwOVowEzERMA8GA1UEAwwIcmVjLnRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANKCu5aN/ewOXRPfzAo27XMXhYFCThCjfInTAUIEkzs6jBFZ/eyyIa/kFoiD0tAKwfFfykYU+9XgXeLjetD7rYt3SN3bzzCznoBGbGHHM0Fecrn0LV+tC/NfBB61Yx7e0AMUxmxIeLNRQW5ca5CW8qcIiiQ4fl0BScUjc5+E9QLHAgMBAAGjUDBOMB0GA1UdDgQWBBRzcVu/2bwrgkES+FhYbxZqr7mUgjAfBgNVHSMEGDAWgBRzcVu/2bwrgkES+FhYbxZqr7mUgjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFVQ8dZBOasOhsWzA/xpAV0WdsqVkxBxrkGIRlbHHBFqOBOOz2MFSzUNx4mDy0qDKI28gcWmWaVsxoQ9VFLD6YRJuUoM8MDNcZDJbKpfDumjvvfnUAK+SiM2c4Ur3xpf0wanCA60/q2bOtFiB0tfAH6RVuIgMC3qjHAIaKEld+fE " ,
None ,
b " \x00 \x01 \x00 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
}
2020-08-27 10:40:51 +00:00
#[ test ]
fn test_APL ( ) {
check ( types ::APL ,
" 1:10.0.0.0/32 " ,
None ,
b " \x00 \x01 \x20 \x01 \x0a " ,
) ;
check ( types ::APL ,
" 1:10.1.1.1/32 " ,
None ,
b " \x00 \x01 \x20 \x04 \x0a \x01 \x01 \x01 " ,
) ;
check ( types ::APL ,
" 1:10.1.1.0/24 " ,
None ,
b " \x00 \x01 \x18 \x03 \x0a \x01 \x01 " ,
) ;
check ( types ::APL ,
" 1:60.0.0.0/8 " ,
None ,
b " \x00 \x01 \x08 \x01 \x3c " ,
) ;
check ( types ::APL ,
" 1:10.1.1.1/32 " ,
None ,
b " \x00 \x01 \x20 \x04 \x0a \x01 \x01 \x01 " ,
) ;
check ( types ::APL ,
" !1:10.1.1.1/32 " ,
None ,
b " \x00 \x01 \x20 \x84 \x0a \x01 \x01 \x01 " ,
) ;
check ( types ::APL ,
" 1:255.255.255.255/32 " ,
None ,
b " \x00 \x01 \x20 \x04 \xff \xff \xff \xff " ,
) ;
check ( types ::APL ,
" 2:100::/8 " ,
None ,
b " \x00 \x02 \x08 \x01 \x01 " ,
) ;
check ( types ::APL ,
" 2:20::/16 " ,
None ,
b " \x00 \x02 \x10 \x02 \x00 \x20 " ,
) ;
check ( types ::APL ,
" 2:2000::/8 " ,
None ,
b " \x00 \x02 \x08 \x01 \x20 " ,
) ;
check ( types ::APL ,
" 2:fe00::/8 " ,
None ,
b " \x00 \x02 \x08 \x01 \xfe " ,
) ;
check ( types ::APL ,
" 2:fe80::/16 " ,
None ,
b " \x00 \x02 \x10 \x02 \xfe \x80 " ,
) ;
check ( types ::APL ,
" 2:2001::1/128 " ,
None ,
b " \x00 \x02 \x80 \x10 \x20 \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 " ,
) ;
check ( types ::APL ,
" !2:2001::1/128 " ,
None ,
b " \x00 \x02 \x80 \x90 \x20 \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 " ,
) ;
check ( types ::APL ,
" 2:fe80:1234:5678:9910:8bc:3359:b2e8:720e/128 " ,
None ,
b " \x00 \x02 \x80 \x10 \xfe \x80 \x12 \x34 \x56 \x78 \x99 \x10 \x08 \xbc \x33 \x59 \xb2 \xe8 \x72 \x0e " ,
) ;
check ( types ::APL ,
" 2:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128 " ,
None ,
b " \x00 \x02 \x80 \x10 \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff " ,
) ;
check ( types ::APL ,
" " ,
None ,
b " " ,
) ;
check ( types ::APL ,
" 1:10.0.0.0/32 1:10.1.1.1/32 " ,
None ,
b " \x00 \x01 \x20 \x01 \x0a \x00 \x01 \x20 \x04 \x0a \x01 \x01 \x01 " ,
) ;
check ( types ::APL ,
" 1:10.0.0.0/32 2:100::/8 " ,
None ,
b " \x00 \x01 \x20 \x01 \x0a \x00 \x02 \x08 \x01 \x01 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_A6
// missing test_DNAME
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_DS ( ) {
check ( types ::DS ,
" 20642 8 2 04443ABE7E94C3985196BEAE5D548C727B044DDA5151E60D7CD76A9F D931D00E " ,
Some ( " 20642 8 2 04443abe7e94c3985196beae5d548c727b044dda5151e60d7cd76a9fd931d00e " ) ,
b " \x50 \xa2 \x08 \x02 \x04 \x44 \x3a \xbe \x7e \x94 \xc3 \x98 \x51 \x96 \xbe \xae \x5d \x54 \x8c \x72 \x7b \x04 \x4d \xda \x51 \x51 \xe6 \x0d \x7c \xd7 \x6a \x9f \xd9 \x31 \xd0 \x0e " ,
) ;
check ( types ::DS ,
" 20642 8 2 04443ABE7E94C3985196BEAE5D548C727B044DDA5151E60D7CD76A9F D931D00E " ,
Some ( " 20642 8 2 04443abe7e94c3985196beae5d548c727b044dda5151e60d7cd76a9fd931d00e " ) ,
b " \x50 \xa2 \x08 \x02 \x04 \x44 \x3a \xbe \x7e \x94 \xc3 \x98 \x51 \x96 \xbe \xae \x5d \x54 \x8c \x72 \x7b \x04 \x4d \xda \x51 \x51 \xe6 \x0d \x7c \xd7 \x6a \x9f \xd9 \x31 \xd0 \x0e " ,
) ;
}
#[ test ]
fn test_SSHFP ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::SSHFP ,
2017-12-27 11:41:54 +00:00
" 1 1 aa65e3415a50d9b3519c2b17aceb815fc2538d88 " ,
None ,
b " \x01 \x01 \xaa \x65 \xe3 \x41 \x5a \x50 \xd9 \xb3 \x51 \x9c \x2b \x17 \xac \xeb \x81 \x5f \xc2 \x53 \x8d \x88 " ,
) ;
2020-03-07 15:57:47 +00:00
// as per RFC4025
check (
types ::SSHFP ,
2017-12-27 11:41:54 +00:00
" 1 1 aa65e3415a50d9b3519c2b17aceb815fc253 8d88 " ,
Some ( " 1 1 aa65e3415a50d9b3519c2b17aceb815fc2538d88 " ) ,
b " \x01 \x01 \xaa \x65 \xe3 \x41 \x5a \x50 \xd9 \xb3 \x51 \x9c \x2b \x17 \xac \xeb \x81 \x5f \xc2 \x53 \x8d \x88 " ,
) ;
}
#[ test ]
fn test_IPSECKEY ( ) {
// as per RFC4025
2020-03-07 15:57:47 +00:00
check ( types ::IPSECKEY , " 255 0 0 " , None , b " \xff \x00 \x00 " ) ;
2017-12-27 11:41:54 +00:00
check ( types ::IPSECKEY ,
" 255 0 1 V19hwufL6LJARVIxzHDyGdvZ7dbQE0Kyl18yPIWj/sbCcsBbz7zO6Q2qgdzmWI3OvGNne2nxflhorhefKIMsUg== " ,
None ,
b " \xff \x00 \x01 \x57 \x5f \x61 \xc2 \xe7 \xcb \xe8 \xb2 \x40 \x45 \x52 \x31 \xcc \x70 \xf2 \x19 \xdb \xd9 \xed \xd6 \xd0 \x13 \x42 \xb2 \x97 \x5f \x32 \x3c \x85 \xa3 \xfe \xc6 \xc2 \x72 \xc0 \x5b \xcf \xbc \xce \xe9 \x0d \xaa \x81 \xdc \xe6 \x58 \x8d \xce \xbc \x63 \x67 \x7b \x69 \xf1 \x7e \x58 \x68 \xae \x17 \x9f \x28 \x83 \x2c \x52 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::IPSECKEY ,
2017-12-27 11:41:54 +00:00
" 255 1 0 127.0.0.1 " ,
None ,
b " \xff \x01 \x00 \x7f \x00 \x00 \x01 " ,
) ;
2020-03-07 15:57:47 +00:00
check (
types ::IPSECKEY ,
2017-12-27 11:41:54 +00:00
" 255 2 0 fe80::250:56ff:fe9b:114 " ,
None ,
b " \xff \x02 \x00 \xFE \x80 \x00 \x00 \x00 \x00 \x00 \x00 \x02 \x50 \x56 \xFF \xFE \x9B \x01 \x14 " ,
) ;
check ( types ::IPSECKEY ,
" 10 1 1 127.0.0.1 V19hwufL6LJARVIxzHDyGdvZ7dbQE0Kyl18yPIWj/sbCcsBbz7zO6Q2qgdzmWI3OvGNne2nxflhorhefKIMsUg== " ,
None ,
b " \x0a \x01 \x01 \x7f \x00 \x00 \x01 \x57 \x5f \x61 \xc2 \xe7 \xcb \xe8 \xb2 \x40 \x45 \x52 \x31 \xcc \x70 \xf2 \x19 \xdb \xd9 \xed \xd6 \xd0 \x13 \x42 \xb2 \x97 \x5f \x32 \x3c \x85 \xa3 \xfe \xc6 \xc2 \x72 \xc0 \x5b \xcf \xbc \xce \xe9 \x0d \xaa \x81 \xdc \xe6 \x58 \x8d \xce \xbc \x63 \x67 \x7b \x69 \xf1 \x7e \x58 \x68 \xae \x17 \x9f \x28 \x83 \x2c \x52 " ,
) ;
check ( types ::IPSECKEY ,
" 10 2 1 fe80::250:56ff:fe9b:114 V19hwufL6LJARVIxzHDyGdvZ7dbQE0Kyl18yPIWj/sbCcsBbz7zO6Q2qgdzmWI3OvGNne2nxflhorhefKIMsUg== " ,
None ,
b " \x0a \x02 \x01 \xFE \x80 \x00 \x00 \x00 \x00 \x00 \x00 \x02 \x50 \x56 \xFF \xFE \x9B \x01 \x14 \x57 \x5f \x61 \xc2 \xe7 \xcb \xe8 \xb2 \x40 \x45 \x52 \x31 \xcc \x70 \xf2 \x19 \xdb \xd9 \xed \xd6 \xd0 \x13 \x42 \xb2 \x97 \x5f \x32 \x3c \x85 \xa3 \xfe \xc6 \xc2 \x72 \xc0 \x5b \xcf \xbc \xce \xe9 \x0d \xaa \x81 \xdc \xe6 \x58 \x8d \xce \xbc \x63 \x67 \x7b \x69 \xf1 \x7e \x58 \x68 \xae \x17 \x9f \x28 \x83 \x2c \x52 " ,
) ;
check ( types ::IPSECKEY ,
" 10 3 1 gw.rec.test. V19hwufL6LJARVIxzHDyGdvZ7dbQE0Kyl18yPIWj/sbCcsBbz7zO6Q2qgdzmWI3OvGNne2nxflhorhefKIMsUg== " ,
None ,
b " \x0a \x03 \x01 \x02 gw \x03 rec \x04 test \x00 \x57 \x5f \x61 \xc2 \xe7 \xcb \xe8 \xb2 \x40 \x45 \x52 \x31 \xcc \x70 \xf2 \x19 \xdb \xd9 \xed \xd6 \xd0 \x13 \x42 \xb2 \x97 \x5f \x32 \x3c \x85 \xa3 \xfe \xc6 \xc2 \x72 \xc0 \x5b \xcf \xbc \xce \xe9 \x0d \xaa \x81 \xdc \xe6 \x58 \x8d \xce \xbc \x63 \x67 \x7b \x69 \xf1 \x7e \x58 \x68 \xae \x17 \x9f \x28 \x83 \x2c \x52 " ,
) ;
}
#[ test ]
fn test_RRSIG ( ) {
check ( types ::RRSIG ,
" SOA 8 3 300 20130523000000 20130509000000 54216 rec.test. ecWKD/OsdAiXpbM/sgPT82KVD/WiQnnqcxoJgiH3ixHa+LOAcYU7FG7V4BRRJxLriY1e0rB2gAs3kCel9D4bzfK6wAqG4Di/eHUgHptRlaR2ycELJ4t1pjzrnuGiIzA1wM2izRmeE+Xoy1367Qu0pOz5DLzTfQITWFsB2iUzN4Y= " ,
2017-12-28 18:12:23 +00:00
None ,
// if epoch is canoninc format:
// Some("SOA 8 3 300 1369267200 1368057600 54216 rec.test. ecWKD/OsdAiXpbM/sgPT82KVD/WiQnnqcxoJgiH3ixHa+LOAcYU7FG7V4BRRJxLriY1e0rB2gAs3kCel9D4bzfK6wAqG4Di/eHUgHptRlaR2ycELJ4t1pjzrnuGiIzA1wM2izRmeE+Xoy1367Qu0pOz5DLzTfQITWFsB2iUzN4Y="),
2017-12-27 11:41:54 +00:00
b " \x00 \x06 \x08 \x03 \x00 \x00 \x01 \x2c \x51 \x9d \x5c \x00 \x51 \x8a \xe7 \x00 \xd3 \xc8 \x03 \x72 \x65 \x63 \x04 \x74 \x65 \x73 \x74 \x00 \x79 \xc5 \x8a \x0f \xf3 \xac \x74 \x08 \x97 \xa5 \xb3 \x3f \xb2 \x03 \xd3 \xf3 \x62 \x95 \x0f \xf5 \xa2 \x42 \x79 \xea \x73 \x1a \x09 \x82 \x21 \xf7 \x8b \x11 \xda \xf8 \xb3 \x80 \x71 \x85 \x3b \x14 \x6e \xd5 \xe0 \x14 \x51 \x27 \x12 \xeb \x89 \x8d \x5e \xd2 \xb0 \x76 \x80 \x0b \x37 \x90 \x27 \xa5 \xf4 \x3e \x1b \xcd \xf2 \xba \xc0 \x0a \x86 \xe0 \x38 \xbf \x78 \x75 \x20 \x1e \x9b \x51 \x95 \xa4 \x76 \xc9 \xc1 \x0b \x27 \x8b \x75 \xa6 \x3c \xeb \x9e \xe1 \xa2 \x23 \x30 \x35 \xc0 \xcd \xa2 \xcd \x19 \x9e \x13 \xe5 \xe8 \xcb \x5d \xfa \xed \x0b \xb4 \xa4 \xec \xf9 \x0c \xbc \xd3 \x7d \x02 \x13 \x58 \x5b \x01 \xda \x25 \x33 \x37 \x86 " ,
) ;
}
#[ test ]
fn test_NSEC ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::NSEC ,
2017-12-27 11:41:54 +00:00
" a.rec.test. A NS SOA MX AAAA RRSIG NSEC DNSKEY " ,
None ,
b " \x01 a \x03 rec \x04 test \x00 \x00 \x07 \x62 \x01 \x00 \x08 \x00 \x03 \x80 " ,
) ;
}
#[ test ]
fn test_DNSKEY ( ) {
check ( types ::DNSKEY ,
" 257 3 5 AwEAAZVtlHc8O4TVmlGx/PGJTc7hbVjMR7RywxLuAm1dqgyHvgNRD7chYLsALOdZKW6VRvusbyhoOPilnh8XpucBDqjGD6lIemsURz7drZEqcLupVA0TPxXABZ6auJ3jumqIhSOcLj9rpSwI4xuWt0yu6LR9tL2q8+A0yEZxcAaKS+Wq0fExJ93NxgXl1/fY+JcYQvonjd31GxXXef9uf0exXyzowh5h8+IIBETU+ZiYVB5BqiwkICZL/OX57idm99ycA2/tIen66F8u2ueTvgPcecnoqHvW0MtLQKzeNmqdGNthHhV5di0SZdMZQeo/izs68uN2WzqQDZy9Ec2JwBTbxWE= " ,
None ,
b " \x01 \x01 \x03 \x05 \x03 \x01 \x00 \x01 \x95 \x6d \x94 \x77 \x3c \x3b \x84 \xd5 \x9a \x51 \xb1 \xfc \xf1 \x89 \x4d \xce \xe1 \x6d \x58 \xcc \x47 \xb4 \x72 \xc3 \x12 \xee \x02 \x6d \x5d \xaa \x0c \x87 \xbe \x03 \x51 \x0f \xb7 \x21 \x60 \xbb \x00 \x2c \xe7 \x59 \x29 \x6e \x95 \x46 \xfb \xac \x6f \x28 \x68 \x38 \xf8 \xa5 \x9e \x1f \x17 \xa6 \xe7 \x01 \x0e \xa8 \xc6 \x0f \xa9 \x48 \x7a \x6b \x14 \x47 \x3e \xdd \xad \x91 \x2a \x70 \xbb \xa9 \x54 \x0d \x13 \x3f \x15 \xc0 \x05 \x9e \x9a \xb8 \x9d \xe3 \xba \x6a \x88 \x85 \x23 \x9c \x2e \x3f \x6b \xa5 \x2c \x08 \xe3 \x1b \x96 \xb7 \x4c \xae \xe8 \xb4 \x7d \xb4 \xbd \xaa \xf3 \xe0 \x34 \xc8 \x46 \x71 \x70 \x06 \x8a \x4b \xe5 \xaa \xd1 \xf1 \x31 \x27 \xdd \xcd \xc6 \x05 \xe5 \xd7 \xf7 \xd8 \xf8 \x97 \x18 \x42 \xfa \x27 \x8d \xdd \xf5 \x1b \x15 \xd7 \x79 \xff \x6e \x7f \x47 \xb1 \x5f \x2c \xe8 \xc2 \x1e \x61 \xf3 \xe2 \x08 \x04 \x44 \xd4 \xf9 \x98 \x98 \x54 \x1e \x41 \xaa \x2c \x24 \x20 \x26 \x4b \xfc \xe5 \xf9 \xee \x27 \x66 \xf7 \xdc \x9c \x03 \x6f \xed \x21 \xe9 \xfa \xe8 \x5f \x2e \xda \xe7 \x93 \xbe \x03 \xdc \x79 \xc9 \xe8 \xa8 \x7b \xd6 \xd0 \xcb \x4b \x40 \xac \xde \x36 \x6a \x9d \x18 \xdb \x61 \x1e \x15 \x79 \x76 \x2d \x12 \x65 \xd3 \x19 \x41 \xea \x3f \x8b \x3b \x3a \xf2 \xe3 \x76 \x5b \x3a \x90 \x0d \x9c \xbd \x11 \xcd \x89 \xc0 \x14 \xdb \xc5 \x61 " ,
) ;
}
#[ test ]
fn test_DHCID ( ) {
check ( types ::DHCID ,
" AAAB92JtyyO73zqENgu9LVua+0PZoeCcKapTw4asbYmx5F4= " ,
None ,
b " \x00 \x00 \x01 \xf7 \x62 \x6d \xcb \x23 \xbb \xdf \x3a \x84 \x36 \x0b \xbd \x2d \x5b \x9a \xfb \x43 \xd9 \xa1 \xe0 \x9c \x29 \xaa \x53 \xc3 \x86 \xac \x6d \x89 \xb1 \xe4 \x5e " ,
) ;
check ( types ::DHCID ,
" AAEB92JtyyO73zqENgu9LVua+0PZoeCcKapTw4asbYmx5F4= " ,
None ,
b " \x00 \x01 \x01 \xf7 \x62 \x6d \xcb \x23 \xbb \xdf \x3a \x84 \x36 \x0b \xbd \x2d \x5b \x9a \xfb \x43 \xd9 \xa1 \xe0 \x9c \x29 \xaa \x53 \xc3 \x86 \xac \x6d \x89 \xb1 \xe4 \x5e " ,
) ;
check ( types ::DHCID ,
" AAIB92JtyyO73zqENgu9LVua+0PZoeCcKapTw4asbYmx5F4= " ,
None ,
b " \x00 \x02 \x01 \xf7 \x62 \x6d \xcb \x23 \xbb \xdf \x3a \x84 \x36 \x0b \xbd \x2d \x5b \x9a \xfb \x43 \xd9 \xa1 \xe0 \x9c \x29 \xaa \x53 \xc3 \x86 \xac \x6d \x89 \xb1 \xe4 \x5e " ,
) ;
}
#[ test ]
fn test_NSEC3 ( ) {
check ( types ::NSEC3 ,
" 1 1 1 f00b RPF1JGFCCNFA7STPTIJ9FPFNM40A4FLL NS SOA RRSIG DNSKEY NSEC3PARAM " ,
None ,
b " \x01 \x01 \x00 \x01 \x02 \xf0 \x0b \x14 \xde \x5e \x19 \xc1 \xec \x65 \xde \xa3 \xf3 \xb9 \xec \xa6 \x97 \xe5 \xf7 \xb1 \x00 \xa2 \x3e \xb5 \x00 \x07 \x22 \x00 \x00 \x00 \x00 \x02 \x90 " ,
) ;
}
#[ test ]
fn test_NSEC3PARAM ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::NSEC3PARAM ,
2017-12-27 11:41:54 +00:00
" 1 0 1 f00b " ,
None ,
b " \x01 \x00 \x00 \x01 \x02 \xf0 \x0b " ,
) ;
}
#[ test ]
fn test_TLSA ( ) {
check ( types ::TLSA ,
" 0 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x00 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::TLSA ,
" 0 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x00 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::TLSA ,
" 1 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x01 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::TLSA ,
" 1 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x01 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::TLSA ,
" 1 0 1 6acea2f68b03d9efe97a967e137aca6ac3a89490d532d87806d9e9c257668453 " ,
None ,
b " \x01 \x00 \x01 \x6a \xce \xa2 \xf6 \x8b \x03 \xd9 \xef \xe9 \x7a \x96 \x7e \x13 \x7a \xca \x6a \xc3 \xa8 \x94 \x90 \xd5 \x32 \xd8 \x78 \x06 \xd9 \xe9 \xc2 \x57 \x66 \x84 \x53 " ,
) ;
check ( types ::TLSA ,
" 1 0 2 e6dce237992803488d11d828b7728deddd4577de73d7d078338c8a45880beddff98e076a28bf8e3068da8e73667b802a721c95d7323b038c60200a430cb6fbd4 " ,
None ,
b " \x01 \x00 \x02 \xe6 \xdc \xe2 \x37 \x99 \x28 \x03 \x48 \x8d \x11 \xd8 \x28 \xb7 \x72 \x8d \xed \xdd \x45 \x77 \xde \x73 \xd7 \xd0 \x78 \x33 \x8c \x8a \x45 \x88 \x0b \xed \xdf \xf9 \x8e \x07 \x6a \x28 \xbf \x8e \x30 \x68 \xda \x8e \x73 \x66 \x7b \x80 \x2a \x72 \x1c \x95 \xd7 \x32 \x3b \x03 \x8c \x60 \x20 \x0a \x43 \x0c \xb6 \xfb \xd4 " ,
) ;
check ( types ::TLSA ,
" 2 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x02 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::TLSA ,
" 2 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x02 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::TLSA ,
" 3 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x03 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::TLSA ,
" 3 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x03 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
}
#[ test ]
fn test_SMIMEA ( ) {
check ( types ::SMIMEA ,
" 0 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x00 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::SMIMEA ,
" 0 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x00 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::SMIMEA ,
" 1 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x01 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::SMIMEA ,
" 1 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x01 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::SMIMEA ,
" 1 0 1 6acea2f68b03d9efe97a967e137aca6ac3a89490d532d87806d9e9c257668453 " ,
None ,
b " \x01 \x00 \x01 \x6a \xce \xa2 \xf6 \x8b \x03 \xd9 \xef \xe9 \x7a \x96 \x7e \x13 \x7a \xca \x6a \xc3 \xa8 \x94 \x90 \xd5 \x32 \xd8 \x78 \x06 \xd9 \xe9 \xc2 \x57 \x66 \x84 \x53 " ,
) ;
check ( types ::SMIMEA ,
" 1 0 2 e6dce237992803488d11d828b7728deddd4577de73d7d078338c8a45880beddff98e076a28bf8e3068da8e73667b802a721c95d7323b038c60200a430cb6fbd4 " ,
None ,
b " \x01 \x00 \x02 \xe6 \xdc \xe2 \x37 \x99 \x28 \x03 \x48 \x8d \x11 \xd8 \x28 \xb7 \x72 \x8d \xed \xdd \x45 \x77 \xde \x73 \xd7 \xd0 \x78 \x33 \x8c \x8a \x45 \x88 \x0b \xed \xdf \xf9 \x8e \x07 \x6a \x28 \xbf \x8e \x30 \x68 \xda \x8e \x73 \x66 \x7b \x80 \x2a \x72 \x1c \x95 \xd7 \x32 \x3b \x03 \x8c \x60 \x20 \x0a \x43 \x0c \xb6 \xfb \xd4 " ,
) ;
check ( types ::SMIMEA ,
" 2 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x02 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::SMIMEA ,
" 2 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x02 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
check ( types ::SMIMEA ,
" 3 0 0 308201f43082015da003020102020900ac547c5557870ec7300d06092a864886f70d010105050030133111300f06035504030c087265632e74657374301e170d3133303531323139343830395a170d3133303631313139343830395a30133111300f06035504030c087265632e7465737430819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001a350304e301d0603551d0e0416041473715bbfd9bc2b824112f858586f166aafb99482301f0603551d2304183016801473715bbfd9bc2b824112f858586f166aafb99482300c0603551d13040530030101ff300d06092a864886f70d0101050500038181005550f1d64139ab0e86c5b303fc69015d1676ca95931071ae41884656c71c116a38138ecf63054b350dc78983cb4a83288dbc81c5a659a56cc6843d5452c3e98449b94a0cf0c0cd7190c96caa5f0ee9a3bef7e75002be4a233673852bdf1a5fd306a7080eb4fead9b3ad162074b5f007e9156e220302dea8c700868a12577e7c4 " ,
None ,
b " \x03 \x00 \x00 \x30 \x82 \x01 \xf4 \x30 \x82 \x01 \x5d \xa0 \x03 \x02 \x01 \x02 \x02 \x09 \x00 \xac \x54 \x7c \x55 \x57 \x87 \x0e \xc7 \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x1e \x17 \x0d \x31 \x33 \x30 \x35 \x31 \x32 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x17 \x0d \x31 \x33 \x30 \x36 \x31 \x31 \x31 \x39 \x34 \x38 \x30 \x39 \x5a \x30 \x13 \x31 \x11 \x30 \x0f \x06 \x03 \x55 \x04 \x03 \x0c \x08 \x72 \x65 \x63 \x2e \x74 \x65 \x73 \x74 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 \xa3 \x50 \x30 \x4e \x30 \x1d \x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x1f \x06 \x03 \x55 \x1d \x23 \x04 \x18 \x30 \x16 \x80 \x14 \x73 \x71 \x5b \xbf \xd9 \xbc \x2b \x82 \x41 \x12 \xf8 \x58 \x58 \x6f \x16 \x6a \xaf \xb9 \x94 \x82 \x30 \x0c \x06 \x03 \x55 \x1d \x13 \x04 \x05 \x30 \x03 \x01 \x01 \xff \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x05 \x05 \x00 \x03 \x81 \x81 \x00 \x55 \x50 \xf1 \xd6 \x41 \x39 \xab \x0e \x86 \xc5 \xb3 \x03 \xfc \x69 \x01 \x5d \x16 \x76 \xca \x95 \x93 \x10 \x71 \xae \x41 \x88 \x46 \x56 \xc7 \x1c \x11 \x6a \x38 \x13 \x8e \xcf \x63 \x05 \x4b \x35 \x0d \xc7 \x89 \x83 \xcb \x4a \x83 \x28 \x8d \xbc \x81 \xc5 \xa6 \x59 \xa5 \x6c \xc6 \x84 \x3d \x54 \x52 \xc3 \xe9 \x84 \x49 \xb9 \x4a \x0c \xf0 \xc0 \xcd \x71 \x90 \xc9 \x6c \xaa \x5f \x0e \xe9 \xa3 \xbe \xf7 \xe7 \x50 \x02 \xbe \x4a \x23 \x36 \x73 \x85 \x2b \xdf \x1a \x5f \xd3 \x06 \xa7 \x08 \x0e \xb4 \xfe \xad \x9b \x3a \xd1 \x62 \x07 \x4b \x5f \x00 \x7e \x91 \x56 \xe2 \x20 \x30 \x2d \xea \x8c \x70 \x08 \x68 \xa1 \x25 \x77 \xe7 \xc4 " ,
) ;
check ( types ::SMIMEA ,
" 3 1 0 30819f300d06092a864886f70d010101050003818d0030818902818100d282bb968dfdec0e5d13dfcc0a36ed73178581424e10a37c89d3014204933b3a8c1159fdecb221afe4168883d2d00ac1f15fca4614fbd5e05de2e37ad0fbad8b7748dddbcf30b39e80466c61c733415e72b9f42d5fad0bf35f041eb5631eded00314c66c4878b351416e5c6b9096f2a7088a24387e5d0149c523739f84f502c70203010001 " ,
None ,
b " \x03 \x01 \x00 \x30 \x81 \x9f \x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03 \x81 \x8d \x00 \x30 \x81 \x89 \x02 \x81 \x81 \x00 \xd2 \x82 \xbb \x96 \x8d \xfd \xec \x0e \x5d \x13 \xdf \xcc \x0a \x36 \xed \x73 \x17 \x85 \x81 \x42 \x4e \x10 \xa3 \x7c \x89 \xd3 \x01 \x42 \x04 \x93 \x3b \x3a \x8c \x11 \x59 \xfd \xec \xb2 \x21 \xaf \xe4 \x16 \x88 \x83 \xd2 \xd0 \x0a \xc1 \xf1 \x5f \xca \x46 \x14 \xfb \xd5 \xe0 \x5d \xe2 \xe3 \x7a \xd0 \xfb \xad \x8b \x77 \x48 \xdd \xdb \xcf \x30 \xb3 \x9e \x80 \x46 \x6c \x61 \xc7 \x33 \x41 \x5e \x72 \xb9 \xf4 \x2d \x5f \xad \x0b \xf3 \x5f \x04 \x1e \xb5 \x63 \x1e \xde \xd0 \x03 \x14 \xc6 \x6c \x48 \x78 \xb3 \x51 \x41 \x6e \x5c \x6b \x90 \x96 \xf2 \xa7 \x08 \x8a \x24 \x38 \x7e \x5d \x01 \x49 \xc5 \x23 \x73 \x9f \x84 \xf5 \x02 \xc7 \x02 \x03 \x01 \x00 \x01 " ,
) ;
}
2018-02-11 10:13:04 +00:00
// missing test_NINFO
// missing test_RKEY
// missing test_CDS
// missing test_CDNSKEY
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_OPENPGPKEY ( ) {
check ( types ::OPENPGPKEY ,
" mQINBFUIXh0BEADNPlL6NpWEaR2KJx6p19scIVpsBIo7UqzCIzeFbRJaGDhn/HlQgcwAalcVNmWUX0ZQsrdn9CEfLWuFu9ON2o1TslYiwn+oSAlH2raFm2eyJTp/iM7IUUCte5jmf3d+L9rjVI7JjmMnbVo6SVY2KDDD72dULcg7IqYcCAN4CT+tPZP5y4cYf+DxRlpxhxvqqiGyAi6lAcJ24/8fJ4hsG0lS1vU12LWeWTHa5aRMM+x9kmv3GYdXG+FxFqZw52kZEnAscpC2ymbX+1YFCr8sjGYGde/D+5cLvuu4PGNZ4fkSeS+0yXve/s6u1mX6RkkF6SOGWuJfBJOGdWzYwber9kqgqpHTjpr8HOybzVroBijtTlB/tommIUd4BTk9Jv4fv2gA4UkC13UM9KBF1NnzUnKC+Js49O3mj0HZDoCrkWMnZyDsEmhMyQPU6YRFHWmB6OTKeD/Znk+b1uz+HIBgrbNuiG/A0c00Vnj7lR4p94oOuypI00XusLsJwPsjI4EgFGKdoRtM0spJhi+3gf88Vq0NENBaFVHLBGWVFaVrffurGcDZYUAdnvm8jSPCgBPfFxpZutexNkLjyaaXjDtga5/n5gSd/3RpWCvp9u3W5jcTNDZF4TORnOXUWHcot/+XmyH8/+cn8ydt0prOLGQ+FtdI+AWyMCXHen6aaZ1jeSLZqwARAQABtFpwZG5zIHJlZ3Jlc3Npb24gdGVzdGluZyBrZXkgKG9ubHkgZm9yIHRlc3RpbmcgdGhlIG9wZW5wZ3BrZXkgcnIpIDxyZWdyZXNzaW9uQHBvd2VyZG5zLm9yZz6JAjcEEwEIACEFAlUIXh0CGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQPr/KqoyK2Z7A6Q//YOBu8nwt+fguSo/vyCln0PqnTiBm4RvE2gPDUnsKuoXoP5F56XHBXKl9kEgmycht/nc7c7NRHzUhacM2RQau6CgNZE8KLaqDTKlEuc/ANtrnGGYG8gMId4TlzU5taLEA8yrHIHnwnMuDDpx1a0ETkbYCrj7CynqdhXCABqFjgRL7Qb37UnLPE7YdFt7fRGwZVLnb3GVZLKHurZ0TANvLdRVDST3f0lCcYMppPbHAvi2MIU71FPGkms++tj4gTltq0VRvrMNm1e5v4+hHZ++QN4sm4+DJGlo7l850gnMXc7c7GkRGtg8gV0h5k5jX5icdgxyvENTuBQ+QprkYTRh9uYzpoTQ+NYRZlgaJxxaDIv1K/kb3oPtnAEKJBC02IZbB0EiS3R5pxYXhUNoWV7ez2A4hX1L+tfvlgCAbbQ/cBLvqXgpgsf9x4ygSi52vQBy3twZyrtLsogxacxADfPcyleHtju/+lSku+Z6+W6OojA0kY2HlaMyQATJLIXd+6NE/tYy70RsU9Oq0OyVTjxh21SPLsExeSwSfciVSLn7IuKGIOV82MEHFhpo1Uhv+G52J8T1fI730sS4Tl5DekLaCz1pg/FmI/EQeAsYqm98uDAaFQcs6gDse8VYGmp2XYsoCW72as8ElKmMIbQ/xD7qxDORLmjCtVoyKH19+s6Pp61a5Ag0EVQheHQEQAMN6pcLJUhw9bfO5kqhLv4prt0AqVBUok6U8tIaEc9vDaasBcFHXgPsoOG97DXB6BdvsHuK/5uMVH5PNe58MLp08iCoIt0C0CbN3+D9Qbeg37AyKyFanB/CXq1tPKVCJc6BMNkO/BswnUsTTmlcd4GovpaJUOOZzblGUQBbhzRohhmOGfdsScGeeYME/yNFqzt1ZArV4va1hOLOUpNFv9TOy0ZVi/yDi+sYA9fCSZU9alWI/cbBct5I+3bh1l26umlZsYQm8uqnSgiQWpRm6UJO6xQbmUN9GzCYyKCmpzZRduqqjjtiF10W1yzioTfTtq2cvU6PdINYY8w2UuOjRd9gChtvGuduOIwqlRTYSaXX1dDoFe1vWqZzRm+pIDumO9eX5jMmzFXLDG2pD2l97zoSjVFf/pYoBasgX43e3V/aEk9PUgXbYFm2QxFMcIYSO9GEDMoE+QxoMXf1UjLxMCK5gD5iHL3Ff2zyXLzlTZE+fHPMLcAkzcp2u6pJ9xpAGekqqeqnISXZ2o8yXsqv8NVvl1zaSiSqU+kak9mIg/2+WC9W1qO2PeSLW2tiis980QnmyDOBg2oL01ITh/u+GTodEGwfRYJoNAJgUjcUMpWl0LuoG8lG6wukhA4QYFWpf2QPVgTR63VbpFgwCnUcSEPqHB0BRCsDHsd0k+/YSuPolABEBAAGJAh8EGAEIAAkFAlUIXh0CGwwACgkQPr/KqoyK2Z6zPA/+PkJTzP8kQw4GW0x2ZxXfOmkRVYpSEoHehf6y9YFN00+T8pb71RGItvuX5v6oPKPClOnIVg2WVHOq6Q3HsXEzl7oIbOtPE98WXHiVXud/djc54uHz9WjSPfy/idP7SMslo29BHR/K9nQkiGtayD57wdxgbLXObE3fA0gl4AsWl1EZzNcWVL4SIrvnBGpYIUGBcsTIiP3p09bu4Qf6HjJRXZlBuizigIgeO39l/G6tb6GA1cnbq4y6aCtQeXHLrnvak1jRqznlJWUqS1mQgOPF1MuOduHAvQbfMBQXAEfgOTzuH9PuKoGm7MePwTrU5GsOpNgS4LbvIRODJxYD+vIwA5BniijgfN9aj9KQVMURrd4Np7i0EVmj8P9FtNgYsEaDt7laGpNB9+9Y9heb6kNEulF7KI7y8CKikgvFGHHCyX2BCCbQBqi6wbEGq16qkTJmesYu9ig4v4xD/Q/cLJFziJLjEcWsL7hq7q2o6e7NL6hf5aTH0/bdeMXMqRzDCAFQ5Z+x0QUCgVonxzj+CuTD/LeOs/QHu/9emvm9EOMYY/X9vidLf58PT/AMqMiYbNWty6qY6k2LMw74Yd4+hO+Tjrk8MrqbCUs9h6ih9IOCo68JTWQQbgWSk2TAyd3U4OqTyBnHWr0HhHDRTOxyDbZUtXbk/r4Q4gTcAt+qjpswPyk= " ,
None ,
b " \x99 \x02 \x0d \x04 \x55 \x08 \x5e \x1d \x01 \x10 \x00 \xcd \x3e \x52 \xfa \x36 \x95 \x84 \x69 \x1d \x8a \x27 \x1e \xa9 \xd7 \xdb \x1c \x21 \x5a \x6c \x04 \x8a \x3b \x52 \xac \xc2 \x23 \x37 \x85 \x6d \x12 \x5a \x18 \x38 \x67 \xfc \x79 \x50 \x81 \xcc \x00 \x6a \x57 \x15 \x36 \x65 \x94 \x5f \x46 \x50 \xb2 \xb7 \x67 \xf4 \x21 \x1f \x2d \x6b \x85 \xbb \xd3 \x8d \xda \x8d \x53 \xb2 \x56 \x22 \xc2 \x7f \xa8 \x48 \x09 \x47 \xda \xb6 \x85 \x9b \x67 \xb2 \x25 \x3a \x7f \x88 \xce \xc8 \x51 \x40 \xad \x7b \x98 \xe6 \x7f \x77 \x7e \x2f \xda \xe3 \x54 \x8e \xc9 \x8e \x63 \x27 \x6d \x5a \x3a \x49 \x56 \x36 \x28 \x30 \xc3 \xef \x67 \x54 \x2d \xc8 \x3b \x22 \xa6 \x1c \x08 \x03 \x78 \x09 \x3f \xad \x3d \x93 \xf9 \xcb \x87 \x18 \x7f \xe0 \xf1 \x46 \x5a \x71 \x87 \x1b \xea \xaa \x21 \xb2 \x02 \x2e \xa5 \x01 \xc2 \x76 \xe3 \xff \x1f \x27 \x88 \x6c \x1b \x49 \x52 \xd6 \xf5 \x35 \xd8 \xb5 \x9e \x59 \x31 \xda \xe5 \xa4 \x4c \x33 \xec \x7d \x92 \x6b \xf7 \x19 \x87 \x57 \x1b \xe1 \x71 \x16 \xa6 \x70 \xe7 \x69 \x19 \x12 \x70 \x2c \x72 \x90 \xb6 \xca \x66 \xd7 \xfb \x56 \x05 \x0a \xbf \x2c \x8c \x66 \x06 \x75 \xef \xc3 \xfb \x97 \x0b \xbe \xeb \xb8 \x3c \x63 \x59 \xe1 \xf9 \x12 \x79 \x2f \xb4 \xc9 \x7b \xde \xfe \xce \xae \xd6 \x65 \xfa \x46 \x49 \x05 \xe9 \x23 \x86 \x5a \xe2 \x5f \x04 \x93 \x86 \x75 \x6c \xd8 \xc1 \xb7 \xab \xf6 \x4a \xa0 \xaa \x91 \xd3 \x8e \x9a \xfc \x1c \xec \x9b \xcd \x5a \xe8 \x06 \x28 \xed \x4e \x50 \x7f \xb6 \x89 \xa6 \x21 \x47 \x78 \x05 \x39 \x3d \x26 \xfe \x1f \xbf \x68 \x00 \xe1 \x49 \x02 \xd7 \x75 \x0c \xf4 \xa0 \x45 \xd4 \xd9 \xf3 \x52 \x72 \x82 \xf8 \x9b \x38 \xf4 \xed \xe6 \x8f \x41 \xd9 \x0e \x80 \xab \x91 \x63 \x27 \x67 \x20 \xec \x12 \x68 \x4c \xc9 \x03 \xd4 \xe9 \x84 \x45 \x1d \x69 \x81 \xe8 \xe4 \xca \x78 \x3f \xd9 \x9e \x4f \x9b \xd6 \xec \xfe \x1c \x80 \x60 \xad \xb3 \x6e \x88 \x6f \xc0 \xd1 \xcd \x34 \x56 \x78 \xfb \x95 \x1e \x29 \xf7 \x8a \x0e \xbb \x2a \x48 \xd3 \x45 \xee \xb0 \xbb \x09 \xc0 \xfb \x23 \x23 \x81 \x20 \x14 \x62 \x9d \xa1 \x1b \x4c \xd2 \xca \x49 \x86 \x2f \xb7 \x81 \xff \x3c \x56 \xad \x0d \x10 \xd0 \x5a \x15 \x51 \xcb \x04 \x65 \x95 \x15 \xa5 \x6b \x7d \xfb \xab \x19 \xc0 \xd9 \x61 \x40 \x1d \x9e \xf9 \xbc \x8d \x23 \xc2 \x80 \x13 \xdf \x17 \x1a \x59 \xba \xd7 \xb1 \x36 \x42 \xe3 \xc9 \xa6 \x97 \x8c \x3b \x60 \x6b \x9f \xe7 \xe6 \x04 \x9d \xff \x74 \x69 \x58 \x2b \xe9 \xf6 \xed \xd6 \xe6 \x37 \x13 \x34 \x36 \x45 \xe1 \x33 \x91 \x9c \xe5 \xd4 \x58 \x77 \x28 \xb7 \xff \x97 \x9b \x21 \xfc \xff \xe7 \x27 \xf3 \x27 \x6d \xd2 \x9a \xce \x2c \x64 \x3e \x16 \xd7 \x48 \xf8 \x05 \xb2 \x30 \x25 \xc7 \x7a \x7e \x9a \x69 \x9d \x63 \x79 \x22 \xd9 \xab \x00 \x11 \x01 \x00 \x01 \xb4 \x5a \x70 \x64 \x6e \x73 \x20 \x72 \x65 \x67 \x72 \x65 \x73 \x73 \x69 \x6f \x6e \x20 \x74 \x65 \x73 \x74 \x69 \x6e \x67 \x20 \x6b \x65 \x79 \x20 \x28 \x6f \x6e \x6c \x79 \x20 \x66 \x6f \x72 \x20 \x74 \x65 \x73 \x74 \x69 \x6e \x67 \x20 \x74 \x68 \x65 \x20 \x6f \x70 \x65 \x6e \x70 \x67 \x70 \x6b \x65 \x79 \x20 \x72 \x72 \x29 \x20 \x3c \x72 \x65 \x67 \x72 \x65 \x73 \x73 \x69 \x6f \x6e \x40 \x70 \x6f \x77 \x65 \x72 \x64 \x6e \x73 \x2e \x6f \x72 \x67 \x3e \x89 \x02 \x37 \x04 \x13 \x01 \x08 \x00 \x21 \x05 \x02 \x55 \x08 \x5e \x1d \x02 \x1b \x03 \x05 \x0b \x09 \x08 \x07 \x02 \x06 \x15 \x08 \x09 \x0a \x0b \x02 \x04 \x16 \x02 \x03 \x01 \x02 \x1e \x01 \x02 \x17 \x80 \x00 \x0a \x09 \x10 \x3e \xbf \xca \xaa \x8c \x8a \xd9 \x9e \xc0 \xe9 \x0f \xff \x60 \xe0 \x6e \xf2 \x7c \x2d \xf9 \xf8 \x2e \x4a \x8f \xef \xc8 \x29 \x67 \xd0 \xfa \xa7 \x4e \x20 \x66 \xe1 \x1b \xc4 \xda \x03 \xc3 \x52 \x7b \x0a \xba \x85 \xe8 \x3f \x91 \x79 \xe9 \x71 \xc1 \x5c \xa9 \x7d \x90 \x48 \x26 \xc9 \xc8 \x6d \xfe \x77 \x3b \x73 \xb3 \x51 \x1f \x35 \x21 \x69 \xc3 \x36 \x45 \x06 \xae \xe8 \x28 \x0d \x64 \x4f \x0a \x2d \xaa \x83 \x4c \xa9 \x44 \xb9 \xcf \xc0 \x36 \xda \xe7 \x18 \x66 \x06 \xf2 \x03 \x08 \x77 \x84 \xe5 \xcd \x4e \x6d \x68 \xb1 \x00 \xf3 \x2a \xc7 \x20 \x79 \xf0 \x9c \xcb \x83 \x0e \x9c \x75 \x6b \x41 \x13 \x91 \xb6 \x02 \xae \x3e \xc2 \xca \x7a \x9d \x85 \x70 \x80 \x06 \xa1 \x63 \x81 \x12 \xfb \x41 \xbd \xfb \x52 \x72 \xcf \x13 \xb6 \x1d \x16 \xde \xdf \x44 \x6c \x19 \x54 \xb9 \xdb \xdc \x65 \x59 \x2c \xa1 \xee \xad \x9d \x13 \x00 \xdb \xcb \x75 \x15 \x43 \x49 \x3d \xdf \xd2 \x50 \x9c \x60 \xca \x69 \x3d \xb1 \xc0 \xbe \x2d \x8c \x21 \x4e \xf5 \x14 \xf1 \xa4 \x9a \xcf \xbe \xb6 \x3e \x20 \x4e \x5b \x6a \xd1 \x54 \x6f \xac \xc3 \x66 \xd5 \xee \x6f \xe3 \xe8 \x47 \x67 \xef \x90 \x37 \x8b \x26 \xe3 \xe0 \xc9 \x1a \x5a \x3b \x97 \xce \x74 \x82 \x73 \x17 \x73 \xb7 \x3b \x1a \x44 \x46 \xb6 \x0f \x20 \x57 \x48 \x79 \x93 \x98 \xd7 \xe6 \x27 \x1d \x83 \x1c \xaf \x10 \xd4 \xee \x05 \x0f \x90 \xa6 \xb9 \x18 \x4d \x18 \x7d \xb9 \x8c \xe9 \xa1 \x34 \x3e \x35 \x84 \x59 \x96 \x06 \x89 \xc7 \x16 \x83 \x22 \xfd \x4a \xfe \x46 \xf7 \xa0 \xfb \x67 \x00 \x42 \x89 \x04 \x2d \x36 \x21 \x96 \xc1 \xd0 \x48 \x92 \xdd \x1e \x69 \xc5 \x85 \xe1 \x50 \xda \x16 \x57 \xb7 \xb3 \xd8 \x0e \x21 \x5f \x52 \xfe \xb5 \xfb \xe5 \x80 \x20 \x1b \x6d \x0f \xdc \x04 \xbb \xea \x5e \x0a \x60 \xb1 \xff \x71 \xe3 \x28 \x12 \x8b \x9d \xaf \x40 \x1c \xb7 \xb7 \x06 \x72 \xae \xd2 \xec \xa2 \x0c \ x5
) ;
}
#[ test ]
fn test_SPF ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::SPF ,
2017-12-27 11:41:54 +00:00
" \" v=spf1 a:mail.rec.test ~all \" " ,
None ,
b " \x1b v=spf1 a:mail.rec.test ~all " ,
) ;
}
#[ test ]
fn test_EUI48 ( ) {
2020-03-07 16:22:22 +00:00
use crate ::common_types ::EUI48Addr ;
2020-03-07 15:57:47 +00:00
check (
types ::EUI48 ,
2017-12-27 11:41:54 +00:00
" 00-11-22-33-44-55 " ,
None ,
b " \x00 \x11 \x22 \x33 \x44 \x55 " ,
) ;
2020-03-07 16:22:22 +00:00
assert_eq! (
" 00-00-5e-00-53-2a " . parse ::< EUI48Addr > ( ) . unwrap ( ) ,
EUI48Addr ( [ 0x00 , 0x00 , 0x5e , 0x00 , 0x53 , 0x2a ] ) ,
) ;
assert! ( " 00-00-5e-00-53- " . parse ::< EUI48Addr > ( ) . is_err ( ) ) ;
2017-12-27 11:41:54 +00:00
}
#[ test ]
fn test_EUI64 ( ) {
2020-03-07 16:22:22 +00:00
use crate ::common_types ::EUI64Addr ;
2020-03-07 15:57:47 +00:00
check (
types ::EUI64 ,
2017-12-27 11:41:54 +00:00
" 00-11-22-33-44-55-66-77 " ,
None ,
b " \x00 \x11 \x22 \x33 \x44 \x55 \x66 \x77 " ,
) ;
2020-03-07 16:22:22 +00:00
assert_eq! (
" 00-00-5e-ef-10-00-00-2a " . parse ::< EUI64Addr > ( ) . unwrap ( ) ,
EUI64Addr ( [ 0x00 , 0x00 , 0x5e , 0xef , 0x10 , 0x00 , 0x00 , 0x2a ] ) ,
) ;
assert! ( " 00-00-5e-ef-10-00-00- " . parse ::< EUI64Addr > ( ) . is_err ( ) ) ;
2017-12-27 11:41:54 +00:00
}
#[ test ]
fn test_TKEY ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::TKEY ,
2017-12-27 11:41:54 +00:00
" gss-tsig. 12345 12345 3 21 4 dGVzdA== 4 dGVzdA== " ,
None ,
b " \x08 gss-tsig \x00 \x00 \x00 \x30 \x39 \x00 \x00 \x30 \x39 \x00 \x03 \x00 \x15 \x00 \x04 test \x00 \x04 test " ,
) ;
}
#[ test ]
2017-12-30 12:05:08 +00:00
fn test_TSIG ( ) {
check ( types ::TSIG ,
" HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 0 0 " ,
2017-12-27 11:41:54 +00:00
None ,
2017-12-30 12:05:08 +00:00
b " \x08 HMAC-MD5 \x07 SIG-ALG \x03 REG \x03 INT \x00 \x00 \x00 \x51 \x8f \xed \x8c \x00 \x3c \x00 \x10 \x4e \x46 \xe9 \x0f \xae \xbf \x32 \xd8 \x28 \xf0 \x65 \x04 \x15 \x92 \x30 \x86 \x30 \x39 \x00 \x00 \x00 \x00 " ,
) ;
check ( types ::TSIG ,
" HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 18 16 TkbpD66/Mtgo8GUEFZIwhg== " ,
None ,
b " \x08 HMAC-MD5 \x07 SIG-ALG \x03 REG \x03 INT \x00 \x00 \x00 \x51 \x8f \xed \x8c \x00 \x3c \x00 \x10 \x4e \x46 \xe9 \x0f \xae \xbf \x32 \xd8 \x28 \xf0 \x65 \x04 \x15 \x92 \x30 \x86 \x30 \x39 \x00 \x12 \x00 \x10 \x4e \x46 \xe9 \x0f \xae \xbf \x32 \xd8 \x28 \xf0 \x65 \x04 \x15 \x92 \x30 \x86 " ,
2017-12-27 11:41:54 +00:00
) ;
}
#[ test ]
fn test_URI ( ) {
check ( types ::URI ,
" 10000 1 \" ftp://ftp1.example.com/public \" " ,
None ,
b " \x27 \x10 \x00 \x01 \x66 \x74 \x70 \x3a \x2f \x2f \x66 \x74 \x70 \x31 \x2e \x65 \x78 \x61 \x6d \x70 \x6c \x65 \x2e \x63 \x6f \x6d \x2f \x70 \x75 \x62 \x6c \x69 \x63 " ,
) ;
check ( types ::URI ,
" 10 1 \" ftp://ftp1.example.com/public/with/a/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/long/url \" " ,
None ,
b " \x00 \x0a \x00 \x01 \x66 \x74 \x70 \x3a \x2f \x2f \x66 \x74 \x70 \x31 \x2e \x65 \x78 \x61 \x6d \x70 \x6c \x65 \x2e \x63 \x6f \x6d \x2f \x70 \x75 \x62 \x6c \x69 \x63 \x2f \x77 \x69 \x74 \x68 \x2f \x61 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x76 \x65 \x72 \x79 \x2f \x6c \x6f \x6e \x67 \x2f \x75 \x72 \x6c " ,
) ;
}
#[ test ]
fn test_CAA ( ) {
2020-03-07 15:57:47 +00:00
check (
types ::CAA ,
2017-12-27 11:41:54 +00:00
" 0 issue \" example.net \" " ,
None ,
b " \x00 \x05 \x69 \x73 \x73 \x75 \x65 \x65 \x78 \x61 \x6d \x70 \x6c \x65 \x2e \x6e \x65 \x74 " ,
) ;
}
2017-12-30 12:05:08 +00:00
#[ test ]
fn test_DLV ( ) {
check ( types ::DLV ,
" 20642 8 2 04443abe7e94c3985196beae5d548c727b044dda5151e60d7cd76a9fd931d00e " ,
None ,
b " \x50 \xa2 \x08 \x02 \x04 \x44 \x3a \xbe \x7e \x94 \xc3 \x98 \x51 \x96 \xbe \xae \x5d \x54 \x8c \x72 \x7b \x04 \x4d \xda \x51 \x51 \xe6 \x0d \x7c \xd7 \x6a \x9f \xd9 \x31 \xd0 \x0e " ,
) ;
}
2017-12-27 11:41:54 +00:00
#[ test ]
fn test_TYPE65226 ( ) {
let d1 = text ::parse_with ( " \\ # 3 414243 " , | data | {
2020-03-07 18:02:33 +00:00
UnknownRecord ::dns_parse ( types ::Type ( 65226 ) , data )
2020-03-07 15:57:47 +00:00
} )
. unwrap ( ) ;
2020-03-07 18:02:33 +00:00
let d2 = UnknownRecord ::new ( types ::Type ( 65226 ) , Bytes ::from_static ( b " \x41 \x42 \x43 " ) ) ;
2017-12-27 11:41:54 +00:00
assert_eq! ( d1 , d2 ) ;
2020-03-07 15:57:47 +00:00
assert_eq! (
d1 . text ( ) . unwrap ( ) ,
( " TYPE65226 " . into ( ) , " \\ # 3 414243 " . into ( ) )
) ;
2017-12-27 11:41:54 +00:00
}
2017-12-29 13:07:58 +00:00
fn check_invalid_zone ( q : Type , text_input : & str ) {
let mut context = text ::DnsTextContext ::new ( ) ;
context . set_zone_class ( classes ::IN ) ;
context . set_origin ( DnsName ::new_root ( ) ) ;
context . set_record_type ( q ) ;
context . set_last_ttl ( 3600 ) ;
2020-03-07 15:57:47 +00:00
text ::parse_with ( text_input , | data | registry ::parse_rr_data ( & context , data ) ) . unwrap_err ( ) ;
2017-12-29 13:07:58 +00:00
}
fn check_invalid_wire ( q : Type , raw : & 'static [ u8 ] ) {
deserialize_with ( fake_packet ( q , raw ) , DnsPacket ::deserialize ) . unwrap_err ( ) ;
}
#[ test ]
fn test_invalid_data_checks ( ) {
check_invalid_zone ( types ::A , " 932.521.256.42 " ) ; // hollywood IP
check_invalid_zone ( types ::A , " 932.521 " ) ; // truncated hollywood IP
check_invalid_zone ( types ::A , " 10.0 " ) ; // truncated IP
check_invalid_zone ( types ::A , " 10.0.0.1. " ) ; // trailing dot
check_invalid_zone ( types ::A , " 10.0.0. " ) ; // trailing dot
check_invalid_zone ( types ::A , " .0.0.1 " ) ; // empty octet
check_invalid_zone ( types ::A , " 10..0.1 " ) ; // empty octet
check_invalid_wire ( types ::A , b " \xca \xec \x00 " ) ; // truncated wire value
check_invalid_zone ( types ::A , " 127.0.0.1 evil data " ) ; // trailing garbage
2018-02-08 08:30:51 +00:00
check_invalid_zone ( types ::TXT , r # """v=spf1 -all"# ) ; // quoted and unquoted words need to be space separated
check_invalid_zone ( types ::TXT , r # """v=spf1 -all"""# ) ; // quoted and unquoted words need to be space separated
2017-12-29 13:07:58 +00:00
check_invalid_zone ( types ::AAAA , " 23:00 " ) ; // time when this test was written
check_invalid_zone ( types ::AAAA , " 23:00::15::43 " ) ; // double compression
check_invalid_zone ( types ::AAAA , " 2a23:00::15:: " ) ; // ditto
2020-03-07 15:57:47 +00:00
check_invalid_wire (
types ::AAAA ,
b " \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \xff " ,
) ; // truncated wire value
// empty label, must be broken
2017-12-29 13:07:58 +00:00
check_invalid_zone ( types ::CNAME , " name..example.com. " ) ;
2020-03-07 15:57:47 +00:00
// overly large label (64), must be broken
check_invalid_zone (
types ::CNAME ,
" 1234567890123456789012345678901234567890123456789012345678901234.example.com. " ,
) ;
// local overly large name (256), must be broken
2017-12-29 13:07:58 +00:00
check_invalid_zone ( types ::CNAME , " 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123.rec.test. " ) ;
2020-03-07 15:57:47 +00:00
// non-local overly large name (256), must be broken
2017-12-29 13:07:58 +00:00
check_invalid_zone ( types ::CNAME , " 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012. " ) ;
2020-03-07 15:57:47 +00:00
check_invalid_zone (
types ::SOA ,
" ns.rec.test hostmaster.test.rec 20130512010 3600 3600 604800 120 " ,
) ; // too long serial
2017-12-29 13:07:58 +00:00
}
2017-12-29 21:25:43 +00:00
#[ test ]
fn test_opt_record_in ( ) {
let p = deserialize_with (
Bytes ::from_static ( b " \xf0 \x01 \x01 \x00 \x00 \x01 \x00 \x01 \x00 \x00 \x00 \x01 \x03 www \x08 powerdns \x03 com \x00 \x00 \x01 \x00 \x01 \x03 www \x08 powerdns \x03 com \x00 \x00 \x01 \x00 \x01 \x00 \x00 \x00 \x10 \x00 \x04 \x7f \x00 \x00 \x01 \x00 \x00 \x29 \x05 \x00 \x00 \x00 \x00 \x00 \x00 \x0c \x00 \x03 \x00 \x08 powerdns " ) ,
DnsPacket ::deserialize
) . unwrap ( ) ;
let opt = p . opt . unwrap ( ) . unwrap ( ) ;
assert_eq! ( opt . udp_payload_size , 1280 ) ;
2020-03-07 15:57:47 +00:00
assert_eq! (
opt . options ,
vec! [ DnsOption ::NSID ( Bytes ::from_static ( b " powerdns " ) ) , ]
) ;
2017-12-29 21:25:43 +00:00
}
#[ test ]
fn test_opt_record_out ( ) {
2020-03-07 15:57:47 +00:00
let mut p = DnsPacket {
2017-12-29 21:25:43 +00:00
id : 0xf001 ,
flags : DnsHeaderFlags {
recursion_desired : true ,
2020-03-07 15:57:47 +00:00
.. Default ::default ( )
2017-12-29 21:25:43 +00:00
} ,
2020-03-07 15:57:47 +00:00
question : vec ! [ Question {
qname : " www.powerdns.com. " . parse ( ) . unwrap ( ) ,
qtype : types ::A ,
qclass : classes ::IN ,
} ] ,
answer : vec ! [ Resource {
name : " www.powerdns.com. " . parse ( ) . unwrap ( ) ,
class : classes ::IN ,
ttl : 16 ,
data : Box ::new ( A {
addr : " 127.0.0.1 " . parse ( ) . unwrap ( ) ,
} ) ,
} ] ,
2017-12-29 21:25:43 +00:00
opt : Some ( Ok ( Opt {
udp_payload_size : 1280 ,
2020-03-07 15:57:47 +00:00
options : vec ! [ DnsOption ::NSID ( Bytes ::from_static ( b " powerdns " ) ) ] ,
.. Default ::default ( )
2017-12-29 21:25:43 +00:00
} ) ) ,
2020-03-07 15:57:47 +00:00
.. Default ::default ( )
2017-12-29 21:25:43 +00:00
} ;
assert_eq! (
& p . to_bytes ( ) . unwrap ( ) as & [ u8 ] ,
b " \xf0 \x01 \x01 \x00 \x00 \x01 \x00 \x01 \x00 \x00 \x00 \x01 \x03 www \x08 powerdns \x03 com \x00 \x00 \x01 \x00 \x01 \xc0 \x0c \x00 \x01 \x00 \x01 \x00 \x00 \x00 \x10 \x00 \x04 \x7f \x00 \x00 \x01 \x00 \x00 \x29 \x05 \x00 \x00 \x00 \x00 \x00 \x00 \x0c \x00 \x03 \x00 \x08 powerdns " as & [ u8 ]
) ;
}