class Firefox::Login

Constants

JSON_SCHEMA

Attributes

enc_type[RW]
encrypted_password[RW]
encrypted_username[RW]
form_submit_url[RW]
guid[RW]
hostname[RW]
http_realm[RW]
id[RW]
password[RW]
password_field[RW]
time_created[RW]
time_last_used[RW]
time_password_changed[RW]
times_used[RW]
username[RW]
username_field[RW]

Public Class Methods

from_json(data) click to toggle source
# File lib/firefox/login.rb, line 67
def self.from_json(data)
  # In firefox (checked in the mercurial repository on 2017-02-11),
  # logins.json is updated in
  # toolkit/components/passwordmgr/storage-json.js

  begin
    JSON::Validator.validate!(JSON_SCHEMA, data)
  rescue JSON::Schema::ValidationError => err
    raise InvalidLogin, "invalid login data: #{err.message}"
  end

  login = Login.new()

  to_date = lambda do |timestamp|
    seconds = timestamp / 1000
    milliseconds = timestamp % 1000
    Time.at(seconds, milliseconds).utc()
  end

  login.id = data['id']
  login.hostname = data['hostname']
  login.http_realm = data['httpRealm']
  login.form_submit_url = data['formSubmitURL']
  login.username_field = data['usernameField']
  login.password_field = data['passwordField']
  login.encrypted_username = data['encryptedUsername']
  login.encrypted_password = data['encryptedPassword']
  login.enc_type = data['encType']
  login.guid = data['guid']
  login.time_created = to_date.(data['timeCreated'])
  login.time_last_used = to_date.(data['timeLastUsed'])
  login.time_password_changed = to_date.(data['timePasswordChanged'])
  login.times_used = data['timesUsed']

  login
end
new() click to toggle source
# File lib/firefox/login.rb, line 56
def initialize()
end

Public Instance Methods

decrypt() click to toggle source
# File lib/firefox/login.rb, line 104
def decrypt()
  @username = NSS.decrypt(@encrypted_username)
  @password = NSS.decrypt(@encrypted_password)
end
inspect() click to toggle source
# File lib/firefox/login.rb, line 63
def inspect()
  to_s()
end
to_s() click to toggle source
# File lib/firefox/login.rb, line 59
def to_s()
  "#<Firefox::Login #{@hostname}>"
end