From 8db072250fdb98af1fc98f20bdf3dff2dfbde5c4 Mon Sep 17 00:00:00 2001 From: Tollef Fog Heen Date: Sun, 3 Jun 2012 21:08:47 +0200 Subject: [PATCH] Add HMAC function --- .../lib/puppet/parser/functions/hmac.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 modules/puppetmaster/lib/puppet/parser/functions/hmac.rb 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: -- 2.20.1