gpg: better __repr__ and logging for public keys

This commit is contained in:
Roman Zeyde
2016-05-26 22:13:18 +03:00
parent 3c4fb7a17b
commit 339f61c071
3 changed files with 8 additions and 7 deletions

View File

@@ -83,9 +83,8 @@ class Factory(object):
curve_name=curve_name, created=created,
verifying_key=self.conn.pubkey())
log.info('%s GPG public key %s created at %s for "%s"',
curve_name, self.pubkey,
_time_format(self.pubkey.created), user_id)
log.info('%s created at %s for "%s"',
self.pubkey, _time_format(self.pubkey.created), user_id)
@classmethod
def from_public_key(cls, pubkey, user_id):

View File

@@ -111,6 +111,8 @@ class PublicKey(object):
self.created = int(created) # time since Epoch
self.verifying_key = verifying_key
self.algo_id = self.curve_info['algo_id']
hex_key_id = util.hexlify(self.key_id())[-8:]
self.desc = 'GPG public key {}/{}'.format(curve_name, hex_key_id)
def data(self):
"""Data for packet creation."""
@@ -135,7 +137,7 @@ class PublicKey(object):
def __repr__(self):
"""Short (8 hexadecimal digits) GPG key ID."""
return '<{}>'.format(util.hexlify(self.key_id()))
return self.desc
__str__ = __repr__
@@ -172,7 +174,7 @@ def make_signature(signer_func, data_to_sign, public_algo,
log.debug('hashing %d bytes', len(data_to_hash))
digest = hashlib.sha256(data_to_hash).digest()
log.info('signing digest: %s', util.hexlify(digest))
log.debug('signing digest: %s', util.hexlify(digest))
sig = signer_func(digest=digest)
return bytes(header + hashed + unhashed +

View File

@@ -73,7 +73,7 @@ def test_nist256p1():
vk = sk.get_verifying_key()
pk = proto.PublicKey(curve_name=formats.CURVE_NIST256,
created=42, verifying_key=vk)
assert repr(pk) == '<E41511BAF82361D9>'
assert repr(pk) == 'GPG public key nist256p1/F82361D9'
def test_ed25519():
@@ -81,4 +81,4 @@ def test_ed25519():
vk = sk.get_verifying_key()
pk = proto.PublicKey(curve_name=formats.CURVE_ED25519,
created=42, verifying_key=vk)
assert repr(pk) == '<545170A236B40FE6>'
assert repr(pk) == 'GPG public key ed25519/36B40FE6'