From: Tollef Fog Heen Date: Sun, 3 Jun 2012 19:08:47 +0000 (+0200) Subject: Add HMAC function X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=8db072250fdb98af1fc98f20bdf3dff2dfbde5c4;hp=0c2b0b3c15246127739603a987ef8b151f0f322b;p=mirror%2Fdsa-puppet.git Add HMAC function --- diff --git a/modules/puppetmaster/lib/puppet/parser/functions/hmac.rb b/modules/puppetmaster/lib/puppet/parser/functions/hmac.rb new file mode 100644 index 000000000..c1335cbfb --- /dev/null +++ b/modules/puppetmaster/lib/puppet/parser/functions/hmac.rb @@ -0,0 +1,19 @@ +module Puppet::Parser::Functions + newfunction(:hmac, :type => :rvalue) do |args| + secretfile = args.shift() + data = args.shift() + + require 'openssl' + secret = "" + begin + secret = File.new(secretfile, "r").read + rescue => e + raise Puppet::ParseError, "Error loading secret from #{seccretfile}: #{e.message}\n#{e.backtrace}" + end + + return OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), secret, data) + end +end +# vim:set ts=2: +# vim:set et: +# vim:set shiftwidth=2: