예제 #1
0
def handshake():
    url = "http://127.0.0.1:3864/handshake"
    main_content = {}
    content = {}
    PrimeNumber, BaseNumber = generatePairKey.generatePublicVariable()
    private_key, public_key = generatePairKey.generatePairKeys()
    secret_variable = random.randint(1, 1000)
    content['sharedPrime'] = hex(int(PrimeNumber))
    content['sharedBase'] = hex(int(BaseNumber))
    content['partial_key'] = hex(
        int(
            generatePairKey.sharedkey(int(PrimeNumber), int(BaseNumber),
                                      secret_variable)))
    encrypted_content = generatePairKey.encryptMessageFromPublicNetwork(
        json.dumps(content), 'Server').decode('UTF-8')
    main_content['public_key'] = public_key.exportKey('PEM').decode('UTF-8')
    main_content['encrypted'] = encrypted_content
    payload = json.dumps(main_content)
    headers = {}
    print(type(payload))

    response = requests.request("POST", url, headers=headers, data=payload)
    reply = response.text
    decrypted = generatePairKey.decryptMessageWithPrivateKey(
        reply, private_key)
    decrypted_content = json.loads(decrypted)
    print(decrypted_content)
    MyID = decrypted_content['id']
    sharedkey = generatePairKey.sharedkey(
        PrimeNumber, int(decrypted_content['partial_key'], 16),
        secret_variable)
    return MyID, sharedkey
예제 #2
0
def setup():
    private_key, public_key = generatePairKey.generatePairKeys()
    generatePairKey.generatePairKey('Server', private_key, public_key)