class Vertica::Protocol::Password

Public Class Methods

new(password, auth_method: Vertica::Protocol::Authentication::CLEARTEXT_PASSWORD, salt: nil, user: nil) click to toggle source
# File lib/vertica/protocol/frontend/password.rb, line 6
def initialize(password, auth_method: Vertica::Protocol::Authentication::CLEARTEXT_PASSWORD, salt: nil, user: nil)
  @password = password
  @auth_method, @salt, @user = auth_method, salt, user
end

Public Instance Methods

encoded_password() click to toggle source
# File lib/vertica/protocol/frontend/password.rb, line 11
def encoded_password
  case @auth_method
  when Vertica::Protocol::Authentication::CLEARTEXT_PASSWORD
    @password
  when Vertica::Protocol::Authentication::CRYPT_PASSWORD
    @password.crypt(@salt)
  when Vertica::Protocol::Authentication::MD5_PASSWORD
    require 'digest/md5'
    @password = Digest::MD5.hexdigest("#{@password}#{@user}")
    @password = Digest::MD5.hexdigest("#{@password}#{@salt}")
    @password = "md5#{@password}"
  else
    raise ArgumentError.new("unsupported authentication method: #{@auth_method}")
  end
end
message_body() click to toggle source
# File lib/vertica/protocol/frontend/password.rb, line 27
def message_body
  [encoded_password].pack('Z*')
end