コード例 #1
0
def sendHeartBeat(conn, length, data):
    print("sending heart beat...")
    payload = data
    packet = SSLPacket(type=H_BEAT,
                       payload_type=H_BEAT,
                       length=length,
                       payload=payload)
    if len(data) < length:
        payload = data + hexToString(SERVER_MEMORY)[:length - len(data)]
        packet.payload = payload

    conn.send(packet.encode())
コード例 #2
0
def handleData(conn, data):
    # print(data.decode())
    d = SSLPacket().decode(data)
    if d.type == None:
        return

    if d.type == H_SHAKE:

        if d.payload_type == C_HELLO:
            recieveHelloPacket(d)
            sendHelloPacket(conn)
            time.sleep(1)
            sendCertificate(conn)
            time.sleep(1)
            sendHelloDone(conn)

        elif d.payload_type == C_KEY_EX:
            print("Recieved Client Certificate")

        elif d.payload_type == FIN:
            print("HandShake finished")
            sendServerFin(conn)

    if d.type == H_BEAT:
        print("Recieved heart beat")
        sendHeartBeat(conn, d.length, d.payload)

    if d.type == END:
        end_conn[0] = True
        print("Ending connection")
コード例 #3
0
def recieveHeartBeatResponse(conn):
    s = conn.recv(BUFSIZE)
    packet = SSLPacket().decode(s)
    if packet.type == H_BEAT:
        data = packet.payload
        return data
コード例 #4
0
def sendHeartBeat(conn, data, length):
    packet = SSLPacket(type=H_BEAT, length=length, payload_type=H_BEAT, payload=data)
    conn.send(packet.encode())
コード例 #5
0
def recieveFin(conn):
    s = conn.recv(BUFSIZE)
    packet = SSLPacket().decode(s)
    if packet.payload_type == FIN:
        print("Server Handshake Fin")
コード例 #6
0
def sendFin(conn):
    packet = SSLPacket(type=H_SHAKE, payload_type=FIN)
    conn.send(packet.encode())
コード例 #7
0
def sendCertificate(conn):
    packet = SSLPacket(type=H_SHAKE, payload_type=C_KEY_EX, payload=ClientCertificate)
    conn.send(packet.encode())
コード例 #8
0
def recieveServerHelloDone(conn):
    s = conn.recv(BUFSIZE)
    packet = SSLPacket().decode(s)
    if packet.payload_type == S_HELLO_FIN:
        print("Recieved Server hello done")
コード例 #9
0
def recieveCertificate(conn):
    s = conn.recv(BUFSIZE)
    packet = SSLPacket().decode(s)
    if packet.payload_type == S_KEY_EX:
        print("Server certificate recieved")
コード例 #10
0
def recieveHelloPacket(conn):
    s = conn.recv(BUFSIZE)
    packet = SSLPacket().decode(s)
    if packet.payload_type == S_HELLO:
        print("Recieved Hello Packet from Server")
コード例 #11
0
def sendHelloPacket(conn):
    hello_packet = SSLPacket(type=H_SHAKE, payload_type=C_HELLO)
    print("Sending Hello Packet to Server...")
    conn.send(hello_packet.encode())
    print("Hello Packet Sent")
コード例 #12
0
def endConnection(conn):
    packet = SSLPacket(type=END)
    conn.send(packet.encode())
コード例 #13
0
def sendHelloDone(conn):
    print("Sending Hello done...")
    packet = SSLPacket(type=H_SHAKE, payload_type=S_HELLO_FIN)
    conn.send(packet.encode())
コード例 #14
0
def sendCertificate(conn):
    print("Sending Certificate...")
    packet = SSLPacket(type=H_SHAKE,
                       payload_type=S_KEY_EX,
                       payload=ServerCertificate)
    conn.send(packet.encode())
コード例 #15
0
def sendHelloPacket(conn):
    hello_packet = SSLPacket(type=H_SHAKE, payload_type=S_HELLO)
    print("Sending Hello Packet to Client...")
    conn.send(hello_packet.encode())