Ejemplo n.º 1
0
        public void EncryptDecryptStringWithGeneratedKey(int keySize)
        {
            string generatedKey  = Aes.GenerateKey(keySize);
            string encryptedData = Aes.EncryptString(DecryptedMessage, generatedKey);

            Assert.NotNull(encryptedData);

            string decryptedData = Aes.DecryptString(encryptedData, generatedKey);

            Assert.NotNull(decryptedData);
            Assert.Equal(DecryptedMessage, decryptedData);
        }
Ejemplo n.º 2
0
        public static bool CheckFtpServeur(Uri serverUri, string ftpUser, string ftpPassword)
        {
            bool result = false;

            if (serverUri.Scheme == Uri.UriSchemeFtp)
            {
                // Get the object used to communicate with the server.
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
                request.Method      = WebRequestMethods.Ftp.ListDirectory;
                request.Credentials = new NetworkCredential(ftpUser, Aes.DecryptString(ftpPassword, Sel.Val));
                try
                {
                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                    response.Close();
                    result = true;
                }
                catch { }
            }
            return(result);
        }
Ejemplo n.º 3
0
        private static void BackupSwitch()
        {
            bool   backupStatus = true;
            String pidFileName  = conf["PathFileLog"] + "/pidfile";

            // pidFile n'existe pas, on le créé et on continu
            string fileLogFinal = conf["PathFileLog"] + "/" + conf["FileLogFinal"];

            // test si le fichier fileLogFinal est inferieur a une taille max
            if (File.Exists(@fileLogFinal))
            {
                long lengthFile = new System.IO.FileInfo(@fileLogFinal).Length;
                long sizeLog    = Convert.ToInt32(conf["SizeLog"]);
                if (lengthFile >= sizeLog * 1024)
                {
                    LogToFile.ArchiveLog(conf["PathFileLog"], conf["FileLogFinal"]);
                }
            }

            // logtemp exist => delete and create
            string fileLogTemp = conf["PathFileLog"] + "/" + conf["FileLogTemp"];

            if (File.Exists(@fileLogTemp))
            {
                File.Delete(@fileLogTemp);
            }
            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], $"{new String('+', 10)} debut de la sauvegarde le " +
                               $"{DateTime.Now.ToLongDateString()} à {DateTime.Now.ToLongTimeString()} ");

            // pidFile n'existe pas, on le créé et on continu
            using (StreamWriter pidFile = File.CreateText(pidFileName))
            {
                pidFile.Close();
            }

            // validation du serveur ftp, on sauvegarde les switchs
            Uri uri = new Uri("ftp://" + conf["FtpAdresseIp"]);

            if (Check.CheckFtpServeur(uri, conf["FtpUser"], conf["FtpPassword"]))
            {
                // validation des mots de passe passwordSwitch et passwordEn
                string passwordSwitch = Aes.DecryptString(conf["PasswordSwitch"], Sel.Val);
                string passwordEn     = Aes.DecryptString(conf["PasswordEn"], Sel.Val);
                // si le retour de la fonction encrypt est une chaine vide, on sort
                if (passwordSwitch.Equals("") || passwordEn.Equals(""))
                {
                    LogToFile.WriteLog(conf["pathFileLog"], conf["FileLogTemp"], "ERREUR : mot de passe incorect");
                    if (backupStatus)
                    {
                        backupStatus = false;
                    }
                }
                // sinon on continu
                else
                {
                    // affecte la section des switchs
                    ListeSwitchSection sectionSwitch = (ListeSwitchSection)ConfigurationManager.GetSection("ListeSwitchsSection");

                    // log du demarrage de la sauvegarde
                    foreach (Switch switchElement in sectionSwitch.Listes)
                    {
                        // on recupere le nom du switch et son adresse IP
                        string switchName = switchElement.SwitchName;
                        string switchIp   = switchElement.SwitchIp;
                        // validation de l'adresse du switch
                        if (!Check.VerifAdresseIp(switchIp))
                        {
                            // si on valide on sort
                            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], "Switch " + switchName + "(" + switchIp + ")" + " : Erreur adresse Ip \r\n");
                            if (backupStatus)
                            {
                                backupStatus = false;
                            }
                        }
                        // test ping switch ne repond pas
                        else if (!Check.PingIp(switchIp))
                        {
                            // ping non  valide on sort
                            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], "Switch " + switchName + "(" + switchIp + ")" + " : ne repond pas au ping \r\n");
                            if (backupStatus)
                            {
                                backupStatus = false;
                            }
                        }
                        // données validées, on envoi toutes les info sur l'instance cisco
                        else
                        {
                            LogToFile.WriteLog(conf["pathFileLog"], conf["FileLogTemp"], $"{ new string(' ', 11)}{ new string('-', 10)}" +
                                               " debut sauvegarde de " + switchName + "(" + switchIp + ")");
                            Cisco cisco = new Cisco(conf, switchName, switchIp, Sel.Val);
                            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], $"{new String(' ', 10)} etat du backup de sauvegarde du switch => " + cisco.BackupState);
                            LogToFile.WriteLog(conf["pathFileLog"], conf["FileLogTemp"], $"{ new string(' ', 11)}{ new string('-', 10)}" +
                                               " fin sauvegarde de " + switchName + "(" + switchIp + ")\r\n");

                            //Console.WriteLine("etat du backup de sauvegarde du switch => " + cisco.BackupState);
                            if (backupStatus)
                            {
                                backupStatus = cisco.BackupState;
                            }
                        }
                    }
                }
            }
            // serveur ftp non valide
            else
            {
                LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], "Erreur serveur Ftp : " + conf["FtpAdresseIp"] + (char)13);
                if (backupStatus)
                {
                    backupStatus = false;
                }
            }

            // enregistrement de l'etat du backup dans le log
            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], "Etat du backup general => " + backupStatus);

            //stop timestamp
            LogToFile.WriteLog(conf["PathFileLog"], conf["FileLogTemp"], $"{new String('+', 10)} " +
                               $"fin de la sauvegarde le {DateTime.Now.ToLongDateString()} à {DateTime.Now.ToLongTimeString()} ");

            // recuperation de la liste des @ mails
            Hashtable sectionListeMail = (Hashtable)ConfigurationManager.GetSection("ListeMail");

            // envoi du mail de log
#if !DEBUG
            SendMail sendMail = new SendMail(sectionListeMail, conf["PathFileLog"], conf["FileLogTemp"], conf["SmtpServeur"], conf["SenderFrom"], backupStatus);
#endif
            // copie du log temporaire dans le log final
            LogToFile.AppendShortToFinalLog(conf["PathFileLog"], conf["fileLogTemp"], conf["FileLogFinal"]);

            //if (backupStatus)
            File.Delete(pidFileName);
        }