def key_state(key, gpg):
if not key:
return None, "invalid"
results = gpg.import_keys(key).results
# Key data is present in the last element of the list
if not results or not results[-1]["fingerprint"]:
return None, "invalid"
key_fingerprint = results[-1]["fingerprint"]
# Since the keyring is exclusive for this import
# only the imported key exists in it.
key = gpg.list_keys()[0]
exp_timestamp = int(key["expires"]) if key["expires"] else 0
expires = datetime.fromtimestamp(exp_timestamp, timezone.utc)
if key["trust"] == "r":
state = "revoked"
elif exp_timestamp and expires < timezone.now():
state = "expired"
else:
state = "valid"
return key_fingerprint, state
评论列表
文章目录