]> granicus.if.org Git - pdns/commitdiff
add AXFR testing to tsig-tests
authorBert Hubert <bert.hubert@netherlabs.nl>
Tue, 12 Apr 2011 16:22:39 +0000 (16:22 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Tue, 12 Apr 2011 16:22:39 +0000 (16:22 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2158 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/Makefile.am
pdns/tsig-tests.cc

index f0c7ed2025965aea67be9fcfeb04a77d23966209..cbdc9be1431863109f7be215e3cd16d095b1bf24 100644 (file)
@@ -111,7 +111,10 @@ toysdig_SOURCES=toysdig.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dns
 tsig_tests_SOURCES=tsig-tests.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc dnswriter.hh \
        misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
        logger.cc statbag.cc qtype.cc sillyrecords.cc md5.cc nsecrecords.cc base32.cc \
-       dnssecinfra.cc 
+       dnssecinfra.cc resolver.cc arguments.cc dns_random.hh aes/aescpp.h \
+       aes/aescrypt.c aes/aes.h aes/aeskey.c aes/aes_modes.c aes/aesopt.h \
+       aes/aestab.c aes/aestab.h aes/brg_endian.h aes/brg_types.h aes/dns_random.cc \
+       randomhelper.cc dns.cc
 tsig_tests_LDFLAGS= -Lext/polarssl/library     
 tsig_tests_LDADD= -lpolarssl
 
index 8ba592ebecabbbc62cc8f0281a37cd312dd47ce1..6a3e17ef975236559a4c413d63613dc4e72bcb20 100644 (file)
@@ -8,13 +8,24 @@
 #include "md5.hh"
 #include "base64.hh"
 #include "dnssecinfra.hh"
+#include "resolver.hh"
+#include "arguments.hh"
+#include "dns_random.hh"
 
 StatBag S;
 
+ArgvMap& arg()
+{
+  static ArgvMap theArg;
+  return theArg;
+}
 
 int main(int argc, char** argv)
 try
 {
+  ::arg().set("query-local-address","Source IP address for sending queries")="0.0.0.0";
+  ::arg().set("query-local-address6","Source IPv6 address for sending queries")="::";
+
   reportAllTypes();
 
   if(argc < 4) {
@@ -30,7 +41,9 @@ try
   pw.getHeader()->id=htons(0x4831);
   
   string key;
-  B64Decode("kp4/24gyYsEzbuTVJRUMoqGFmN3LYgVDzJ/3oRSP7ys=", key);
+  B64Decode("Syq9L9WrBWdxBC+HxKok2g==", key);
+
+  string keyname("pdns-b-aa");
 
   TSIGRecordContent trc;
   trc.d_algoName="hmac-md5.sig-alg.reg.int.";
@@ -39,11 +52,11 @@ try
   trc.d_origID=ntohs(pw.getHeader()->id);
   trc.d_eRcode=0;
 
-  addTSIG(pw, &trc, "test", key, "", false);
+  addTSIG(pw, &trc, keyname, key, "", false);
 
   Socket sock(InterNetwork, Datagram);
   ComboAddress dest(argv[1] + (*argv[1]=='@'), atoi(argv[2]));
-  
+#if 0
   sock.sendTo(string((char*)&*packet.begin(), (char*)&*packet.end()), dest);
   
   string reply;
@@ -65,7 +78,7 @@ try
   }
 
   if(mdp.getTSIGPos()) {    
-    string message = makeTSIGMessageFromTSIGPacket(reply, mdp.getTSIGPos(), "test", trc, trc.d_mac, false); // insert our question MAC
+    string message = makeTSIGMessageFromTSIGPacket(reply, mdp.getTSIGPos(), keyname, trc, trc.d_mac, false); // insert our question MAC
     
     string hmac2=calculateMD5HMAC(key, message);
     cerr<<"Calculated mac: "<<Base64Encode(hmac2)<<endl;
@@ -74,8 +87,22 @@ try
     else 
       cerr<<"Mismatch!"<<endl;
   }
+#endif
+  seedRandom("/dev/urandom");
+  cerr<<"Keyname: '"<<keyname<<"', algo: '"<<trc.d_algoName<<"', key: '"<<Base64Encode(key)<<"'\n";
+  AXFRRetriever axfr(dest, "b.aa", keyname, "hmac-md5", key);
+  vector<DNSResourceRecord> res;
+  while(axfr.getChunk(res)) {
+  }
+  return 0;
 }
 catch(std::exception &e)
 {
   cerr<<"Fatal: "<<e.what()<<endl;
+  return 1;
+}
+catch(AhuException& ae)
+{
+  cerr<<"Fatal 2: "<<ae.reason<<endl;
+  return 1;
 }