docs: def pubkey(self, identity, ecdh=False):
          """Get PublicKey object for specified BIP32 address and elliptic curve."""
          curve_name = identity.get_curve_name(ecdh)
          path = _expand_path(identity.get_bip32_address(ecdh))
          if curve_name == 'nist256p1':
              p2 = '01'
          else:
              p2 = '02'
          apdu = '800200' + p2
          apdu = binascii.unhexlify(apdu)
          apdu += bytearray([len(path) + 1, len(path) // 4])
          apdu += path
          log.debug('apdu: %r', apdu)
          result = bytearray(self.conn.exchange(bytes(apdu)))
          log.debug('result: %r', result)
          return _convert_public_key(curve_name, result[1:])