Ejemplo n.º 1
0
        public void Encryption_Decryption()
        {
            FileCredentialRepository fileCredentialRepository;
            EncryptedCredential      encryptedCredential;
            const string             filePath = "foo.json";
            const string             userName = "******";
            const string             password = "******";
            string decryptedUserName;
            string decryptedPassword;

            try
            {
                fileCredentialRepository = new FileCredentialRepository(filePath);

                encryptedCredential = fileCredentialRepository.Encrypt(userName, password);

                encryptedCredential.AssertValid();
                Assert.That(encryptedCredential, Has.Property("UserName").Not.EqualTo(userName));
                Assert.That(encryptedCredential, Has.Property("Password").Not.EqualTo(password));

                fileCredentialRepository.Decrypt(encryptedCredential, out decryptedUserName, out decryptedPassword);

                Assert.That(decryptedUserName, Is.EqualTo(userName));
                Assert.That(decryptedPassword, Is.EqualTo(password));
            }
            finally
            {
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
            }
        }
Ejemplo n.º 2
0
        public void Ctor()
        {
            FileCredentialRepository fileCredentialRepository;
            const string             filePath = "foo.json";

            fileCredentialRepository = new FileCredentialRepository(filePath);
            Assert.That(
                fileCredentialRepository,
                Has.Property("FilePath").EqualTo(filePath));
            Assert.That(
                fileCredentialRepository,
                Has.Property("Scope").EqualTo(DataProtectionScope.CurrentUser));
        }
Ejemplo n.º 3
0
        public void Save_Two_Servers_Load()
        {
            FileCredentialRepository fileCredentialRepository;
            const string             filePath  = "foo.json";
            const string             server1   = "server";
            const string             userName1 = "userName";
            const string             password1 = "password";
            const string             server2   = "server2";
            const string             userName2 = "userName2";
            const string             password2 = "password2";
            string loadedUserName;
            string loadedPassword;

            try
            {
                DeleteFile(filePath);

                fileCredentialRepository = new FileCredentialRepository(filePath);

                Assert.That(fileCredentialRepository.Contains(server1), Is.False,
                            "No existing credentials for 1");
                Assert.That(fileCredentialRepository.Contains(server2), Is.False,
                            "No existing credentials for 2");

                fileCredentialRepository.Save(server1, userName1, password1);

                Assert.That(fileCredentialRepository.Contains(server1), Is.True,
                            "Credentials not saved after Save for 1");
                Assert.That(fileCredentialRepository.Contains(server2), Is.False,
                            "Credentials saved after Save for 1 only");

                fileCredentialRepository.Save(server2, userName2, password2);

                Assert.That(fileCredentialRepository.Contains(server1), Is.True,
                            "Credentials not saved after Save for 1 and 2");
                Assert.That(fileCredentialRepository.Contains(server2), Is.True,
                            "Credentials not saved after Save for 2 and 2");

                fileCredentialRepository.Load(server1, out loadedUserName, out loadedPassword);

                Assert.That(fileCredentialRepository.Contains(server1), Is.True,
                            "Credentials not saved after load");
                Assert.That(loadedUserName, Is.EqualTo(userName1));
                Assert.That(loadedPassword, Is.EqualTo(password1));
            }
            finally
            {
                DeleteFile(filePath);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Entry point.
        /// </summary>
        /// <param name="args">
        /// Command line args.
        /// </param>
        /// <returns>
        /// Program return value.
        /// </returns>
        private static int Main(string[] args)
        {
            int result = ExitFailure;
            ICredentialRepository credentialRepository = new FileCredentialRepository();

            try
            {
                Parser.Default
                .ParseArguments <NotFalsePositiveReportOptions, RawScanResultXmlOptions, SaveCredentialsOptions, RawScanResultCsvOptions>(args)
                .WithParsed <NotFalsePositiveReportOptions>(options =>
                {
                    result = RunReport(new NotFalsePositiveResultsReportRunner(), GetReportResultFormatter(options),
                                       credentialRepository, options);
                })
                .WithParsed <RawScanResultXmlOptions>(options =>
                {
                    result = RunReport(new RawScanXmlReportRunner(), new TextStringFormatter(),
                                       credentialRepository, options);
                })
                .WithParsed <RawScanResultCsvOptions>(options =>
                {
                    result = RunReport(new RawScanCsvReportRunner(), new TextStringFormatter(),
                                       credentialRepository, options);
                })
                .WithParsed <SaveCredentialsOptions>(options =>
                {
                    result = SaveCredentials(credentialRepository, options.Server, options.UserName, options.Password);
                })
                .WithNotParsed(
                    errors =>
                {
                    // Do nothing
                });
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
            }

            return(result);
        }
Ejemplo n.º 5
0
        public void Save_Load()
        {
            FileCredentialRepository fileCredentialRepository;
            const string             filePath = "foo.json";
            const string             server   = "server";
            const string             userName = "******";
            const string             password = "******";
            string loadedUserName;
            string loadedPassword;

            try
            {
                DeleteFile(filePath);

                fileCredentialRepository = new FileCredentialRepository(filePath);

                Assert.That(fileCredentialRepository.Contains(server), Is.False,
                            "No existing credentials");

                fileCredentialRepository.Save(server, userName, password);

                Assert.That(fileCredentialRepository.Contains(server), Is.True,
                            "Credentials not saved after Save");

                fileCredentialRepository.Load(server, out loadedUserName, out loadedPassword);

                Assert.That(fileCredentialRepository.Contains(server), Is.True,
                            "Credentials not saved after load");
                Assert.That(loadedUserName, Is.EqualTo(userName));
                Assert.That(loadedPassword, Is.EqualTo(password));
            }
            finally
            {
                DeleteFile(filePath);
            }
        }