From: JINMEI Tatuya Date: Wed, 26 Sep 2012 16:47:58 +0000 (-0700) Subject: [2218] some small fixes to the revised nsec3hash implementation. X-Git-Tag: trac2351_base~37^2~1^2~3^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a0721cb9647ea09a7ca40174dee6de870829cc5;p=thirdparty%2Fkea.git [2218] some small fixes to the revised nsec3hash implementation. - now salt_data_ is not a vector, some of the empty check isn't necessary - on the other hand, we need to do it in creat() - we don't need to do null check before free - and some style fixes --- diff --git a/src/lib/dns/nsec3hash.cc b/src/lib/dns/nsec3hash.cc index 42046c6d4e..eb440ace42 100644 --- a/src/lib/dns/nsec3hash.cc +++ b/src/lib/dns/nsec3hash.cc @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -78,11 +79,8 @@ public: SHA1Reset(&sha1_ctx_); } - ~NSEC3HashRFC5155() - { - if (salt_data_ != NULL) { - free(salt_data_); - } + ~NSEC3HashRFC5155() { + std::free(salt_data_); } virtual std::string calculate(const Name& name) const; @@ -126,15 +124,14 @@ NSEC3HashRFC5155::calculate(const Name& name) const { name_copy.downcase(); name_copy.toWire(obuf_); - const uint8_t* const salt = (salt_length_ > 0) ? salt_data_ : NULL; uint8_t* const digest = &digest_[0]; assert(digest_.size() == SHA1_HASHSIZE); iterateSHA1(&sha1_ctx_, static_cast(obuf_.getData()), - obuf_.getLength(), salt, salt_length_, digest); + obuf_.getLength(), salt_data_, salt_length_, digest); for (unsigned int n = 0; n < iterations_; ++n) { iterateSHA1(&sha1_ctx_, digest, SHA1_HASHSIZE, - salt, salt_length_, digest); + salt_data_, salt_length_, digest); } return (encodeBase32Hex(digest_)); @@ -204,14 +201,16 @@ NSEC3Hash* DefaultNSEC3HashCreator::create(const generic::NSEC3PARAM& param) const { const vector& salt = param.getSalt(); return (new NSEC3HashRFC5155(param.getHashalg(), param.getIterations(), - &salt[0], salt.size())); + salt.empty() ? NULL : &salt[0], + salt.size())); } NSEC3Hash* DefaultNSEC3HashCreator::create(const generic::NSEC3& nsec3) const { const vector& salt = nsec3.getSalt(); return (new NSEC3HashRFC5155(nsec3.getHashalg(), nsec3.getIterations(), - &salt[0], salt.size())); + salt.empty() ? NULL : &salt[0], + salt.size())); } NSEC3Hash*