    # File lib/chef/provider/user/dscl.rb, line 116
            def modify_password
              if @new_resource.password
                shadow_hash = nil

                Chef::Log.debug("#{new_resource} updating password")
                if osx_shadow_hash?(@new_resource.password)
                  shadow_hash = @new_resource.password.upcase
                else
                  if osx_salted_sha1?(@new_resource.password)
                    salted_sha1 = @new_resource.password.upcase
                  else
                    hex_salt = ""
                    OpenSSL::Random.random_bytes(10).each_byte { |b| hex_salt << b.to_i.to_s(16) }
                    hex_salt = hex_salt.slice(0...8)
                    salt = [hex_salt].pack("H*")
                    sha1 = ::OpenSSL::Digest::SHA1.hexdigest(salt+@new_resource.password)
                    salted_sha1 = (hex_salt+sha1).upcase
                  end
                  shadow_hash = String.new("00000000"*155)
                  shadow_hash[168] = salted_sha1
                end

                ::File.open("/var/db/shadow/hash/#{guid}",'w',0600) do |output|
                  output.puts shadow_hash
                end

                unless shadow_hash_set?
                  safe_dscl("append /Users/#{@new_resource.username} AuthenticationAuthority ';ShadowHash;'")
                end
              end
            end