public void SetUp()
 {
     provider = new DpapiSymmetricCryptoProviderDataManageabilityProvider();
     machineKey = new MockRegistryKey(true);
     userKey = new MockRegistryKey(true);
     configurationObject = new DpapiSymmetricCryptoProviderData();
 }
コード例 #2
0
 public void SetUp()
 {
     provider            = new DpapiSymmetricCryptoProviderDataManageabilityProvider();
     machineKey          = new MockRegistryKey(true);
     userKey             = new MockRegistryKey(true);
     configurationObject = new DpapiSymmetricCryptoProviderData();
 }
コード例 #3
0
        /// <summary>
        /// <para>Decrypts cipher text using DPAPI.</para>
        /// </summary>
        /// <param name="cipherText"><para>The cipher text for which you want to decrypt.</para></param>
        /// <returns><para>The resulting plain text.</para></returns>
        /// <seealso cref="ISymmetricCryptoProvider.Decrypt"/>
        public byte[] Decrypt(byte[] cipherText)
        {
            DpapiSymmetricCryptoProviderData data = GetDpapiSymmetricCryptoProviderDataFromCursor();

            byte[] result = DpapiCrypto.Decrypt(cipherText, data.DataProtectionMode.Entropy);
            SecurityCryptoSymmetricDecryptionEvent.Fire(string.Empty);
            return(result);
        }
コード例 #4
0
 public void SetUp()
 {
     provider            = new ConfigurationElementManageabilityProviderWrapper(new DpapiSymmetricCryptoProviderDataManageabilityProvider());
     machineKey          = new MockRegistryKey(true);
     userKey             = new MockRegistryKey(true);
     wmiSettings         = new List <ConfigurationSetting>();
     configurationObject = new DpapiSymmetricCryptoProviderData();
 }
            public EncryptUsingDPAPIProviderNamedBuilder(IConfigureCryptography context, string dpapiProviderName)
                : base(context)
            {
                providerData = new DpapiSymmetricCryptoProviderData
                {
                    Name = dpapiProviderName
                };

                base.CryptographySettings.SymmetricCryptoProviders.Add(providerData);
            }
コード例 #6
0
            public override SymmetricCryptoProviderData GetSymmetricCryptoProviderData(string instanceName)
            {
                DpapiSymmetricCryptoProviderData data = new DpapiSymmetricCryptoProviderData();

                data.Name = "name";
                DpapiSettingsData settingsData = new DpapiSettingsData();

                settingsData.Mode       = DpapiStorageMode.User;
                data.DataProtectionMode = settingsData;
                return(data);
            }
コード例 #7
0
        public void Properties()
        {
            Guid appID = Guid.NewGuid();
            CryptographySettings settings = new CryptographySettings();

            KeyedHashAlgorithmProviderData hashData = new KeyedHashAlgorithmProviderData();
            hashData.Name = "name";
            settings.HashProviders.Add(hashData);
            Assert.AreEqual(1, settings.HashProviders.Count, "hash collection");

            DpapiSymmetricCryptoProviderData symmData = new DpapiSymmetricCryptoProviderData();
            symmData.Name = "name";
            settings.SymmetricCryptoProviders.Add(symmData);
            Assert.AreEqual(1, settings.SymmetricCryptoProviders.Count, "symmetric collection");
        }
コード例 #8
0
        public void DpapiSymmetricCryptoProviderDataTest()
        {
            DataProtectionScope scope = DataProtectionScope.LocalMachine;
            string name = "some name";

            DpapiSymmetricCryptoProviderData data = new DpapiSymmetricCryptoProviderData();
            data.Name = name;
            data.Scope = scope;

            Assert.AreEqual(name, data.Name);
            Assert.AreEqual(scope, data.Scope);

            DpapiSymmetricCryptoProviderNode node = new DpapiSymmetricCryptoProviderNode(data);
            Assert.AreEqual(name, node.Name);
            Assert.AreEqual(scope, node.ProtectionScope);
        }
