private void LoadKeyAlgorithmPair() { FileKeyAlgorithmPairStorageProvider provider = GetCurrentProvider(); if (provider.Load() == null) { throw new NullReferenceException(); } }
private bool SaveKeyAlgorithmPairWithNewDapiSettings(DpapiSettings newDpapiSettings, DpapiSettings originalDpapiSettings) { ConfigurationContext context = GetContext(); ConfigurationSettings settings = context.GetMetaConfiguration(); FileKeyAlgorithmPairStorageProvider loadProvider = new FileKeyAlgorithmPairStorageProvider(); FileKeyAlgorithmPairStorageProviderData loadData = new FileKeyAlgorithmPairStorageProviderData( SR.DefaultFileKeyAlgorithmStorageProviderNodeName, currentNode.File, GetDpapiSettingsData(originalDpapiSettings)); settings.KeyAlgorithmPairStorageProviderData = loadData; loadProvider.ConfigurationName = loadData.Name; loadProvider.Initialize(new RuntimeConfigurationView(context)); FileKeyAlgorithmPairStorageProvider saveProvider = new FileKeyAlgorithmPairStorageProvider(); FileKeyAlgorithmPairStorageProviderData saveData = new FileKeyAlgorithmPairStorageProviderData( SR.DefaultFileKeyAlgorithmStorageProviderNodeName, currentNode.File, GetDpapiSettingsData(newDpapiSettings)); settings.KeyAlgorithmPairStorageProviderData = saveData; saveProvider.ConfigurationName = saveData.Name; saveProvider.Initialize(new RuntimeConfigurationView(context)); try { KeyAlgorithmPair key = loadProvider.Load(); saveProvider.Save(key); } catch (Exception ex) { MessageBox.Show( SR.FileKeyAlgorithmDpapiSettingsEditorUnableToSaveNewDpapiSettingsErrorMessage(ex.Message), SR.FileKeyAlgorithmDpapiSettingsEditorUnableToSaveNewDpapiSettingsCaption, MessageBoxButtons.OK, MessageBoxIcon.Error ); return(false); } return(true); }
private void SaveAndLoad(RuntimeConfigurationView configurationView) { FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider(); provider.Initialize(configurationView); provider.Save(DefaultKey); KeyAlgorithmPair key = provider.Load(); Assert.IsNotNull(key); Assert.AreEqual(DefaultKey.AlgorithmTypeName, key.AlgorithmTypeName); Assert.IsTrue(CryptographyUtility.CompareBytes(DefaultKey.Key, key.Key)); FileKeyAlgorithmPairStorageProviderData data = (FileKeyAlgorithmPairStorageProviderData)configurationView.GetKeyAlgorithmPairStorageProviderData(); // If protected, ensure it's protected properly if (null != data.DpapiSettings) { using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { BinaryFormatter formatter = new BinaryFormatter(); bool deserialized = true; try { KeyAlgorithmPair deserializedKey = (KeyAlgorithmPair)formatter.Deserialize(fs); Assert.IsNotNull(deserializedKey); } catch { deserialized = false; } // Shouldn't deserialize if it's DPAPI protected Assert.IsFalse(deserialized); } } }
private void SaveAndLoad(RuntimeConfigurationView configurationView) { FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider(); provider.Initialize(configurationView); provider.Save(DefaultKey); KeyAlgorithmPair key = provider.Load(); Assert.IsNotNull(key); Assert.AreEqual(DefaultKey.AlgorithmTypeName, key.AlgorithmTypeName); Assert.IsTrue(CryptographyUtility.CompareBytes(DefaultKey.Key, key.Key)); FileKeyAlgorithmPairStorageProviderData data = (FileKeyAlgorithmPairStorageProviderData)configurationView.GetKeyAlgorithmPairStorageProviderData(); // If protected, ensure it's protected properly if (null != data.DpapiSettings) { using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { BinaryFormatter formatter = new BinaryFormatter(); bool deserialized = true; try { KeyAlgorithmPair deserializedKey = (KeyAlgorithmPair)formatter.Deserialize(fs); Assert.IsNotNull(deserializedKey); } catch { deserialized = false; } // Shouldn't deserialize if it's DPAPI protected Assert.IsFalse(deserialized); } } }