コード例 #1
0
    def verify_backup(self, host, dir_to_verify, logger):
        verifier_obj = Verifier(host=host,
                                dir_to_verify=dir_to_verify,
                                logger=logger)
        verifier_obj.setup()

        return verifier_obj.verify()
コード例 #2
0
class VerifyTalent(FunctionTalent):
    def __init__(self, connection_string):
        super(VerifyTalent, self).__init__('VerifyTalent', connection_string)
        self.register_function('verify', self.__verify)
        self.register_function('sign', self.__sign)
        self.register_function('signerdid', self.__signerdid)
        self.verifier = Verifier()

        jwk_raw = os.getenv('JWK')

        if jwk_raw and jwk_raw != '':
            try:
                self.key = jwk.JWK.from_json(jwk_raw)
                self.logger.info('Successfully stored Key from JWK: {}'.format(
                    self.key))
            # pylint: disable=broad-except
            except Exception as ex:
                self.logger.error('Could not import JWK: {}'.format(ex))

    # pylint: disable=unused-argument
    def __verify(self, payload, ev, evtctx):
        self.logger.info(
            'Received verification request for value {}'.format(payload))
        result = self.verifier.verify(payload)

        # If error message
        if isinstance(result, str):
            self.logger.error('Verify failed: {}'.format(result))
            return result
        else:
            return self.verifier.verify(payload).decode('utf-8')

    # pylint: disable=unused-argument
    async def __sign(self, payload, ev, evtctx):
        if self.key is None or self.key == '':
            return 'no key given'

        return await self.verifier.sign(payload, self.key)

    # pylint: disable=unused-argument
    async def __signerdid(self, payload, ev, evtctx):
        return await self.verifier.signer_did(payload)
コード例 #3
0
 def test_adv_attack(self):
     debug = True
     src = 'testing/tests/data/master2_4s_1080.mp4'
     rend_path = 'testing/tests/data/rend2_4s_1080_adv_attack.mp4'
     verifier = Verifier(
         10,
         'http://storage.googleapis.com/verification-models/verification-metamodel-2020-07-06.tar.xz',
         False, False, debug)
     verification_result = verifier.verify(src, [{'uri': rend_path}])
     print(verification_result)
     assert verification_result[0]['tamper'] == 1
コード例 #4
0
ファイル: threaded_host_backup.py プロジェクト: bigbes/xb-mgr
    def verify_backup(self, host, dir_to_verify, logger):
        verifier_obj = Verifier(host=host, dir_to_verify=dir_to_verify,
				logger=logger)

        backup_lock.acquire()
        try:
            verifier_obj.setup()
        finally:
            backup_lock.release()

        return verifier_obj.verify()
コード例 #5
0
    def test_verifier(self):
        verifier = Verifier(self.crs)

        self.assertEqual(verifier.verify(self.ciphertexts, self.proof),
                         (True, True, True))

        prevshuffle = self.proof['shuffled_ciphertexts']
        g1 = self.crs.lff.gen1()
        g2 = self.crs.lff.gen2()
        self.proof['shuffled_ciphertexts'][3] = ((g1, g1, g1), (g2, g2, g2))

        self.assertEqual(verifier.verify(self.ciphertexts, self.proof),
                         (True, False, False))

        self.proof['shuffled_ciphertexts'] = prevshuffle
        self.crs.g1alpha = self.crs.g1alpha * 2
        verifier = Verifier(self.crs)

        self.assertEqual(verifier.verify(self.ciphertexts, self.proof),
                         (False, False, False))
コード例 #6
0
class AEGG(object):
    def __init__(self, binary):
        self.binary = os.path.abspath(binary)
        self.payloads = []

        self.bug_finder = BugFinder(self.binary)
        self.analyzer = Analyzer(self.binary)
        self.exploiter = Exploiter(self.binary)
        self.verifier = Verifier(self.binary)

    def _save(self, payload, file_name):
        with open(file_name, 'w') as f:
            f.write(payload)

    def exploit_gen(self, path):
        analysis = self.analyzer.analyze(path)
        for payload in self.exploiter.generate(path, analysis):
            if not payload:
                break
            if self.verifier.verify(payload):
                self.payloads.append(payload)
                l.info('Generated!')
                return True
        l.info('Can not generate any payload.')
        return False

    def hack(self, n=None, paths=None):
        """
        n: number paths want to check
        paths: angr path object
        """
        n = 1 if n is None else n
        paths = [] if paths is None else paths

        l.info('Start hacking ...')
        while len(paths) < n:
            found_paths = self.bug_finder.find()
            if found_paths is None:
                break
            paths.extend(found_paths)
        for path in paths:
            self.exploit_gen(path)
        l.info('Completed.')

    def save(self, file_name=None):
        file_name = self.binary if file_name is None else file_name
        if len(self.payloads) == 1:
            ext = 'py' if self.payloads[0].ptype == 'script' else 'exp'
            self._save(self.payloads[0].content, '%s.%s' % (file_name, ext))
        else:
            for i in xrange(len(self.payloads)):
                ext = 'py' if self.payloads[0].ptype == 'script' else 'exp'
                self._save(self.payloads[i].content,
                           '%s-%d.%s' % (file_name, i, ext))
コード例 #7
0
    def verify_backup(self, host, dir_to_verify, logger):
        verifier_obj = Verifier(host=host,
                                dir_to_verify=dir_to_verify,
                                logger=logger)

        backup_lock.acquire()
        try:
            verifier_obj.setup()
        finally:
            backup_lock.release()

        return verifier_obj.verify()
コード例 #8
0
 def test_classification(self):
     source_dir = '../data/renditions/1080p/'
     rendition_dirs = [
         ('../data/renditions/720p_watermark/', True),
         ('../data/renditions/720p_60-24fps/', False),
     ]
     files = None
     debug = False
     n_samples = 10
     gpu = False
     src_videos = sorted(glob.glob(source_dir + '/*'))
     results = []
     verifier = Verifier(
         n_samples,
         'http://storage.googleapis.com/verification-models/verification-metamodel-2020-07-06.tar.xz',
         gpu, False, debug)
     for src in tqdm.tqdm(src_videos):
         filename = src.split(os.path.sep)[-1]
         if files is not None and not filename in files:
             continue
         i = 0
         for rendition_dir, tamper in rendition_dirs:
             rendition_name = rendition_dir.strip(os.path.sep).split(
                 os.path.sep)[-1]
             rend_path = rendition_dir + os.path.sep + filename
             if not os.path.exists(rend_path):
                 continue
             np.random.seed(123)
             random.seed(123)
             verification_result = verifier.verify(src, [{
                 'uri': rend_path
             }])
             score_meta = float(verification_result[0]["tamper"])
             score_ul = float(verification_result[0]["tamper_ul"])
             score_sl = float(verification_result[0]["tamper_sl"])
             res = {
                 'score': score_meta,
                 'score_ul': score_ul,
                 'score_sl': score_sl
             }
             res['master_filename'] = filename
             res['rendition_type'] = rendition_name
             res['is_tamper'] = tamper
             results.append(res)
     df_res: pd.DataFrame = pd.DataFrame(results)
     df_res.set_index(['master_filename', 'rendition_type'], inplace=True)
     df_res.sort_index(inplace=True)
     df_res['prediction'] = df_res['score'] > 0
     print(df_res)
     # assert accuracy
     assert np.sum(
         df_res.prediction == df_res.is_tamper) / len(df_res) >= 0.8
コード例 #9
0
    #'http://storage.googleapis.com/verification-models/verification-metamodel-fps2.tar.xz'    
    verifier = Verifier(10, 'http://storage.googleapis.com/verification-models/verification-metamodel-2020-07-06.tar.xz', False, False, debug)   
    
    outcsv = "accuracy" + datetime.datetime.now().strftime("%m%d%H%M%S") + ".csv"
    fileout = open(outcsv, 'w', newline='')
    wr = csv.writer(fileout)
    wr.writerow(['source', 'rendition', 'infertarget'])

    with open(infile, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:            
            if row['target'] == '0':
                wrow = []
                srcfile = srcdir + "/" + row['source']
                rendfile = renddir + "/" + row['id']
                result = verifier.verify(srcfile, [{'uri': rendfile}])
                wrow.append(row['id'])
                wrow.append(row['source'])
                wrow.append(result[0]['tamper'])
               
                wr.writerow(wrow)
                print(  str(logcount) + " ---result :" + str(result[0]['tamper']))
                logcount = logcount + 1

    fileout.close()

    print('Success calculation accuracy!')
'''
    with open(infile, newline='') as csvfile:
            reader = csv.DictReader(csvfile)
            for row in reader:                
コード例 #10
0
ファイル: main.py プロジェクト: AmrGalal7/networks-assignment
		if(k.find("\n")):
			k=k[:-1]
		return m , k , inputString
	if(flag==2):
		bit=""
		for t in range(len(inputString)):
			if(inputString[t].isdigit()):
				bit+=str(inputString[t])
		return int(bit), inputString

# case of generator and verifier
if(counter==1):
	m , k , inputString = getDataFromFile(1,inputString)
	g = Generator(m, k)
	printlongdiv(int(m, 2), int(k, 2))
	genOutput = g.encode()
	g.GeneratorDivisor = g.getDivisor()
	v = Verifier(genOutput, g.GeneratorDivisor)
	v.verify()
# case of generator, alter, and verifier
if(counter==2):
	m , k , inputString = getDataFromFile(1,inputString)
	g = Generator(m, k)
	printlongdiv(int(m, 2), int(k, 2))
	genOutput = g.encode()
	g.GeneratorDivisor = g.getDivisor()
	bit , inputString = getDataFromFile(2,inputString)
	messageAltered = alter(bit, genOutput)
	v = Verifier(messageAltered, g.GeneratorDivisor)
	v.verify()
コード例 #11
0
ファイル: host_backup.py プロジェクト: bigbes/xb-mgr
    def verify_backup(self, host, dir_to_verify, logger):
        verifier_obj = Verifier(host=host, dir_to_verify=dir_to_verify,
				logger=logger)
        verifier_obj.setup()

        return verifier_obj.verify()