Index: interfaz/cifrados/message121231231.txt
===================================================================
--- interfaz/cifrados/message121231231.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
+++ interfaz/cifrados/message121231231.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -0,0 +1,20 @@
+rá
+W ¿öbÜux)BðTð§cvHöûàeÞ
+*¤_¬({;!Góbe$ÏÄöZ*{»WþT`xôGD ÿ.æù¥§ðÞbäÉuú
+Ëß¬:²«¾£
+Z
+Ïw½hÙÓ¦È
+),Òsô
+wã9\ëH¢ÃÞ
+
+ZoS
+/AÂvj°Ï)z£þê²ÎrÈ«Sðb¾°ø1j½
+S
+ñÓÆ3Y*?ºÙü«XÛq ß,vîË¾ö÷<fÓÅØFe`äb¯ñ¢·CáAñâé­ÝxHà
+üÑÐÐ:%ñ
+ Ü$ÿTëJjk"õ"YÃ'$Üÿã3
+g9Ý2effwtå!¨
+®9Vj6½Lï´JÍi4]z·Ák")ßB*eX®eû*ª\fê]vu7aKú¹zCzGôë÷¡äÍ
+¬
+¡iµïN
+b½é
Index: interfaz/cifrados/probando.txt
===================================================================
--- interfaz/cifrados/probando.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
+++ interfaz/cifrados/probando.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -0,0 +1,9 @@
+<u[å:¶+
+õ
+2µÅýsÝâË\Ä 5¹kTYËúâ+¦$ZÔiQª°Mbvõòàz\
+ÚJ/âÛ1pÌ¦íwPÅ<Pôd¶ÒAhs<3ÊëíëHÉn z4
+±ÇPpêmz-ðâe
+ÇØ
+*q¬ TrÛ¤ºãv¬ßþ»4Ðð~D%S²ã,pSCË½wX»[ÍÙ=H¸
+$ÕöÿrÚ×âkáhbïÂÖÞçt0cZ®ÚË¹­±jÈôµrÅ¡ð}±¹tyLf´4­!Fñ§Nq]¡ñC-ÎH¦Ù^#a0 Æ)o¡Ê þõNÔ[]­læÎzPÃ r¦&£2cyux×È<WìÒ8V×ÞÍKgæ5%øçe%8áÞrÈ§´À¡p ûaW
+ÛÓ=×²«ÍyÕ'¢Ú/[}/ùkj#ëDôâ )|l+éQ÷Í$?ÿÞ
Index: interfaz/criptosistemas.cpp
===================================================================
--- interfaz/criptosistemas.cpp	(revision bd66191c644399ffd99ecbe0eaaf8b60a9b92a9b)
+++ interfaz/criptosistemas.cpp	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -1,2 +1,9 @@
+/*!
+    Interfaz de criptosistema Desarrollada en Qt
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 30/06/2016
+    @version 1.0.0
+*/
 #include "criptosistemas.h"
 #include "ui_criptosistemas.h"
@@ -43,9 +50,11 @@
         connect(ui->cifrar,SIGNAL(clicked()),this,SLOT(CifrarArchivo()));
         connect(ui->decifrar, SIGNAL(clicked()), this, SLOT(DescifrarArchivo()));
+        connect(ui->ayuda,SIGNAL(clicked()),this,SLOT(Ayuda()));
         ui->progressBar->setVisible(false);
     }
-    else{
+    else
+    {
         connect(ui->generarLlaves,SIGNAL(clicked()),this,SLOT(OpcionLlaves()));
-        connect(ui->cifrar,SIGNAL(clicked()),this,SLOT(CifrarArchivo()));
+        connect(ui->ayuda,SIGNAL(clicked()),this,SLOT(Ayuda()));
         ui->progressBar->setVisible(false);
     }
@@ -59,4 +68,11 @@
 
 
+/*!
+    Funcion que despliega una pregunta para crear las llaves (privada y publica)
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 30/06/2016
+    @version 1.0.0
+*/
 void CriptoSistemas::OpcionLlaves()
 {
@@ -75,4 +91,6 @@
     connect(pushSi,SIGNAL(clicked()),this,SLOT(GenerarLlaves()));
     connect(pushNo,SIGNAL(clicked()),this,SLOT(Inicio()));
+    connect(ui->cifrar,SIGNAL(clicked()),this,SLOT(CifrarArchivo()));
+    connect(ui->decifrar, SIGNAL(clicked()), this, SLOT(DescifrarArchivo()));
     pushSi->setObjectName("si");
     pushNo->setObjectName("no");
@@ -85,4 +103,12 @@
 }
 
+
+/*!
+    Funcion que permite generar las llaves(privada y publica)
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 30/06/2016
+    @version 1.0.0
+*/
 void CriptoSistemas::GenerarLlaves()
 {
@@ -118,10 +144,9 @@
         AutoSeededRandomPool rng;
         InvertibleRSAFunction privkey;
-        privkey.Initialize(rng, 1024);
+        privkey.GenerateRandomWithKeySize(rng, 3072);
         Base64Encoder privkeysink(new FileSink("keys/privkey.txt"));
         privkey.DEREncode(privkeysink);
         privkeysink.MessageEnd();
         RSAFunction pubkey(privkey);
-
         Base64Encoder pubkeysink(new FileSink("keys/pubkey.txt"));
         pubkey.DEREncode(pubkeysink);
@@ -141,4 +166,11 @@
 
 
+/*!
+    Funcion que muestra la carga del archivo que desea cifrar
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 15/08/2016
+    @version 1.0.0
+*/
 void CriptoSistemas::CifrarArchivo()
 {
@@ -159,50 +191,99 @@
     ui->centralPage->addWidget(pushDescargar, 2,2);
     pushDescargar->setObjectName("pushDescargar");
+    pushSeleccionar->setObjectName("pushSeleccionar1");
 
     connect(pushSeleccionar, &QPushButton::clicked,[=] {
         emit OpenFolderForCrifrar();
     });
-    if(dir != "")
-    {
-        connect(pushDescargar, SIGNAL(clicked()), this, SLOT(SaveFile()));
+    connect(pushDescargar, SIGNAL(clicked()), this, SLOT(SaveFile()));
+
+}
+
+
+/*!
+    Funcion permite montar un archivo para cifrar
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
+void CriptoSistemas::OpenFolderForCrifrar()
+{
+    dir = QFileDialog::getOpenFileName(this,tr("Selleccione Archivo"),"/home",tr("Archivos (*.txt);;Todos los Archivos(*.*)"));
+    string ruta = dir.toStdString();
+    QFile archivo(ruta.c_str());
+    int size = archivo.size();
+    if (size > 256)
+    {
+        QString style = "QLabel{ background-color: #FCDFDF; font-size: 13px; font-style: italic; margin-left: 10px; }";
+        this->ui->flujo_mensajes->setText("El archivo que desea Cifrar debe tener un tamaño maximo de 256 Bytes, vuelve a seleccionar un archivo.");
+        ui->flujo_mensajes->setStyleSheet(style);
+        dir = "";
+    }
+}
+
+
+/*!
+    Funcion que permite guardar en una ruta dada el txt cifrado
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
+void CriptoSistemas::SaveFile()
+{
+    string ruta = dir.toStdString();
+    QFile archivo(ruta.c_str());
+    int size = archivo.size();
+    if (dir.size() > 0 && size <= 256)
+    {
+        QString dir_save = QFileDialog::getSaveFileName(0,"Save file",QDir::currentPath(),
+                "Text files (*.txt)",
+                 new QString("Text files (*.txt)"));
+
+
+        if (size <= 256)
+        {
+            string plain;
+            string save = dir_save.toStdString();
+            FileSource texto_plano(ruta.c_str(), true, new StringSink(plain));
+            FileSource file("keys/pubkey.txt", true, new Base64Decoder);
+            // Cifrado
+            RSAES_OAEP_SHA_Encryptor pubkey(file);
+            AutoSeededRandomPool rng;
+            StringSource ss1( plain, true,
+                new PK_EncryptorFilter( rng, pubkey,
+                    new FileSink( save.c_str() )
+                ) // PK_EncryptorFilter
+             ); // StringSource
+            QString style = "QLabel{ background-color: #5CB85C; font-size: 13px; font-style: italic; margin-left: 10px; }";
+            this->ui->flujo_mensajes->setText("El archivo se Cifro con exito, se encuentra en la ruta " + dir_save);
+            ui->flujo_mensajes->setStyleSheet(style);
+            dir = "";
+        }
+        else
+        {
+            QString style = "QLabel{ background-color: #FCDFDF; font-size: 13px; font-style: italic; margin-left: 10px; }";
+            this->ui->flujo_mensajes->setText("El archivo que desea Cifrar debe tener un tamaño maximo de 256 Bytes, vuelve a seleccionar un archivo.");
+            ui->flujo_mensajes->setStyleSheet(style);
+            dir = "";
+        }
     }
     else
     {
-
-    }
-
-}
-
-void CriptoSistemas::OpenFolderForCrifrar()
-{
-    dir = QFileDialog::getOpenFileName(this,tr("Select file"),"/home",tr("Files (*.txt);;All files (*.*)"));
-    QPushButton *pushDescargar = findChild<QPushButton*>("pushDescargar");
-    connect(pushDescargar, SIGNAL(clicked()), this, SLOT(SaveFile()));
-
-}
-
-void CriptoSistemas::SaveFile()
-{
-    QString dir_save = QFileDialog::getSaveFileName(0,"Save file",QDir::currentPath(),
-            "Text files (*.txt)",
-                new QString("Text files (*.txt)"));
-
-    qDebug()<<dir;
-    // Cifrado
-    string plain;
-    string ruta = dir.toStdString();
-    string save = dir_save.toStdString();
-    FileSource texto_plano(ruta.c_str(), true, new StringSink(plain));
-    FileSource file("keys/pubkey.txt", true, new Base64Decoder);
-    RSAES_OAEP_SHA_Encryptor pubkey(file);
-    AutoSeededRandomPool rng;
-    StringSource ss1( plain, true,
-        new PK_EncryptorFilter( rng, pubkey,
-            new FileSink( save.c_str() )
-        ) // PK_EncryptorFilter
-     ); // StringSource
-    dir = "";
-}
-
+        QString style = "QLabel{ background-color: #FCDFDF; font-size: 13px; font-style: italic; margin-left: 10px; }";
+        this->ui->flujo_mensajes->setText("Error, Debes seleccionar un archivo para cifrar");
+        ui->flujo_mensajes->setStyleSheet(style);
+    }
+}
+
+
+/*!
+    Funcion que muestra el formulario para la carga del archivo que desea Decifrar
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
 void CriptoSistemas::DescifrarArchivo()
 {
@@ -223,48 +304,104 @@
     ui->centralPage->addWidget(pushDescargar, 2,2);
     pushDescargar->setObjectName("pushDescargarEn");
+    pushSeleccionar->setObjectName("pushSeleccionar");
     connect(pushSeleccionar, SIGNAL(clicked()), this, SLOT(OpenFolderForDescifrar()));
-}
-
-
+    connect(pushDescargar, SIGNAL(clicked()), this, SLOT(SaveFileForDescifrado()));
+}
+
+
+/*!
+    Funcion permite montar un archivo el cual sera Decifrado
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
+void CriptoSistemas::OpenFolderForDescifrar()
+{
+    dir = QFileDialog::getOpenFileName(this,tr("Selleccione Archivo"),"/home",tr("Archivos (*.txt);;Todos los Archivos(*.*)"));
+    QPushButton *pushDescarga = findChild<QPushButton*>("pushDescargar");
+    if (pushDescarga)
+    {
+        pushDescarga->setVisible(false);
+    }
+}
+
+
+/*!
+    Funcion que permite guardar en una ruta dada el txt Decifrado
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
+void CriptoSistemas::SaveFileForDescifrado()
+{
+    if (dir.size() > 0 )
+    {
+        QString dir_save = QFileDialog::getSaveFileName(0,"Save file",QDir::currentPath(),
+                "Text files (*.txt)",
+                    new QString("Text files (*.txt)"));
+        // Descifrado
+        AutoSeededRandomPool rng;
+        string str;
+        string ruta = dir.toStdString();
+        string save = dir_save.toStdString();
+        FileSource file("keys/privkey.txt", true, new Base64Decoder);
+        FileSource cifrado(ruta.c_str(), true, new StringSink(str));
+        RSAES_OAEP_SHA_Decryptor d(file);
+
+        StringSource ss2(str, true,
+            new PK_DecryptorFilter(rng, d,
+                new FileSink( save.c_str() )
+           ) // PK_DecryptorFilter
+        ); // StringSource
+        QString style = "QLabel{ background-color: #5CB85C; font-size: 13px; font-style: italic; margin-left: 10px; }";
+        this->ui->flujo_mensajes->setText("El archivo se DesCifro con exito, el archivo se encuentra en la siguiente ruta: " + dir_save);
+        ui->flujo_mensajes->setStyleSheet(style);
+        dir = "";
+    }
+    else
+    {
+        QString style = "QLabel{ background-color: #FCDFDF; font-size: 13px; font-style: italic; margin-left: 10px; }";
+        this->ui->flujo_mensajes->setText("Debes seleccionar un archivo para Decifrar");
+        ui->flujo_mensajes->setStyleSheet(style);
+    }
+}
+
+
+/*!
+    Funcion para mostrar la Ayuda del sistema
+    @author Ing. Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 26/09/2016
+    @version 1.0.0
+*/
 void CriptoSistemas::Ayuda()
 {
-
-}
-
-
-void CriptoSistemas::OpenFolderForDescifrar()
-{
-    dir = QFileDialog::getOpenFileName(this,tr("Select file"),"/home",tr("Files (*.txt);;All files (*.*)"));
+    QPushButton *pushSeleccionar = findChild<QPushButton*>("pushSeleccionar");
+    QPushButton *pushSelecciona = findChild<QPushButton*>("pushSeleccionar1");
     QPushButton *pushDescargar = findChild<QPushButton*>("pushDescargarEn");
     QPushButton *pushDescarga = findChild<QPushButton*>("pushDescargar");
+    if (pushDescargar)
+    {
+        delete pushDescargar;
+    }
     if (pushDescarga)
     {
-        pushDescarga->setVisible(false);
-    }
-    connect(pushDescargar, SIGNAL(clicked()), this, SLOT(SaveFileForDescifrado()));
-}
-
-
-void CriptoSistemas::SaveFileForDescifrado()
-{
-    QString dir_save = QFileDialog::getSaveFileName(0,"Save file",QDir::currentPath(),
-            "Text files (*.txt)",
-                new QString("Text files (*.txt)"));
-    qDebug()<<dir;
-    // Descifrado
-    AutoSeededRandomPool rng;
-    string str;
-    string ruta = dir.toStdString();
-    string save = dir_save.toStdString();
-    FileSource file("keys/privkey.txt", true, new Base64Decoder);
-    FileSource cifrado(ruta.c_str(), true, new StringSink(str));
-    RSAES_OAEP_SHA_Decryptor d(file);
-
-    StringSource ss2(str, true,
-        new PK_DecryptorFilter(rng, d,
-            new FileSink( save.c_str() )
-       ) // PK_DecryptorFilter
-    ); // StringSource
-    qDebug()<<"DesCifrando";
-    dir = "";
-}
+        delete pushDescarga;
+    }
+    if (pushSeleccionar)
+    {
+        delete pushSeleccionar;
+    }
+    if (pushSelecciona)
+    {
+        delete pushSelecciona;
+    }
+    QString bienvenida = "<html><head/><body><p><img src=':/static/cenditel.png' width='110' height='80' style='float: left;'/></p><p align='center'><span style= 'font-size:16pt; font-weight:600; font-style:italic; color:#ff0000;'>Bienvenido</span></p></body></html>";
+    ui->titulo->setText(bienvenida);
+    QString ayuda = "<html><head/><body><p align='justify'><p align='justify'>Una de las herramientas principales para proveer seguridad a la información cuando</p><p align='justify'>se transmite por un canal abierto es la criptografía. La criptografía es una rama</p><p align='justify'>de la matemática que permite transformar la información de manera que su lectura</p><p align='justify'>sea muy difícil si no se posee una clave criptográfica. Es de particular interés,</p><p align='justify'>entonces, para este Centro de Desarrollo e Investigación en Tecnologías Libres-</p><p align='justify'>CENDITEL, dedica parte de su potencial investigativo a estudiar los diferentes </p><p align='justify'>sistemas criptográficos (criptosistemas) existentes, proponer mejoras a los mismos </p><p align='justify'>o incluso, desarrollar soberanamente propuestas alternativas a los ya conocidos.</p><p align='justify'>Es por ello que desde CENDITEL nos hemos propuesto el estudio de un </p><p align='justify'>criptosistema novedoso que puede dar seguridad incluso en un computador cuántico, </p><p align='justify'>si llegare a ser construido. Este estudio se llama Criptosistema de variedad </p><p align='justify'>algebraica, su seguridad se basa en un problema matemático del área de geometría</p><p align='justify'>permitiría ser seguro en el mencionado computador cuántico además de poder ser </p><p align='justify'>utilizado en un computador clásico .</p></p></body></html>";
+    ui->imgCentral->setText(ayuda);
+    ui->centralPage->addWidget(ui->imgCentral, 0,1);
+
+}
Index: interfaz/criptosistemas.ui
===================================================================
--- interfaz/criptosistemas.ui	(revision bd66191c644399ffd99ecbe0eaaf8b60a9b92a9b)
+++ interfaz/criptosistemas.ui	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -245,5 +245,13 @@
     </item>
     <item row="2" column="0" colspan="3">
-     <layout class="QVBoxLayout" name="mensajes"/>
+     <layout class="QVBoxLayout" name="mensajes">
+      <item>
+       <widget class="QLabel" name="flujo_mensajes">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
     </item>
    </layout>
Index: interfaz/descifrados/nuevo.txt
===================================================================
--- interfaz/descifrados/nuevo.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
+++ interfaz/descifrados/nuevo.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -0,0 +1,24 @@
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
Index: interfaz/descifrados/prueba.txt
===================================================================
--- interfaz/descifrados/prueba.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
+++ interfaz/descifrados/prueba.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -0,0 +1,24 @@
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mundo
+hola mun
Index: interfaz/file2.txt
===================================================================
--- interfaz/file2.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
+++ interfaz/file2.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -0,0 +1,11 @@
+­YÊ¹e=àF
+¢ðsò¼2ãé]GKÂH"ÒfHôhI
+M[SNâ3+ö\·êg_Ö^kf[oå'Ã?{QÜå{ë9°wË÷=þsLÉZD~MÄßSýøsLZØ	¾Î¨´~P	'e#¨i­ÃÏ´¶x°~D|ñÔôÄà*éÓW:KÀ«oHæ^
+Ð4!1
+(ç½
+¯Tßn
+J1$:HuÇ"{-®kDd*~º4¤^¦çeÄº-µ6÷¯$z'¸åâS«íìÞµ=ýÆH'MïèÜ)»ïEÊÇtÿ_§cÐ!IwYí\	ø
+2yËÞtÉî¢=ÎÏkVe7ÓýÀ.
+Í&>ÝkÕ9ÜsC/É!ñµ·ñ«bj§`>ÁóeûîÚYZÆ2A?ü]oÖTÔ/¥>
+ñô#;h¯«
+ÞLYRXKXKµ÷Q
Index: interfaz/keys/privkey.txt
===================================================================
--- interfaz/keys/privkey.txt	(revision bd66191c644399ffd99ecbe0eaaf8b60a9b92a9b)
+++ interfaz/keys/privkey.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -1,12 +1,34 @@
-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
+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
+v1XNzTT4Y/Y=
Index: interfaz/keys/pubkey.txt
===================================================================
--- interfaz/keys/pubkey.txt	(revision bd66191c644399ffd99ecbe0eaaf8b60a9b92a9b)
+++ interfaz/keys/pubkey.txt	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -1,3 +1,8 @@
-MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDS8JuheTxOgsRRLpnBUeRKgIE0wDyyurZN
-aPC/UGI3gBjlTaH0Ons59IZ9hwxZIMoS9axOksRom13Ewp9hwnVilqYTETbRwZ+9M3ePT3Cv
-TDm5LenY6pgDCoJiCb8qpyrJUUWlWRwQIk8YZV5Ci1DpCln4D/h5t39Oby6mEsNOdQIBEQ==
+MIIBoDANBgkqhkiG9w0BAQEFAAOCAY0AMIIBiAKCAYEAzoLWBRaS/dwlPn90JBz+sv3BWIMf
+TlnAAsl8peBTfKHyI/iR/oU67TFbP62EEDjNBAn/cYPdaQfNm/bDMAvBsiRqKhBX3n4P2XsK
+pCXB76XRo5UAO9qUNwe/L/WBwyga/X2GPq/FzjnvX06bsML2RxBgUg5YhW1GkQ9A/cY2zhWi
+J50gbz3PpoFmW+sdYTL1XTxHhhSgI7Yt0zgOgI+TaGieHz7o8tNKwbM03DjAy36GP2YdkYfS
+FV7RnZeSNM0r+L6P5v6Sc95CHo6qwu0cdfK8Vsgyry9laGDNIXG8rBPlA+cgMr4A28wTwGl3
+FMfPLFz4rueRy9fRPBbrKbkPGptL7dR657WvXVH6H+X8L8gsZhvjIoe2SmU5XmSHzm1Myjv9
+k9CBxKi8bhA7krvsd9PKqXxVZouVZx7/HYUC/oVsTHkBQkcLALQasyt8LqlGKK8sJ7VqgEdn
+IAkouZ98IiOd8sr+I3pUG9vH5TuEiSTSIdRCldQ7+D5yms3fhFsrAgER
Index: interfaz/ui_criptosistemas.h
===================================================================
--- interfaz/ui_criptosistemas.h	(revision bd66191c644399ffd99ecbe0eaaf8b60a9b92a9b)
+++ interfaz/ui_criptosistemas.h	(revision 99b8c3f464b021f26bb9c236ca6cb9e807ef3978)
@@ -53,4 +53,5 @@
     QPushButton *ayuda;
     QVBoxLayout *mensajes;
+    QLabel *flujo_mensajes;
     QMenuBar *menubar;
     QStatusBar *statusbar;
@@ -191,4 +192,9 @@
         mensajes = new QVBoxLayout();
         mensajes->setObjectName(QStringLiteral("mensajes"));
+        flujo_mensajes = new QLabel(centralwidget);
+        flujo_mensajes->setObjectName(QStringLiteral("flujo_mensajes"));
+
+        mensajes->addWidget(flujo_mensajes);
+
 
         gridLayout->addLayout(mensajes, 2, 0, 1, 3);
@@ -237,4 +243,5 @@
         decifrar->setText(QApplication::translate("CriptoSistemas", "Decifrar texto", 0));
         ayuda->setText(QString());
+        flujo_mensajes->setText(QString());
     } // retranslateUi
 
