コード例 #1
0
        public override int Start()
        {
            int tests = 0;
            DataProtectionCryptoServiceProvider dp = new DataProtectionCryptoServiceProvider();

            tests += TestDP(dp, Encoding.ASCII.GetBytes(""));
            tests += TestDP(dp, Encoding.ASCII.GetBytes("a"));
            tests += TestDP(dp, Encoding.ASCII.GetBytes("Hello World!"));
            tests += TestDP(dp, Encoding.ASCII.GetBytes("DataProtectionCryptoServiceProvider"));
            tests += TestDP(dp, new byte[200]);
            return(tests);
        }
コード例 #2
0
 protected int TestDP(DataProtectionCryptoServiceProvider dp, byte[] data)
 {
     byte[] entropy = new byte[m_Random.Next(5, 123)];
     m_Random.NextBytes(entropy);
     byte[] enc, dec;
     // test without entropy
     try {
         enc = dp.ProtectData(ProtectionType.CurrentUser, data);
         dec = dp.UnprotectData(enc);
         if (!ArrayEquals(dec, data))
         {
             AddError("DP-T01");
         }
     } catch {
         AddError("DP-T02");
     }
     try {
         enc = dp.ProtectData(ProtectionType.LocalMachine, data);
         dec = dp.UnprotectData(enc);
         if (!ArrayEquals(dec, data))
         {
             AddError("DP-T03");
         }
     } catch {
         AddError("DP-T04");
     }
     // test with entropy
     dp.Entropy = entropy;
     try {
         enc = dp.ProtectData(ProtectionType.CurrentUser, data);
         dec = dp.UnprotectData(enc);
         if (!ArrayEquals(dec, data))
         {
             AddError("DP-T05");
         }
     } catch {
         AddError("DP-T06");
     }
     try {
         enc = dp.ProtectData(ProtectionType.LocalMachine, data);
         dec = dp.UnprotectData(enc);
         if (!ArrayEquals(dec, data))
         {
             AddError("DP-T07");
         }
     } catch {
         AddError("DP-T08");
     }
     // test MAC
     try {
         enc = dp.ProtectData(ProtectionType.LocalMachine, data);
         enc[enc.Length / 2] ^= 0xFF;                 // corrupt a byte
         dec = dp.UnprotectData(enc);
         AddError("DP-T09");
     } catch (CryptographicException) {
     } catch {
         AddError("DP-T10");
     }
     dp.Entropy = null;
     return(10);
 }