# File lib/Dnsruby/resource/TSIG.rb, line 143 def calculate_mac(algorithm, data) mac=nil key = @key.gsub(" ", "") # key = Base64::decode64(key) key = key.unpack("m*")[0] if (algorithm.to_s.downcase == HMAC_MD5.to_s.downcase) mac = OpenSSL::HMAC.digest(OpenSSL::Digest::MD5.new, key, data) elsif (algorithm == HMAC_SHA1) mac = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA1.new, key, data) elsif (algorithm == HMAC_SHA256) mac = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA256.new, key, data) else # Should we allow client to pass in their own signing function? raise VerifyError.new("Algorithm #{algorithm} unsupported by TSIG") end return mac end