]> git.donarmstrong.com Git - dsa-puppet.git/commitdiff
Add HMAC function
authorTollef Fog Heen <tfheen@err.no>
Sun, 3 Jun 2012 19:08:47 +0000 (21:08 +0200)
committerTollef Fog Heen <tfheen@err.no>
Sun, 3 Jun 2012 19:08:47 +0000 (21:08 +0200)
modules/puppetmaster/lib/puppet/parser/functions/hmac.rb [new file with mode: 0644]

diff --git a/modules/puppetmaster/lib/puppet/parser/functions/hmac.rb b/modules/puppetmaster/lib/puppet/parser/functions/hmac.rb
new file mode 100644 (file)
index 0000000..c1335cb
--- /dev/null
@@ -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: