[crazy][crazy] finding a few cert prints of electrum nodes for different currencies
Undiscussed Horrific Abuse, One Victim of Many
gmkarl at gmail.com
Sat Feb 19 22:43:32 PST 2022
current source. throwing encoding error from hashlib.
import electrumx
import aiorpcx
import asyncio
import hashlib
import ssl
async def main():
coin_peers = {
coin.NAME: coin.PEERS
for coin in
electrumx.lib.coins.util.subclasses(electrumx.lib.coins.Coin)
if len(coin.PEERS) > 0
}
nonverifying_ssl = ssl.SSLContext(ssl.PROTOCOL_TLS)
for name, peers in coin_peers.items():
try:
for peer in peers:
peer = electrumx.lib.peer.Peer.from_real_name(peer, '')
cert_msg = ''
client = aiorpcx.connect_rs(peer.host, peer.ssl_port, ssl=True)
try:
transport, protocol = await client.create_connection()
except ssl.SSLCertVerificationError as err:
if err.reason != 'CERTIFICATE_VERIFY_FAILED':
raise
else:
cert_msg = err.verify_message
client = aiorpcx.connect_rs(peer.host,
peer.ssl_port, ssl=nonverifying_ssl)
transport, protocol = await client.create_connection()
try:
print('connected to', name, peer.real_name(),
protocol.session)
ssl_obj =
protocol.session.transport._asyncio_transport.get_extra_info('ssl_object')
der_cert = ssl_obj.getpeercert(True)
pem_cert = ssl.DER_cert_to_PEM_cert(der_cert)
for alg in 'md5 sha1 sha256 blake2b'.split(' '):
cert_print = getattr(hashlib, alg)(pem_cert).hexdigest()
print(peer.real_name(), alg, cert_print)
finally:
protocol.session.close()
except KeyError:
continue
asyncio.run(main())
More information about the cypherpunks
mailing list