From: Aki Tuomi Date: Mon, 13 May 2013 17:32:58 +0000 (+0300) Subject: Fixed TSIG test X-Git-Tag: auth-3.3-rc1~58^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=53d3465abbec65810c5c6d8a03c62acc6b668573;p=pdns Fixed TSIG test --- diff --git a/pdns/test-dnsrecords_cc.cc b/pdns/test-dnsrecords_cc.cc index f8d8b4fd7..c5c940915 100644 --- a/pdns/test-dnsrecords_cc.cc +++ b/pdns/test-dnsrecords_cc.cc @@ -26,7 +26,7 @@ BOOST_AUTO_TEST_CASE(test_record_types) { URLRecordContent::report(); MBOXFWRecordContent::report(); DHCIDRecordContent::report(); - + TSIGRecordContent::report(); cases_t cases = boost::assign::list_of (CASE_S(QType::A, "127.0.0.1", "\x7F\x00\x00\x01",false)) // local nameserver @@ -133,7 +133,8 @@ BOOST_AUTO_TEST_CASE(test_record_types) { (CASE_S(QType::SPF, "\"v=spf1 a:mail.rec.test ~all\"", "\x1bv=spf1 a:mail.rec.test ~all",false)) (CASE_S(QType::EUI48, "00-11-22-33-44-55", "\x00\x11\x22\x33\x44\x55",false)) (CASE_S(QType::EUI64, "00-11-22-33-44-55-66-77", "\x00\x11\x22\x33\x44\x55\x66\x77",false)) - (CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT 1368386956 60 16 4e46e90faebf32d828f0650415923086 12345 0 0", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x0a\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x00\x00\x00",true)) + (CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 0 0", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\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",false)) +(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 18 16 TkbpD66/Mtgo8GUEFZIwhg==", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\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",true)) /* (CASE_S(QType::URL, "http://server.rec.test/", "\x17http://server.rec.test/",false)) (CASE_S(QType::MBOXFW, "you@yourcompany.com", "line format",false)) (CASE_S(QType::CURL, "http://server.rec.test/", "\x17http://server.rec.test/",false)) @@ -151,20 +152,28 @@ BOOST_AUTO_TEST_CASE(test_record_types) { BOOST_TEST_CHECKPOINT("Checking record type " << q.getName() << " test #" << n); BOOST_TEST_MESSAGE("Checking record type " << q.getName() << " test #" << n); try { - DNSRecordContent *rec = DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()); - BOOST_CHECK_MESSAGE(rec != NULL, "mastermake( " << q.getCode() << ", 1, " << val.get<1>() << ") returned NULL"); - if (rec == NULL) continue; - // now verify the record (note that this will be same as *input* value (except for certain QTypes) - switch(q.getCode()) { - case QType::LOC: - case QType::DS: - case QType::DLV: - REC_CHECK_EQUAL(rec->getZoneRepresentation(), val.get<2>()); - break; - default: - REC_CHECK_EQUAL(rec->getZoneRepresentation(), val.get<1>()); + DNSRecordContent *rec; + std::string recData; + if (q.getCode() != QType::TSIG) { + rec = DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()); + BOOST_CHECK_MESSAGE(rec != NULL, "mastermake( " << q.getCode() << ", 1, " << val.get<1>() << ") returned NULL"); + if (rec == NULL) continue; + // now verify the record (note that this will be same as *input* value (except for certain QTypes) + switch(q.getCode()) { + case QType::LOC: + case QType::DS: + case QType::DLV: + REC_CHECK_EQUAL(rec->getZoneRepresentation(), val.get<2>()); + break; + default: + REC_CHECK_EQUAL(rec->getZoneRepresentation(), val.get<1>()); + } + recData = rec->serialize("rec.test"); + } else { + boost::shared_ptr rec3 = DNSRecordContent::unserialize("rec.test",q.getCode(),(val.get<3>())); + // TSIG special, only works the other way + recData = rec3->serialize("rec.test"); } - std::string recData = rec->serialize("rec.test"); boost::shared_ptr rec2 = DNSRecordContent::unserialize("rec.test",q.getCode(),recData); BOOST_CHECK_MESSAGE(rec2 != NULL, "unserialize(rec.test, " << q.getCode() << ", recData) returned NULL"); if (rec2 == NULL) continue;