Пример #1
0
        /// <summary>
        /// Exporte le fichier chiffré directement
        /// </summary>
        /// <returns>la liste des erreurs</returns>
        public async Task <string> ExporterKwi()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                if (!StringUtils.GetExtension(Fichier.Name).Equals(FormatChoisi.Format))
                {
                    await Fichier.RenameAsync(Fichier.Name + "." + FormatChoisi.Format);
                }

                var xs = new XmlSerializer(typeof(Dossier));
                using (var wr = new StringWriter())
                {
                    xs.Serialize(wr, SelectedDossier);
                    var dataToSave = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), MdpCypher, MdpCypher);
                    await FileIO.WriteBytesAsync(Fichier, dataToSave);

                    //anciennement pour exporter tout le fichier
                    //await FileIO.WriteTextAsync(fichier, wr.ToString(), Windows.Storage.Streams.UnicodeEncoding.Utf8);
                }

                //await FileIO.WriteBytesAsync(fichier, await ContexteAppli.fichierPassword.lireByteArray());
            }
            return(retour);
        }
Пример #2
0
        /// <summary>
        /// Sauvegarde le fichier contenant les informations de comptes
        /// </summary>
        private static async Task SaveFile()
        {
            var xs = new XmlSerializer(typeof(RoamingCompteModel));
            var wr = new StringWriter();

            xs.Serialize(wr, _roamingCompte);
            var data = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), ContexteStatic.CleChiffrement,
                                                              ContexteStatic.CleChiffrement);
            await _roamingCompteFile.Ecrire(data, CreationCollisionOption.ReplaceExisting);
        }
Пример #3
0
        /// <summary>
        /// Serialize les mots de passe, chiffre en AES à partir du mot de passe dans ce contexte et écrit dans un fichier en roaming
        /// </summary>
        public static async Task Save()
        {
            //serialization
            var xs = new XmlSerializer(typeof(Dossier));
            var wr = new StringWriter();

            xs.Serialize(wr, ContexteAppli.DossierMere);
            //chiffrement
            var dataToSave = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), Password, Password);
            //écriture
            await Fichier.Ecrire(dataToSave, CreationCollisionOption.ReplaceExisting);
        }
Пример #4
0
        /// <summary>
        /// Sauvegarde le fichier de récupération de mot de passe
        /// </summary>
        /// <param name="image">l'image et sauvegarder</param>
        /// <param name="listePoint">la liste des points et sauvegarder</param>
        public static async Task Save(byte[] image, List <Point> listePoint)
        {
            var element = new ImageUnlock
            {
                Image      = image,
                ListePoint = listePoint
            };
            var xs = new XmlSerializer(typeof(ImageUnlock));
            var wr = new StringWriter();

            xs.Serialize(wr, element);
            var dataToSave = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), password, salt);
            await Fichier.Ecrire(dataToSave, CreationCollisionOption.ReplaceExisting);
        }
Пример #5
0
        /// <summary>
        /// Partage les mots de passe dans un fichier
        /// </summary>
        /// <returns>les erreurs si il y en a</returns>
        public async Task <string> PartageFichier()
        {
            var erreur = Validate();

            if (string.IsNullOrWhiteSpace(erreur))
            {
                //serialization
                var xs = new XmlSerializer(typeof(ObservableCollection <MotDePasse>));
                var wr = new StringWriter();
                xs.Serialize(wr, ListeMotDePasseSelected);
                //chiffrement
                var dataToSave = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), CryptKey, CryptSalt);

                //écriture
                await FileIO.WriteBytesAsync(Fichier, dataToSave);

                erreur = ResourceLoader.GetForCurrentView("Errors").GetString("infoFichierGenere");
            }

            return(erreur);
        }
Пример #6
0
        /// <summary>
        /// exporte les données
        /// </summary>
        /// <returns>true si ok</returns>
        public async Task <bool> Sauvegarde()
        {
            try
            {
                var data = new SauvegardeModel
                {
                    Application =
                    {
                        IdLangue     = await _applicationBusiness.GetLangueAppli(),
                        IdBackGround = await _applicationBusiness.GetIdCouleurBackGround()
                    },
                    ListeCategorie     = await _categorieBusiness.GetCategoriePerso(),
                    ListeSousCategorie = await _categorieBusiness.GetSousCategoriesPerso(),
                    ListeBanque        = await _compteBusiness.GetResumeCompte(),
                    ListeEcheancier    = await _echeancierBusiness.GetEcheancier(),
                    ListeMouvement     = await _mouvementBusiness.GetListeMouvement(),
                    ListeSoldeInit     = await _compteBusiness.GetAllSoldeInitial()
                };

                var xs = new XmlSerializer(typeof(SauvegardeModel));
                var wr = new StringWriter();
                xs.Serialize(wr, data);

                if (IsMdp)
                {
                    var dataCrypt = CryptUtils.AesEncryptStringToByteArray(wr.ToString(), MotDePasse, MotDePasse);
                    await FileIO.WriteBytesAsync(Fichier, dataCrypt);
                }
                else
                {
                    await FileIO.WriteTextAsync(Fichier, wr.ToString(), Windows.Storage.Streams.UnicodeEncoding.Utf8);
                }
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }