Пример #1
0
        public async Task <IActionResult> generar(int p, int q)
        {
            string       rutaPublic  = $"./keys/public.key";
            string       rutaPrivate = $"./keys/private.key";
            string       rutaZip     = $"./keys/keys.zip";
            FileStream   publicKey   = new FileStream(rutaPublic, FileMode.OpenOrCreate, FileAccess.Write);
            FileStream   privateKey  = new FileStream(rutaPrivate, FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter pblc        = new StreamWriter(publicKey);
            StreamWriter prvt        = new StreamWriter(privateKey);

            try
            {
                Cifrado       llaves = new Cifrado();
                List <string> keys   = llaves.generarClaves(p, q);
                pblc.Write(keys[0]);
                pblc.Close();
                prvt.Write(keys[1]);
                prvt.Close();

                using (var file = ZipFile.Open(rutaZip, ZipArchiveMode.Create))
                {
                    file.CreateEntryFromFile(rutaPublic, Path.GetFileName(rutaPublic));
                    file.CreateEntryFromFile(rutaPrivate, Path.GetFileName(rutaPrivate));
                }

                System.IO.File.Delete(rutaPublic);
                System.IO.File.Delete(rutaPrivate);

                return(StatusCode(200));
            }
            catch
            {
                return(StatusCode(500));
            }
        }