Sha256: 91ea24ab464bb2becf25c276fc048cfd11c7fa9696bf298953fc468374239837

Contents?: true

Size: 840 Bytes

Versions: 3

Compression:

Stored size: 840 Bytes

Contents

# A {Metasploit::Credential::PasswordHash password hash} that can be {Metasploit::Credential::ReplayableHash replayed}
# to authenticate to PostgreSQL servers. It is composed of a hexadecimal string of 32 charachters prepended by the string
# 'md5'
class Metasploit::Credential::PostgresMD5 < Metasploit::Credential::ReplayableHash
  #
  # CONSTANTS
  #

  # Valid format for {Metasploit::Credential::Private#data}
  DATA_REGEXP = /md5([a-f0-9]{32})/

  #
  # Callbacks
  #

  serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
  validates_uniqueness_of :data, :case_sensitive => false

  #
  # Validations
  #

  validate :data_format

  private

  def data_format
    unless DATA_REGEXP.match(data)
      errors.add(:data, 'is not in Postgres MD5 Hash format')
    end
  end

  public

  Metasploit::Concern.run(self)

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
metasploit-credential-6.0.7 app/models/metasploit/credential/postgres_md5.rb
metasploit-credential-6.0.6 app/models/metasploit/credential/postgres_md5.rb
metasploit-credential-6.0.5 app/models/metasploit/credential/postgres_md5.rb