public void Should_Encrypt_And_Decrypt()
        {
            IPasswordHasher passwordHasher = new PasswordHasher(CommonHelpers, ValidationHelpers);
            var             plainString    = "Test RSA Encrypt.";

            var encrypted  = passwordHasher.Encrypt(plainString);
            var encrypted1 = passwordHasher.Encrypt(plainString);
            var encrypted2 = passwordHasher.Encrypt(plainString);
            var decrypted  = passwordHasher.Decrypt(encrypted);
            var decrypted1 = passwordHasher.Decrypt(encrypted1);
            var decrypted2 = passwordHasher.Decrypt(encrypted2);

            Assert.NotEqual(encrypted, encrypted1);
            Assert.NotEqual(encrypted1, encrypted2);

            Assert.Equal(plainString, decrypted);
            Assert.Equal(plainString, decrypted1);
            Assert.Equal(plainString, decrypted2);
        }
Exemple #2
0
        /// <inheritdoc/>
        public async Task ConfigureAsync(Smtp smtp)
        {
            Smtp settings = smtp.Clone();

            // smtpOptions has default value
            if (settings.Equals(new()) is false)
            {
                settings.Password        = string.Empty;
                using var passwordHasher = new PasswordHasher();
                settings.Password        = passwordHasher.Decrypt(smtp.Password, settings);

                // Only run if new settings are different
                if (this.smtp.Equals(settings) is false)
                {
                    if (await ConnectAsync(settings))
                    {
                        IsConfigured   = true;
                        this.smtp      = settings;
                        mailboxAddress = new MailboxAddress(settings.Name, settings.Address);
                        logger.LogInformation("Email service was configured successfully.");
                    }
                }
            }