def handle(self):
        global email
        global password

        conn = challenge34_shared.Conn(self)

        print('S: reading email...')
        readEmail = conn.readline()

        print('S: reading A...')
        A = conn.readnum()

        print('S: writing salt...')
        conn.writenum(salt)

        b = random.randint(0, N)
        B = (pow(g, b, N) + k*v) % N

        print('S: writing B...')
        conn.writenum(B)

        u = challenge36_util.hashToInt(str(A) + str(B))

        S = pow(pow(v, u, N) * A, b, N)
        K = challenge36_util.hashToBytes(str(S))
        server_hmac = challenge36_util.hmac(salt, K)

        print('S: reading hmac...')
        client_hmac = conn.readbytes()

        if client_hmac == server_hmac:
            print('S: writing success...')
            conn.writeline(b'OK')
        else:
            conn.writeline(b'NOT OK')
    def handle(self):
        global email
        global password

        util = challenge34_util.Util(self)

        print('S: reading email...')
        readEmail = util.readline()

        print('S: reading A...')
        A = util.readnum()

        print('S: writing salt...')
        util.writenum(salt)

        b = random.randint(0, N)
        B = (pow(g, b, N) + k*v) % N

        print('S: writing B...')
        util.writenum(B)

        u = challenge36_util.hashToInt(str(A) + str(B))

        S = pow(pow(v, u, N) * A, b, N)
        K = challenge36_util.hashToBytes(str(S))
        server_hmac = challenge36_util.hmac(salt, K)

        print('S: reading hmac...')
        client_hmac = util.readbytes()

        if client_hmac == server_hmac:
            print('S: writing success...')
            util.writeline(b'OK')
        else:
            util.writeline(b'NOT OK')
    def handle(self):
        global email
        global password

        util = challenge34_util.Util(self)

        print('S: reading email...')
        readEmail = util.readline()

        print('S: reading A...')
        A = util.readnum()

        print('S: writing salt...')
        util.writenum(salt)

        b = random.randint(0, N)
        B = pow(g, b, N)

        print('S: writing B...')
        util.writenum(B)

        u = random.getrandbits(128)

        print('S: writing u...')
        util.writenum(u)

        S = pow(pow(v, u, N) * A, b, N)
        K = challenge36_util.hashToBytes(str(S))
        server_hmac = challenge36_util.hmac(salt, K)

        print('S: reading hmac...')
        client_hmac = util.readbytes()

        if client_hmac == server_hmac:
            print('S: writing success...')
            util.writeline(b'OK')
        else:
            util.writeline(b'NOT OK')
Exemple #4
0
    sock.connect((host, port))
    util = challenge34_util.Util(sock)

    print('C: writing email...')
    util.writeline(email.encode('ascii'))

    A = m*N
    print('C: writing A...')
    util.writenum(A)

    print('C: reading salt...')
    salt = util.readnum()

    print('C: reading B...')
    B = util.readnum()

    S = 0
    K = challenge36_util.hashToBytes(str(S))

    client_hmac = challenge36_util.hmac(salt, K)

    print('C: writing hmac...')
    util.writebytes(client_hmac)

    print('C: reading result...')
    result = util.readline()

    print('result:', result)
finally:
    sock.close()
Exemple #5
0
    util.writeline(email.encode('ascii'))

    print('C: writing A...')
    util.writenum(A)

    print('C: reading salt...')
    salt = util.readnum()

    print('C: reading B...')
    B = util.readnum()

    print('C: reading u...')
    u = util.readnum()

    x = challenge36_util.hashToInt(str(salt) + password)
    S = pow(B, a + u * x, N)

    K = challenge36_util.hashToBytes(str(S))

    client_hmac = challenge36_util.hmac(salt, K)

    print('C: writing hmac...')
    util.writebytes(client_hmac)

    print('C: reading result...')
    result = util.readline()

    print('result:', result)
finally:
    sock.close()