コード例 #9
0
        public void Properties()
        {
            Guid appID = Guid.NewGuid();
            CryptographySettings settings = new CryptographySettings();

            KeyedHashAlgorithmProviderData hashData = new KeyedHashAlgorithmProviderData();

            hashData.Name = "name";
            settings.HashProviders.Add(hashData);
            Assert.AreEqual(1, settings.HashProviders.Count, "hash collection");

            DpapiSymmetricCryptoProviderData symmData = new DpapiSymmetricCryptoProviderData();

            symmData.Name = "name";
            settings.SymmetricCryptoProviders.Add(symmData);
            Assert.AreEqual(1, settings.SymmetricCryptoProviders.Count, "symmetric collection");
        }
コード例 #10
0
        public void DpapiSymmetricCryptoProviderDataTest()
        {
            DataProtectionScope scope = DataProtectionScope.LocalMachine;
            string name = "some name";

            DpapiSymmetricCryptoProviderData data = new DpapiSymmetricCryptoProviderData();

            data.Name  = name;
            data.Scope = scope;

            Assert.AreEqual(name, data.Name);
            Assert.AreEqual(scope, data.Scope);

            DpapiSymmetricCryptoProviderNode node = new DpapiSymmetricCryptoProviderNode(data);

            Assert.AreEqual(name, node.Name);
            Assert.AreEqual(scope, node.ProtectionScope);
        }
コード例 #11
0
        public void Properties()
        {
            string           name = "name";
            DpapiStorageMode mode = DpapiStorageMode.User;

            byte[] machineEntropy = new byte[16];
            CryptographyUtility.GetRandomBytes(machineEntropy);

            DpapiSymmetricCryptoProviderData data = new DpapiSymmetricCryptoProviderData();

            data.Name = name;

            Assert.AreEqual(name, data.Name, "name");
            Assert.AreEqual(typeof(DpapiSymmetricCryptoProvider).AssemblyQualifiedName, data.TypeName, "type");

            DpapiSettingsData dpapiData = new DpapiSettingsData();

            dpapiData.Mode          = mode;
            dpapiData.Entropy       = machineEntropy;
            data.DataProtectionMode = dpapiData;
            Assert.AreEqual(mode, data.DataProtectionMode.Mode, "Mode");
            Assert.IsTrue(CryptographyUtility.CompareBytes(machineEntropy, dpapiData.Entropy), "Entropy");
        }
コード例 #12
0
 /// <summary>
 /// Constructs a new instance
 /// with the corresponding runtime configuration data.
 /// </summary>
 /// <param name="data">The corresponding runtime configuration data.</param>
 public DpapiSymmetricCryptoProviderNode(DpapiSymmetricCryptoProviderData data) : base(data)
 {
     scope = data.Scope;
 }
コード例 #13
0
 /// <summary>
 /// Constructs a new instance
 /// with the corresponding runtime configuration data.
 /// </summary>
 /// <param name="data">The corresponding runtime configuration data.</param>
 public DpapiSymmetricCryptoProviderNode(DpapiSymmetricCryptoProviderData data) : base(data)
 {
     this.data = data;
 }
コード例 #14
0
 /// <summary>
 /// Constructs a new instance 
 /// with the corresponding runtime configuration data.
 /// </summary>
 /// <param name="data">The corresponding runtime configuration data.</param>
 public DpapiSymmetricCryptoProviderNode(DpapiSymmetricCryptoProviderData data) : base(data)
 {
     scope = data.Scope;
 }
コード例 #15
0
 /// <summary>
 /// Constructs a new instance 
 /// with the corresponding runtime configuration data.
 /// </summary>
 /// <param name="data">The corresponding runtime configuration data.</param>
 public DpapiSymmetricCryptoProviderNode(DpapiSymmetricCryptoProviderData data)
     : base(data)
 {
     this.data = data;
 }