// When we get a true CompositionRoot we can move this to that class. We should only require 1 instance of this service at a time public CredentialServiceFacade Build() { var cryptoFromSettings = new CryptoProviderFactoryFromSettings(); var credRepoSerializer = new XmlCredentialPasswordEncryptorDecorator( cryptoFromSettings.Build(), new XmlCredentialRecordSerializer()); var credRepoDeserializer = new XmlCredentialPasswordDecryptorDecorator(new XmlCredentialRecordDeserializer()); var credentialRepoListPath = Path.Combine(SettingsFileInfo.SettingsPath, "credentialRepositories.xml"); var repoListDataProvider = new FileDataProvider(credentialRepoListPath); var repoListLoader = new CredentialRepositoryListLoader( repoListDataProvider, new CredentialRepositoryListDeserializer(credRepoSerializer, credRepoDeserializer)); var repoListSaver = new CredentialRepositoryListSaver(repoListDataProvider); return(new CredentialServiceFacade(Runtime.CredentialProviderCatalog, repoListLoader, repoListSaver)); }
public ICredentialRepository BuildXmlCredentialRepo() { var xmlFileBuilder = new CredRepoXmlFileBuilder(); var xmlFileContent = xmlFileBuilder.Build(CryptographyProvider.Encrypt("someheaderdata", EncryptionKey)); var dataProvider = new InMemoryStringDataProvider(xmlFileContent); var encryptor = new XmlCredentialPasswordEncryptorDecorator( CryptographyProvider, new XmlCredentialRecordSerializer() ); var decryptor = new XmlCredentialPasswordDecryptorDecorator( new XmlCredentialRecordDeserializer() ); return(new XmlCredentialRepository( new CredentialRepositoryConfig(), new CredentialRecordSaver( dataProvider, encryptor ), new CredentialRecordLoader( dataProvider, decryptor ) )); }
public void Setup() { var baseDeserializer = new XmlCredentialRecordDeserializer(); _sut = new XmlCredentialPasswordDecryptorDecorator(baseDeserializer); }