Пример #1
0
 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
Пример #2
0
    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()
Пример #3
0
	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
Пример #5
0
    ['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)
Пример #6
0
#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']]