/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }