4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / step2like.py PY
#!/usr/bin/python3

import sys
import random
import getopt
import os
from threading import Thread, Event
from tlslite.x509 import X509
from tlslite.utils.cryptomath import divceil
from tlsfuzzer.utils.log import Log
from tlsfuzzer.utils.progress_report import progress_report

import argparse


parser = argparse.ArgumentParser(prog='gen_timing_probes', description='What the program does', epilog='Text at the bottom of help')
                    
parser.add_argument('-c', action='append')
parser.add_argument('-o')
parser.add_argument('-r')

args = parser.parse_args()
characters = args.c


if sys.version_info < (3, 7):
    print("This script is compatible with Python 3.7 and later only")
    sys.exit(1)

def gen_timing_probes(out_dir, passw, args, repeat, verbose=False):
    probes = {}
    probe_names = []
    
    for i, probe_name in enumerate(passw):
        probes[probe_name] = passw[i] #probe_name?
        probe_names.append(probe_name)
        print(probes)

    # create an order in which we will write the ciphertexts in
    log = Log(os.path.join(out_dir, "log.csv"))

    log.start_log(probes.keys())

    for _ in range(repeat):
        log.shuffle_new_run()

    log.write()

    # reset the log position
    log.read_log()

    try:
        # start progress reporting
        status = [0, len(probe_names) * repeat, Event()]
        if verbose:
            kwargs = {}
            kwargs['unit'] = ' ciphertext'
            kwargs['delay'] = 2
            progress = Thread(target=progress_report, args=(status,), kwargs=kwargs)
            progress.start()
            
    finally:
        if verbose:
            status[2].set()
            progress.join()
            print()

    print("done")



if __name__ == '__main__':
    cert = None
    out_dir = args.o
    force_dir = False
    verbose = False
    repeat = int(args.r, 10)

    try:
        os.mkdir(out_dir)
    except FileExistsError:
        pass
    
    gen_timing_probes(out_dir, characters, args, repeat, verbose)