def callback(ch, method, properties, body):
    ch.basic_ack(delivery_tag=method.delivery_tag)
    file_name = properties.headers['filename']
    with open('{}/{}'.format(csv_store_path, file_name), 'wb') as write_csv:
        write_csv.write(body)

    tolog('[Server] {} {} got message...'.format(pg_queue_name, file_name))
Exemple #2
0
def shiftRows(estado):
      log.tolog("\nShiftRows Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            estado[i]=estado[i][i:]+estado[i][:i]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
def main():
    postgres_server = RabbitConsumer(pg_queue_name)
    channel = postgres_server.get_channel()

    tolog('[Server] {} starting...'.format(pg_queue_name))
    channel.basic_consume(callback, queue=pg_queue_name)
    get_data(channel)
    postgres_server.close_connection()
Exemple #4
0
def invShiftRows(estado):
      log.tolog("\nShiftRows Inverso Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            estado[i]=estado[i][-i:]+estado[i][:-i]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #5
0
def invShiftRows(estado):
      log.tolog("\nShiftRows Inverso Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            estado[i]=estado[i][-i:]+estado[i][:-i]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #6
0
def shiftRows(estado):
      log.tolog("\nShiftRows Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            estado[i]=estado[i][i:]+estado[i][:i]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
def get_data(channel):
    try:
        channel.start_consuming()
    except KeyboardInterrupt:
        channel.stop_consuming()
    except ConnectionClosed:
        print('[Server] Crashed. Reconnecting...')
        tolog('[Server] Crashed. Reconnecting...', 'warn')
        main()
Exemple #8
0
def byteSub(estado,matriz):
      log.tolog("\nByteSub Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            for j in range(4):
                  estado[i][j]=matriz[estado[i][j]]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #9
0
def byteSub(estado,matriz):
      log.tolog("\nByteSub Estado Inicial:\n")
      imprimeMatrizHex(estado)
      for i in range(4):
            for j in range(4):
                  estado[i][j]=matriz[estado[i][j]]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #10
0
def imprimeMatrizHex(matriz):
      a=''
      for filas in matriz:
            a=a+ "\n"
            for columnas in filas:
                  a=a+"%02x"%columnas + " "
            for columnas in filas:
                  a=a+" "+chr(columnas)+" "
      a= a+"\n"
      log.tolog(a)
Exemple #11
0
def imprimeMatrizHex(matriz):
      a=''
      for filas in matriz:
            a=a+ "\n"
            for columnas in filas:
                  a=a+"%02x"%columnas + " "
            for columnas in filas:
                  a=a+" "+chr(columnas)+" "
      a= a+"\n"
      log.tolog(a)
    def connect_host(self, host):
        self.connection = pika.BlockingConnection(
            pika.ConnectionParameters(host=host))
        channel = self.connection.channel()
        channel.exchange_declare(exchange='direct', exchange_type='direct')
        for queue, ttl in self.queue_dict.items():
            channel.queue_declare(queue=queue,
                                  arguments={'x-message-ttl': ttl})
            tolog('Declared queue {} with TTL {}'.format(queue, ttl))

        return channel
Exemple #13
0
def reccfb(k,iv,connection,largo):
    log.tolog("\nIniciando desencriptacion CFB\n Clave:%s\nIV:%s\n"%(k,iv))
    texto=''
    for i in range(largo/2):
        r=aes.encriptarAes(iv,k)
        c=connection.recv(2)
        log.tolog("\n %s XOR %s "%(c[0]+c[1],r[0]+r[1]))
        p=chr(ord(c[0])^ord(r[0]))+chr(ord(c[1])^ord(r[1])) #XOR dos primeros caracteres
        texto=texto+p   #Juntando texto
        iv=iv[2:]+c #Rotacion vector
    print "Se ha recibido el mensaje: \"%s\""%texto
    return texto
Exemple #14
0
def reccfb(k, iv, connection, largo):
    log.tolog("\nIniciando desencriptacion CFB\n Clave:%s\nIV:%s\n" % (k, iv))
    texto = ''
    for i in range(largo / 2):
        r = aes.encriptarAes(iv, k)
        c = connection.recv(2)
        log.tolog("\n %s XOR %s " % (c[0] + c[1], r[0] + r[1]))
        p = chr(ord(c[0]) ^ ord(r[0])) + chr(
            ord(c[1]) ^ ord(r[1]))  #XOR dos primeros caracteres
        texto = texto + p  #Juntando texto
        iv = iv[2:] + c  #Rotacion vector
    print "Se ha recibido el mensaje: \"%s\"" % texto
    return texto
Exemple #15
0
def send_data(rabclient):
    while True:
        if rabclient.check_consumers('postgres'):
            for file in find_csv_filenames(csv_path):
                rabclient.send(read_file(file), file)
                print('[x] Sent %r' % file)
                tolog('[Client] Message sent')
        else:
            print('Consumer is not running!')
            tolog('[Client] Consumer is not running!', 'warn')

        sleep(sleep_time)

    rabclient.close_connection()
Exemple #16
0
def addRoundKey(estado,k):
      log.tolog("\nAddRoundKey:\n")
      log.tolog("\nEstado:\n")
      imprimeMatrizHex(estado)
      log.tolog("\nClave:\n")
      imprimeMatrizHex(k)
      for i in range(4):
            for j in range(4):
                  estado[i][j]=estado[i][j]^k[i][j]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #17
0
def addRoundKey(estado,k):
      log.tolog("\nAddRoundKey:\n")
      log.tolog("\nEstado:\n")
      imprimeMatrizHex(estado)
      log.tolog("\nClave:\n")
      imprimeMatrizHex(k)
      for i in range(4):
            for j in range(4):
                  estado[i][j]=estado[i][j]^k[i][j]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #18
0
    def connect_host(self, host):
        while True:
            try:
                self.connection = pika.BlockingConnection(
                    pika.ConnectionParameters(host=host))
                channel = self.connection.channel()
                channel.queue_declare(exclusive=True)
                channel.exchange_declare(exchange='direct',
                                         exchange_type='direct')
                channel.queue_bind(exchange='direct',
                                   queue=self.queue,
                                   routing_key='csv')
                break
            except pika.exceptions.ChannelClosed:
                print('Queue {} not exists. Waiting...'.format(self.queue))
                tolog('Queue {} not exists. Waiting...'.format(self.queue),
                      'warn')
                self.close_connection()
                sleep(10)  # Sleep and wait for the client

        return channel
Exemple #19
0
def desencriptarAes(texto,k):
      log.tolog("INICIANDO DESENCRIPTACION AES DEL TEXTO \"%s\", Clave \"%s\""% (texto,k))
      estado=textoAEstado(texto)
      clave=expandeClave(k)
      #Ronda Inicial
      log.tolog("\nRONDA INICIAL\nEstado inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("Clave inicial:\n")
      imprimeMatrizHex(seleccionaClave(clave,0))
      
      addRoundKey(estado,seleccionaClave(clave,10))
      
      invShiftRows(estado)
      
      byteSub(estado,rsbox)
      for i in range(9,0,-1):
            log.tolog("\nRONDA %d\n Clave de la ronda:"%i)
            imprimeMatrizHex(seleccionaClave(clave,i))
            rondaAesInv(estado,seleccionaClave(clave,i))
      addRoundKey(estado,seleccionaClave(clave,0))
      log.tolog("\nResultado Desencriptacion: %s"%estadoAtexto(estado))
      return estadoAtexto(estado)
Exemple #20
0
def desencriptarAes(texto,k):
      log.tolog("INICIANDO DESENCRIPTACION AES DEL TEXTO \"%s\", Clave \"%s\""% (texto,k))
      estado=textoAEstado(texto)
      clave=expandeClave(k)
      #Ronda Inicial
      log.tolog("\nRONDA INICIAL\nEstado inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("Clave inicial:\n")
      imprimeMatrizHex(seleccionaClave(clave,0))
      
      addRoundKey(estado,seleccionaClave(clave,10))
      
      invShiftRows(estado)
      
      byteSub(estado,rsbox)
      for i in range(9,0,-1):
            log.tolog("\nRONDA %d\n Clave de la ronda:"%i)
            imprimeMatrizHex(seleccionaClave(clave,i))
            rondaAesInv(estado,seleccionaClave(clave,i))
      addRoundKey(estado,seleccionaClave(clave,0))
      log.tolog("\nResultado Desencriptacion: %s"%estadoAtexto(estado))
      return estadoAtexto(estado)
Exemple #21
0
def enviocfb(texto,k,iv,sock):
    log.tolog("\nIniciando CFB\n Texto:%s\nClave:%s\nIV:%s\n"%(texto,k,iv))
    textoInt=textoALista(texto)
    for i in range(len(textoInt)/2):
        log.tolog("\nEncriptacion CFB\n Clave:%s\nIV:%s\n"%(k,iv))
        c=aes.encriptarAes(iv,k)
        log.tolog("\n %s XOR %s "%(c[0]+c[1],chr(textoInt[i*2])+chr(textoInt[i*2+1])))
        c=chr(ord(c[0])^textoInt[i*2])+chr(ord(c[1])^textoInt[i*2+1])   #XOR dos primeros caracteres
        iv=iv[2:]+c #Rotacion vector
        
        enviar(c,sock)
Exemple #22
0
def expandeClave(k):
      clave=textToClave(k)
      log.tolog("\nExpandiendo clave: %s\n"%k)
      log.tolog("\nMatrix inicial:")
      imprimeMatrizHex(clave)
      for i in range(4,44):
            aux=clave[i-1]
            if(i%4==0):
                  aux=xorFilaFila(subByte(rotByte(aux)),Rcon[i%4])
            clave.append(xorFilaFila(clave[i-4],aux))
      log.tolog("\nResultado:")
      imprimeMatrizHex(clave)
      return clave
Exemple #23
0
def expandeClave(k):
      clave=textoAEstado(k)
      log.tolog("\nExpandiendo clave: %s\n"%k)
      log.tolog("\nMatrix inicial:")
      imprimeMatrizHex(clave)
      for i in range(4,44):
            aux=clave[i-1]
            if(i%4==0):
                  aux=xorFilaFila(subByte(rotByte(aux)),Rcon[i%4])
            clave.append(xorFilaFila(clave[i-4],aux))
      log.tolog("\nResultado:")
      imprimeMatrizHex(clave)
      return clave
Exemple #24
0
def enviocfb(texto, k, iv, sock):
    log.tolog("\nIniciando CFB\n Texto:%s\nClave:%s\nIV:%s\n" % (texto, k, iv))
    textoInt = textoALista(texto)
    for i in range(len(textoInt) / 2):
        log.tolog("\nEncriptacion CFB\n Clave:%s\nIV:%s\n" % (k, iv))
        c = aes.encriptarAes(iv, k)
        log.tolog(
            "\n %s XOR %s " %
            (c[0] + c[1], chr(textoInt[i * 2]) + chr(textoInt[i * 2 + 1])))
        c = chr(ord(c[0]) ^ textoInt[i * 2]) + chr(
            ord(c[1]) ^ textoInt[i * 2 + 1])  #XOR dos primeros caracteres
        iv = iv[2:] + c  #Rotacion vector

        enviar(c, sock)
Exemple #25
0
def mixColumns(estado,matriz):
      log.tolog("\nMixColumns Estado Inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("\nMatriz utilizada:\n")
      imprimeMatrizHex(matriz)
      aux=[0,0,0,0]
      for i in range(4):
            for j in range(4):
                  aux[j]=estado[j][i]
            aux=mixColumn(aux,matriz)
            for k in range(4):
                  estado[k][i]=aux[k]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #26
0
def mixColumns(estado,matriz):
      log.tolog("\nMixColumns Estado Inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("\nMatriz utilizada:\n")
      imprimeMatrizHex(matriz)
      aux=[0,0,0,0]
      for i in range(4):
            for j in range(4):
                  aux[j]=estado[j][i]
            aux=mixColumn(aux,matriz)
            for k in range(4):
                  estado[k][i]=aux[k]
      log.tolog("\nResultado:\n")
      imprimeMatrizHex(estado)
      return estado
Exemple #27
0
def callback(ch, method, properties, body):
    ch.basic_ack(delivery_tag=method.delivery_tag)
    insert_redis(create_dict(body, 0), 0)
    insert_redis(create_dict(body, 1), 1)

    tolog('[Server] {} got message...'.format(redis_queue_name))
Exemple #28
0
def encriptarAes(texto,k):
      log.tolog("INICIANDO ENCRIPTACION AES DEL TEXTO \"%s\", Clave \"%s\""% (texto,k))
      #ronda inicial
      estado=textoAEstado(texto)
      clave=expandeClave(k)
      log.tolog("\nRONDA INICIAL\nEstado inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("Clave inicial:\n")
      imprimeMatrizHex(seleccionaClave(clave,0))
      addRoundKey(estado,seleccionaClave(clave,0))
      for i in range(1,10):
            log.tolog("\nRONDA %d\n Clave de la ronda:"%i)
            imprimeMatrizHex(seleccionaClave(clave,i))
            rondaAes(estado, seleccionaClave(clave,i))
      #Ronda final
      log.tolog("\nRonda Final:\n")
      byteSub(estado,sbox)
      shiftRows(estado)
      addRoundKey(estado,seleccionaClave(clave,10))
      log.tolog("\nResultado Encriptacion: %s"%estadoAtexto(estado))
      return estadoAtexto(estado)
Exemple #29
0
def encriptarAes(texto,k):
      log.tolog("INICIANDO ENCRIPTACION AES DEL TEXTO \"%s\", Clave \"%s\""% (texto,k))
      #ronda inicial
      estado=textoAEstado(texto)
      clave=expandeClave(k)
      log.tolog("\nRONDA INICIAL\nEstado inicial:\n")
      imprimeMatrizHex(estado)
      log.tolog("Clave inicial:\n")
      imprimeMatrizHex(seleccionaClave(clave,0))
      addRoundKey(estado,seleccionaClave(clave,0))
      for i in range(1,10):
            log.tolog("\nRONDA %d\n Clave de la ronda:"%i)
            imprimeMatrizHex(seleccionaClave(clave,i))
            rondaAes(estado, seleccionaClave(clave,i))
      #Ronda final
      log.tolog("\nRonda Final:\n")
      byteSub(estado,sbox)
      shiftRows(estado)
      addRoundKey(estado,seleccionaClave(clave,10))
      log.tolog("\nResultado Encriptacion: %s"%estadoAtexto(estado))
      return estadoAtexto(estado)
Exemple #30
0
def hiredis_checker():
    if not HIREDIS_AVAILABLE:
        print('hiredis is not available. Better to install it.')
        tolog('hiredis is not available. Better to install it.', 'warn')