capybara/virtualenv/lib/python2.7/site-packages/wheel/install.py
def verify(self, zipfile=None):
        """Configure the VerifyingZipFile `zipfile` by verifying its signature 
        and setting expected hashes for every hash in RECORD.
        Caller must complete the verification process by completely reading 
        every file in the archive (e.g. with extractall)."""
        sig = None
        if zipfile is None:
            zipfile = self.zipfile
        zipfile.strict = True

        record_name = '/'.join((self.distinfo_name, 'RECORD'))
        sig_name = '/'.join((self.distinfo_name, 'RECORD.jws'))
        # tolerate s/mime signatures:
        smime_sig_name = '/'.join((self.distinfo_name, 'RECORD.p7s'))
        zipfile.set_expected_hash(record_name, None)
        zipfile.set_expected_hash(sig_name, None)
        zipfile.set_expected_hash(smime_sig_name, None)
        record = zipfile.read(record_name)

        record_digest = urlsafe_b64encode(hashlib.sha256(record).digest())
        try:
            sig = from_json(native(zipfile.read(sig_name)))
        except KeyError:  # no signature
            pass
        if sig:
            headers, payload = signatures.verify(sig)
            if payload['hash'] != "sha256=" + native(record_digest):
                msg = "RECORD.sig claimed RECORD hash {0} != computed hash {1}."
                raise BadWheelFile(msg.format(payload['hash'],
                                              native(record_digest)))

        reader = csv.reader((native(r) for r in record.splitlines()))

        for row in reader:
            filename = row[0]
            hash = row[1]
            if not hash:
                if filename not in (record_name, sig_name):
                    sys.stderr.write("%s has no hash!\n" % filename)
                continue
            algo, data = row[1].split('=', 1)
            assert algo == "sha256", "Unsupported hash algorithm"
            zipfile.set_expected_hash(filename, urlsafe_b64decode(binary(data)))
def verify(self, zipfile=None):
        """Configure the VerifyingZipFile `zipfile` by verifying its signature 
        and setting expected hashes for every hash in RECORD.
        Caller must complete the verification process by completely reading 
        every file in the archive (e.g. with extractall)."""
        sig = None
        if zipfile is None:
            zipfile = self.zipfile
        zipfile.strict = True

        record_name = '/'.join((self.distinfo_name, 'RECORD'))
        sig_name = '/'.join((self.distinfo_name, 'RECORD.jws'))
        # tolerate s/mime signatures:
        smime_sig_name = '/'.join((self.distinfo_name, 'RECORD.p7s'))
        zipfile.set_expected_hash(record_name, None)
        zipfile.set_expected_hash(sig_name, None)
        zipfile.set_expected_hash(smime_sig_name, None)
        record = zipfile.read(record_name)

        record_digest = urlsafe_b64encode(hashlib.sha256(record).digest())
        try:
            sig = from_json(native(zipfile.read(sig_name)))
        except KeyError:  # no signature
            pass
        if sig:
            headers, payload = signatures.verify(sig)
            if payload['hash'] != "sha256=" + native(record_digest):
                msg = "RECORD.sig claimed RECORD hash {0} != computed hash {1}."
                raise BadWheelFile(msg.format(payload['hash'],
                                              native(record_digest)))

        reader = csv.reader((native(r) for r in record.splitlines()))

        for row in reader:
            filename = row[0]
            hash = row[1]
            if not hash:
                if filename not in (record_name, sig_name):
                    sys.stderr.write("%s has no hash!\n" % filename)
                continue
            algo, data = row[1].split('=', 1)
            assert algo == "sha256", "Unsupported hash algorithm"
            zipfile.set_expected_hash(filename, urlsafe_b64decode(binary(data)))
def verify ( self , zipfile = None ) : sig = None if zipfile is None : zipfile = self . zipfile zipfile . strict = True record_name = '/' . join ( ( self . distinfo_name , 'RECORD' ) ) sig_name = '/' . join ( ( self . distinfo_name , 'RECORD.jws' ) ) # tolerate s/mime signatures: smime_sig_name = '/' . join ( ( self . distinfo_name , 'RECORD.p7s' ) ) zipfile . set_expected_hash ( record_name , None ) zipfile . set_expected_hash ( sig_name , None ) zipfile . set_expected_hash ( smime_sig_name , None ) record = zipfile . read ( record_name ) record_digest = urlsafe_b64encode ( hashlib . sha256 ( record ) . digest ( ) ) try : sig = from_json ( native ( zipfile . read ( sig_name ) ) ) except KeyError : # no signature pass if sig : headers , payload = signatures . verify ( sig ) if payload [ 'hash' ] != "sha256=" + native ( record_digest ) : msg = "RECORD.sig claimed RECORD hash {0} != computed hash {1}." raise BadWheelFile ( msg . format ( payload [ 'hash' ] , native ( record_digest ) ) ) reader = csv . reader ( ( native ( r ) for r in record . splitlines ( ) ) ) for row in reader : filename = row [ 0 ] hash = row [ 1 ] if not hash : if filename not in ( record_name , sig_name ) : sys . stderr . write ( "%s has no hash!\n" % filename ) continue algo , data = row [ 1 ] . split ( '=' , 1 ) assert algo == "sha256" , "Unsupported hash algorithm" zipfile . set_expected_hash ( filename , urlsafe_b64decode ( binary ( data ) ) )
Configure the VerifyingZipFile `zipfile` by verifying its signature 
        and setting expected hashes for every hash in RECORD.
        Caller must complete the verification process by completely reading 
        every file in the archive (e.g. with extractall).
Configure the VerifyingZipFile zipfile by verifying its signature and setting expected hashes for every hash in RECORD . Caller must complete the verification process by completely reading every file in the archive ( e . g . with extractall ) .