Puppet Function: str2saltedsha512
- Defined in:
- vendor_modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb
- Function type:
- Ruby 3.x API
Summary
This converts a string to a salted-SHA512 password hash (which is used for OS X versions >= 10.7).Overview
Given any simple string, you will get a hex version of a salted-SHA512 password hash that can be inserted into your Puppet manifests as a valid password attribute.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'vendor_modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb', line 8 newfunction(:str2saltedsha512, type: :rvalue, doc: <<-DOC @summary This converts a string to a salted-SHA512 password hash (which is used for OS X versions >= 10.7). @return converted string as a hex version of a salted-SHA512 password hash Given any simple string, you will get a hex version of a salted-SHA512 password hash that can be inserted into your Puppet manifests as a valid password attribute. DOC ) do |arguments| require 'digest/sha2' raise(Puppet::ParseError, "str2saltedsha512(): Wrong number of arguments passed (#{arguments.size} but we require 1)") if arguments.size != 1 password = arguments[0] unless password.is_a?(String) raise(Puppet::ParseError, "str2saltedsha512(): Requires a String argument, you passed: #{password.class}") end seedint = rand(2**31 - 1) seedstring = Array(seedint).pack('L') saltedpass = Digest::SHA512.digest(seedstring + password) (seedstring + saltedpass).unpack('H*')[0] end |