Example #1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('players', help='The number of players')
    parser.add_argument('k', help='k')
    args = parser.parse_args()
    players = int(args.players)
    if args.k:
        k = int(args.k)
    else:
        k = players / 2  # N - 2 * t
    PK, SKs = dealer(players=players, k=k)
    content = (PK.l, PK.k, serialize(PK.VK), [serialize(VKp) for VKp in PK.VKs],
               [(SK.i, serialize(SK.SK)) for SK in SKs])
    print cPickle.dumps(content)
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('players', help='The number of players')
    parser.add_argument('k', help='k')
    args = parser.parse_args()
    players = int(args.players)
    if args.k:
        k = int(args.k)
    else:
        k = players / 2  # N - 2 * t
    PK, SKs = dealer(players=players, k=k)
    content = (PK.l, PK.k, serialize(PK.VK),
               [serialize(VKp) for VKp in PK.VKs], [(SK.i, serialize(SK.SK))
                                                    for SK in SKs])
    print cPickle.dumps(content)
def pool_test():
    global PK, SKs
    PK, SKs = dealer(players=64,k=17)

    global sigs,h
    sigs = {}
    h = PK.hash_message('hi')
    h.initPP()
    for SK in SKs:
        sigs[SK.i] = SK.sign(h)


    from multiprocessing import Pool
    pool = Pool()
    print 'Pool started'
    import time
    sigs2 = dict((s,serialize(sigs[s])) for s in range(PK.k))
    _h = serialize(h)

    # Combine 100 times
    if 1:
        promises = [pool.apply_async(_combine_and_verify, 
                                     (_h, sigs2))
                    for i in range(100)]
        print 'launched', time.time()
        for p in promises: assert p.get() == True
        print 'done', time.time()

    # Combine 100 times
    if 1:
        print 'launched', time.time()
        for i in range(100):
            _combine_and_verify(_h, sigs2)
        print 'done', time.time()

    print 'work done'
    pool.terminate()
    pool.join()
    print 'ok'
def pool_test():
    global PK, SKs
    PK, SKs = dealer(players=64,k=17)

    global sigs,h
    sigs = {}
    h = PK.hash_message('hi')
    h.initPP()
    for SK in SKs:
        sigs[SK.i] = SK.sign(h)

    initialize(PK)

    sigs = dict(list(sigs.iteritems())[:PK.k])

    # Combine 100 times
    if 1:
        #promises = [pool.apply_async(_combine_and_verify, 
        #                             (_h, sigs2))
        #            for i in range(100)]
        threads = []
        for i in range(100):
            threads.append(gevent.spawn(combine_and_verify, h, sigs))
        print 'launched', time.time()
        gevent.joinall(threads)
        #for p in promises: assert p.get() == True
        print 'done', time.time()

    # Combine 100 times
    if 0:
        print 'launched', time.time()
        for i in range(10):
            _combine_and_verify(_h, sigs2)
        print 'done', time.time()

    print 'work done'