Click here to Skip to main content
15,917,328 members
Home / Discussions / C#
   

C#

 
GeneralRe: Uniqueness, authentication, licensing oh my Pin
askey6-Dec-07 17:05
askey6-Dec-07 17:05 
GeneralFile (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 8:21
professionalDaveyM696-Dec-07 8:21 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
led mike6-Dec-07 8:57
led mike6-Dec-07 8:57 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 9:03
professionalDaveyM696-Dec-07 9:03 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Ennis Ray Lynch, Jr.6-Dec-07 9:12
Ennis Ray Lynch, Jr.6-Dec-07 9:12 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 9:23
professionalDaveyM696-Dec-07 9:23 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
led mike6-Dec-07 9:49
led mike6-Dec-07 9:49 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 11:39
professionalDaveyM696-Dec-07 11:39 
I ended up with this - a slight variation on the examle given in MSDN.

class CryptoStreamEncryption
    {
        private static byte[] Key = ASCIIEncoding.ASCII.GetBytes(Constants.Misc.MyKey);
        private static byte[] IV = ASCIIEncoding.ASCII.GetBytes(Constants.Misc.MyKey);

        public static void Encrypt(XmlDocument ThisDocument, string FullPath)
        {
            try
            {
                FileStream fStream = File.Open(FullPath, FileMode.Create);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream, RijndaelAlg.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
                StreamWriter sWriter = new StreamWriter(cStream);
                try
                {
                    sWriter.WriteLine(ThisDocument.OuterXml);
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: {0}", e.Message);
                }
                finally
                {
                    sWriter.Close();
                    cStream.Close();
                    fStream.Close();
                }
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("A file error occurred: {0}", e.Message);
            }

        }

        public static XmlDocument Decrypt(string FullPath)
        {
            XmlDocument ThisDocument = new XmlDocument();
            string val = null;
            try
            {
                FileStream fStream = File.Open(FullPath, FileMode.Open);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream, RijndaelAlg.CreateDecryptor(Key, IV), CryptoStreamMode.Read);
                StreamReader sReader = new StreamReader(cStream);
                try
                {
                    val = sReader.ReadLine();
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: {0}", e.Message);
                }
                finally
                {
                    sReader.Close();
                    cStream.Close();
                    fStream.Close();
                }
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("A file error occurred: {0}", e.Message);
            }
            catch (System.IO.FileLoadException e)
            {
                Console.WriteLine("A file load error occurred: {0}", e.Message);
            }
            catch (System.IO.FileNotFoundException e)
            {
                Console.WriteLine("A file not found error occurred: {0}", e.Message);
            }
            if (!(val == null))
            {
                ThisDocument.LoadXml(val);
            }
            return ThisDocument;
        }
    }

GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Skippums7-Dec-07 5:36
Skippums7-Dec-07 5:36 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM699-Dec-07 23:43
professionalDaveyM699-Dec-07 23:43 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Skippums10-Dec-07 4:34
Skippums10-Dec-07 4:34 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM6910-Dec-07 5:08
professionalDaveyM6910-Dec-07 5:08 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Skippums10-Dec-07 5:58
Skippums10-Dec-07 5:58 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM6910-Dec-07 10:02
professionalDaveyM6910-Dec-07 10:02 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Skippums6-Dec-07 9:16
Skippums6-Dec-07 9:16 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Ennis Ray Lynch, Jr.6-Dec-07 9:19
Ennis Ray Lynch, Jr.6-Dec-07 9:19 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
Skippums6-Dec-07 9:56
Skippums6-Dec-07 9:56 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 11:18
professionalDaveyM696-Dec-07 11:18 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
ekynox6-Dec-07 9:24
ekynox6-Dec-07 9:24 
GeneralRe: File (XmlDocument) Encryption / Decryption improvements Pin
DaveyM696-Dec-07 11:19
professionalDaveyM696-Dec-07 11:19 
GeneralDatabinding not updating Business Object property Pin
Bert delaVega6-Dec-07 7:32
Bert delaVega6-Dec-07 7:32 
GeneralRe: Databinding not updating Business Object property Pin
darkelv6-Dec-07 16:36
darkelv6-Dec-07 16:36 
GeneralRe: Databinding not updating Business Object property Pin
Bert delaVega7-Dec-07 11:04
Bert delaVega7-Dec-07 11:04 
GeneralLINQ Question Pin
martin_hughes6-Dec-07 7:10
martin_hughes6-Dec-07 7:10 
GeneralRe: LINQ Question Pin
DaveyM696-Dec-07 8:25
professionalDaveyM696-Dec-07 8:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.