From c37923f4e5d4dbcb782edf3e9a6e850e4bf45bc1 Mon Sep 17 00:00:00 2001 From: dmiller Date: Tue, 10 Feb 2015 05:58:44 +0000 Subject: [PATCH] Use better packing to avoid excessive concatenations --- scripts/dns-nsec3-enum.nse | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/dns-nsec3-enum.nse b/scripts/dns-nsec3-enum.nse index f0cc4257a..94d4cdda1 100644 --- a/scripts/dns-nsec3-enum.nse +++ b/scripts/dns-nsec3-enum.nse @@ -177,16 +177,16 @@ end local function generate_hash(domain, iter, salt) local rand_str = random_string() local random_domain = rand_str .. "." .. domain - local packed_domain = "" - for word in string.gmatch(domain,"[^%.]+") do - packed_domain = packed_domain .. bin.pack("c",string.len(word)) .. word + local packed_domain = {} + for word in string.gmatch(random_domain, "[^%.]+") do + packed_domain[#packed_domain+1] = bin.pack("p", word) end - local to_hash = bin.pack("c",string.len(rand_str)) .. rand_str .. packed_domain .. bin.pack("c",0) .. bin.pack("H",salt) + salt = bin.pack("H", salt) + local to_hash = bin.pack("AxA", table.concat(packed_domain), salt) iter = iter - 1 local hash = openssl.sha1(to_hash) for i=0,iter do - hash = hash .. bin.pack("H",salt) - hash = openssl.sha1(hash) + hash = openssl.sha1(hash .. salt) end return string.lower(base32.enc(hash,true)), random_domain end