Skip to content

Instantly share code, notes, and snippets.

@spipm
Created November 7, 2017 18:43
Show Gist options
  • Save spipm/ddb16e25bfbd48db014c8f8403319889 to your computer and use it in GitHub Desktop.
Save spipm/ddb16e25bfbd48db014c8f8403319889 to your computer and use it in GitHub Desktop.
Get an RSA modulus from a server
import ssl
from Crypto.Util import asn1
from OpenSSL.crypto import FILETYPE_PEM, FILETYPE_ASN1, load_certificate, dump_privatekey
def getModulusFromServer(host, port=443):
try:
# get cert from server
cert = ssl.get_server_certificate((host,port))
# load certificate
certObj = load_certificate(FILETYPE_PEM, cert)
# get public key from cert
pub_asn1 = dump_privatekey(FILETYPE_ASN1, certObj.get_pubkey())
# decode public key
pub_der=asn1.DerSequence()
pub_der.decode(pub_asn1)
# get modulus
pub_modulus=pub_der[1]
except:
pub_modulus = -1
return pub_modulus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment