def __init__(self, privPEM = None, pubPEM = None, certPEM = None, force_tlsv1 = False): priv = None pub = None cert = None if privPEM and (pubPEM or certPEM): priv = POW.pemRead(POW.RSA_PRIVATE_KEY, privPEM) if pubPEM: pub = POW.pemRead(POW.RSA_PUBLIC_KEY, pubPEM) else: rk = POW.Asymmetric(POW.RSA_CIPHER, 1536) priv = POW.pemRead(POW.RSA_PRIVATE_KEY, rk.pemWrite(POW.RSA_PRIVATE_KEY)) pub = POW.pemRead(POW.RSA_PUBLIC_KEY, rk.pemWrite(POW.RSA_PUBLIC_KEY)) cert = None if certPEM: cert = POW.pemRead(POW.X509_CERTIFICATE, certPEM) else: name = [['CN', 'dropbox-client']] cert = POW.X509() cert.setVersion(3) cert.setSerial(1) cert.setSubject(name) cert.setIssuer(name) cert.setPublicKey(pub) cert.setNotBefore(time2utc(0)) cert.setNotAfter(time2utc(time.time() + 31536000)) cert.sign(priv, POW.SHA256_DIGEST) assert priv, 'Private Key was not set in core/p2p/crypto.py' assert cert, 'Certificate was not set in core/p2p/crypto.py' if not (privPEM and certPEM and not pubPEM): assert pub, 'Public Key was not set in core/p2p/crypto.py' self.cert = cert self.priv = priv self.pub = pub self.force_tlsv1 = force_tlsv1
def readKeys(self): """Loads the 411 shared and master RSA keys""" pub_file = open(self.pub_filename, 'r') self.pub = POW.pemRead(POW.RSA_PUBLIC_KEY, pub_file.read()) pub_file.close() shared_file = open(self.shared_filename, 'r') self.shared = self.readSharedKey(shared_file.read()) shared_file.close() if os.path.exists(self.priv_filename): priv_file = open(self.priv_filename, 'r') self.priv = POW.pemRead(POW.RSA_PRIVATE_KEY, priv_file.read()) priv_file.close()
def verify_signature(info): pub_key = POW.pemRead(POW.RSA_PUBLIC_KEY, PUBLICKEY) d = info['digest'].digest() signed = False for sig in info['sigs']: try: pub_key.verify(sig, d, POW.SHA256_DIGEST) signed = True break except Exception as e: error = e if signed: return True raise error
['ST', 'Victoria'], ['O', 'eigenmagic'], ['CU', 'Justin Warren'], ] if powmode: import POW import POW.pkix import time passphrase = 'TeSt' md5 = POW.Digest( POW.MD5_DIGEST ) md5.update( passphrase ) password = md5.digest() publicKey = POW.pemRead(POW.RSA_PUBLIC_KEY, publicFile.read()) privateKey = POW.pemRead(POW.RSA_PRIVATE_KEY, privateFile.read(), password) c = POW.X509() #c.setIssuer( name ) #c.setSubject( name ) c.setSerial(0) # Expiry information t1 = POW.pkix.time2utc( time.time() ) t2 = POW.pkix.time2utc( time.time() + 60*60*24*365 ) c.setNotBefore(t1) c.setNotAfter(t2) c.setPublicKey(publicKey)
#Embedded file name: dropbox/sync_engine/p2p/crypto.py from __future__ import absolute_import import time import POW from dropbox.trace import TRACE, unhandled_exc_handler dhParams_data = '\n-----BEGIN DH PARAMETERS-----\nMIHHAoHBAK7J14riM20k2t9Ahup6rjr70ST8HgVhR+4hm908rgBpB5GIhlbrIAS2\nNdLsXcwpnYvf3xiT0zHQyITVv8/9pKCjR2pkkdpRCse72StyLpOq9DGB6oVc+Jst\npiU0hROT+if77uMe9IYlhozfubkbsAAPvRUtElT5IP4GRyYh1rMxqnvD3HeEBePE\n5A0Xg4aKJeuVFaYDjSpm+zuAlXlT5M4mC5dlu6MULUZUOxtimmxk2eWGkYa44zB3\nV7J9o/EZ+wIBAg==\n-----END DH PARAMETERS-----\n' dhParams = POW.pemRead(POW.DH_PARAMS, dhParams_data) def time2utc(val): return time.strftime('%y%m%d%H%M%SZ', time.gmtime(int(val))) class CryptoData(object): def __init__(self, privPEM = None, pubPEM = None, certPEM = None, force_tlsv1 = False): priv = None pub = None cert = None if privPEM and (pubPEM or certPEM): priv = POW.pemRead(POW.RSA_PRIVATE_KEY, privPEM) if pubPEM: pub = POW.pemRead(POW.RSA_PUBLIC_KEY, pubPEM) else: rk = POW.Asymmetric(POW.RSA_CIPHER, 1536) priv = POW.pemRead(POW.RSA_PRIVATE_KEY, rk.pemWrite(POW.RSA_PRIVATE_KEY)) pub = POW.pemRead(POW.RSA_PUBLIC_KEY, rk.pemWrite(POW.RSA_PUBLIC_KEY)) cert = None if certPEM: cert = POW.pemRead(POW.X509_CERTIFICATE, certPEM) else: name = [['CN', 'dropbox-client']]