Browse Source

interface.get_certificate: use public asyncio APIs

ssl-fingerprint-check
SomberNight 5 years ago
parent
commit
ea64b2af64
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 7
      electrum/interface.py

7
electrum/interface.py

@ -463,13 +463,12 @@ class Interface(Logger):
async def get_certificate(self): async def get_certificate(self):
sslc = ssl.SSLContext() sslc = ssl.SSLContext()
try:
async with _RSClient(session_factory=RPCSession, async with _RSClient(session_factory=RPCSession,
host=self.host, port=self.port, host=self.host, port=self.port,
ssl=sslc, proxy=self.proxy) as session: ssl=sslc, proxy=self.proxy) as session:
return session.transport._asyncio_transport._ssl_protocol._sslpipe._sslobj.getpeercert(True) asyncio_transport = session.transport._asyncio_transport # type: asyncio.BaseTransport
except ValueError: ssl_object = asyncio_transport.get_extra_info("ssl_object") # type: ssl.SSLObject
return None return ssl_object.getpeercert(binary_form=True)
async def get_block_header(self, height, assert_mode): async def get_block_header(self, height, assert_mode):
self.logger.info(f'requesting block header {height} in mode {assert_mode}') self.logger.info(f'requesting block header {height} in mode {assert_mode}')

Loading…
Cancel
Save