diff --git a/trezor_agent/gpg/agent.py b/trezor_agent/gpg/agent.py index cb32fef..47513ea 100644 --- a/trezor_agent/gpg/agent.py +++ b/trezor_agent/gpg/agent.py @@ -61,6 +61,7 @@ def _serialize_point(data): def parse_ecdh(line): + """Parse ECDH request and return remote public key.""" prefix, line = line.split(' ', 1) assert prefix == 'D' exp, leftover = keyring.parse(keyring.unescape(line)) @@ -75,6 +76,7 @@ def parse_ecdh(line): def pkdecrypt(keygrip, conn): + """Handle decryption using ECDH.""" for msg in [b'S INQUIRE_MAXLEN 4096', b'INQUIRE CIPHERTEXT']: keyring.sendline(conn, msg) diff --git a/trezor_agent/gpg/encode.py b/trezor_agent/gpg/encode.py index 41a91a1..7fcc8f1 100644 --- a/trezor_agent/gpg/encode.py +++ b/trezor_agent/gpg/encode.py @@ -41,6 +41,7 @@ class HardwareSigner(object): return (util.bytes2num(sig[:32]), util.bytes2num(sig[32:])) def ecdh(self, pubkey): + """Derive shared secret using ECDH from remote public key.""" result = self.client_wrapper.connection.sign_identity( identity=self.identity, challenge_hidden=pubkey, @@ -221,4 +222,5 @@ class Factory(object): return proto.packet(tag=2, blob=blob) def get_shared_secret(self, pubkey): + """Derive shared secret using ECDH from remote public key.""" return self.conn.ecdh(pubkey)