class GPGME::SubKey

def expired

def expired
  expires? && @expires < Time.now.to_i
end

def expires

def expires
  expires? ? Time.at(@expires) : nil
end

def expires?

def expires?
  @expires != 0
end

def inspect

def inspect
  sprintf("#<#{self.class} %s %4d%s/%s %s trust=%s, capability=%s>",
          secret? ? 'ssc' : 'sub',
          length,
          pubkey_algo_letter,
          (@fpr || @keyid)[-8 .. -1],
          timestamp.strftime('%Y-%m-%d'),
          trust.inspect,
          capability.inspect)
end

def pubkey_algo_letter

def pubkey_algo_letter
  PUBKEY_ALGO_LETTERS[@pubkey_algo] || "?"
end

def sha

def sha
  (@fpr || @keyid)[-8 .. -1]
end

def timestamp

def timestamp
  case @timestamp
  when -1, 0
    # FIXME: add a special value for invalid timestamp, or throw an error
    return nil
  else
    return Time.at(@timestamp)
  end
end

def to_s

def to_s
  sprintf("%s   %4d%s/%s %s\n",
          secret? ? 'ssc' : 'sub',
          length,
          pubkey_algo_letter,
          (@fpr || @keyid)[-8 .. -1],
          timestamp.strftime('%Y-%m-%d'))
end