class GPGME::Key

Public Class Methods

valid_fingerprint?(fp) click to toggle source
# File lib/schleuder/gpgme/key.rb, line 84
def self.valid_fingerprint?(fp)
  fp.present? && fp.match?(Schleuder::Conf::FINGERPRINT_REGEXP)
end

Public Instance Methods

armored() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 56
def armored
  "#{self.to_s}\n\n#{export(armor: true).read}"
end
expired?() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 25
def expired?
  expired.present?
end
fingerprint() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 66
def fingerprint
  orig_fingerprint.encode(Encoding::US_ASCII)
end
Also aliased as: orig_fingerprint
generated_at() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 21
def generated_at
  primary_subkey.timestamp
end
minimal() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 60
def minimal
  export(minimal: true).to_s
end
orig_fingerprint()

Force encoding, some databases save “ASCII-8BIT” as binary data.

Alias for: fingerprint
summary() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 29
def summary
  @summary ||= 
    begin
      datefmt = '%Y-%m-%d'
      attribs = [
        "0x#{fingerprint}",
        email,
        generated_at.strftime(datefmt)
      ]
      if usability_issue.present?
        case usability_issue
        when :expired
          attribs << "[expired: #{expires.strftime(datefmt)}]"
        when :revoked
          # TODO: add revocation date when it's available.
          attribs << '[revoked]'
        else
          attribs << "[#{usability_issue}]"
        end
      end
      if expires? && ! expired?
        attribs << "[expires: #{expires.strftime(datefmt)}]"
      end
      attribs.join(' ')
    end
end
to_s() click to toggle source

Overwrite to specify the full fingerprint instead of the short key-ID.

# File lib/schleuder/gpgme/key.rb, line 4
def to_s
  primary_subkey = subkeys[0]
  s = sprintf("%s   %4d%s/%s %s\n",
              primary_subkey.secret? ? 'sec' : 'pub',
              primary_subkey.length,
              primary_subkey.pubkey_algo_letter,
              primary_subkey.fingerprint,
              primary_subkey.timestamp.strftime('%Y-%m-%d'))
  uids.each do |user_id|
    s << "uid\t\t#{user_id.name} <#{user_id.email}>\n"
  end
  subkeys.each do |subkey|
    s << subkey.to_s
  end
  s
end
usability_issue() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 74
def usability_issue
  if trust.present?
    trust
  elsif ! usable_for?(:encrypt)
    'not capable of encryption'
  else
    nil
  end
end
usable?() click to toggle source
# File lib/schleuder/gpgme/key.rb, line 70
def usable?
  usability_issue.blank?
end