Consolidated DNSClient::doUpdate variants into a single method which
accepts a smart pointer to a TSIGKey instead of TSIGKey reference.
Simplified some unit tests.
Added missing commentary.
Corrected typos and copyright dates.
Changed the string values used to configure a TSIG key's algorithm to
match those used by Bind9's dnssec-keygen.
Added tests for all supported algorithms.
The dns::TSIGKey constructor that was being by d2:TSIGKeyINfo expects an
ordinary string value for secret and then encodes it to base64. Since
TSIGKeyInfo configuration value for secret is already expected to be base64
encoded this was causing it to be encoded again resulting in verification
errors when tested against Bind9.
Changed TSIGKeyInfo::remake to use the appropriate TSIGKey constructor.
NameChangeTransaction now sets its TSIGKeyPtr inside initServeSelection()
from the domain pased into this method.
This makes TSIG fully fucntionally end-to-end.
Rather than each DdnsDomain storing only the string name of its TSIG key,
it now contains an pointer to the TSIGKeyInfo which corresponds to the
key name given in its configuration.
Added TSIGKeyPtr instance member to NameChangeTransaction.
Modified NameChangeTransaction::sendUpdate() to do a TSIG updates if its
TSIGKeyPtr is not null.
Extended FauxServer test class to support TSIG if given a key.
Added round trip TSIG tests to NameChangeTransaction base class tests.
This does not address how the transaction's key is determined. That
requires changes to configuration classes in D2Config.
Change D2UpdateMessage to support TSIG signing and verification via its
toWire and fromWire methods. Both now accept a pointer to a TSIGContext,
which they should use, if its not NULL.
Implemented DNSCLient::doUpdate variant that accepts a TSIGKey. It will
use the key to create a TSIGContext that will then be used to sign the
outbound request and to verify the response in the operator() method.
Added appropriate unit tests.
The unit test, IOFetchTest.TcpSendReceive65535, was failing
routinely on a NetBSD VM. The VM was running so slowly that
this test was timing out. Typically it takes less than
500ms. On this VM it was taking over 4.5s and then hitting
a safety valve timeout. That timeout value was increased.
Fixed typos and replaced used of DHCPv<n> with b10-dhcp<n> in
D2 relevant sections of the admin guide.
Added sender_ip and max_queue_size value to dhcp4 and dhcp6 unit
tests.
Added used of DFT constants in D2ClientCfg default constructor.