Esempio n. 1
0
        public void TestMd5CorrectCalculating2()
        {
            var result = PostfixPasswordEncryptor.EncryptString(HashType.Md5, "qwerty123", "$1$22222222");

            // php crypt output
            Assert.AreEqual("$1$22222222$RzvaPuLVbLbx2ZZpLHnzm/", result);
        }
Esempio n. 2
0
        public void TestMd5ReplaceDollarInSaltWithComma()
        {
            var dollar_result = PostfixPasswordEncryptor.EncryptString(HashType.Md5, "qwerty123", "$1$$2222222");
            var comma_result  = PostfixPasswordEncryptor.EncryptString(HashType.Md5, "qwerty123", "$1$,2222222");

            Assert.AreEqual(comma_result, dollar_result);
        }
Esempio n. 3
0
        public void TestMd5CorrectCalculating()
        {
            var result = PostfixPasswordEncryptor.EncryptString(HashType.Md5, "12345", "$1$12345678");

            // php crypt output
            Assert.AreEqual("$1$12345678$M1o7XeamKvTv64m7bK9e30", result);
        }
Esempio n. 4
0
        public void TestMd5CorrectWorksWithDollarInSalt()
        {
            var result     = PostfixPasswordEncryptor.EncryptString(HashType.Md5, "qwerty123", "$1$$2222222");
            var pass_parts = result.Split(new[] { '$' }, StringSplitOptions.RemoveEmptyEntries);

            Assert.AreEqual(3, pass_parts.Length);
        }
Esempio n. 5
0
        public void TestMd5HashContainsDollar()
        {
            var pass = "******";

            var result = PostfixPasswordEncryptor.EncryptString(HashType.Md5, pass);

            Assert.IsTrue(result.Contains("$"));
        }
Esempio n. 6
0
        public void TestMd5HashContains3Parts()
        {
            var pass = "******";

            var result     = PostfixPasswordEncryptor.EncryptString(HashType.Md5, pass);
            var pass_parts = result.Split(new[] { '$' }, StringSplitOptions.RemoveEmptyEntries);

            Assert.AreEqual(3, pass_parts.Length);
        }
Esempio n. 7
0
        public void TestMd5HashFormat()
        {
            var pass = "******";

            var result          = PostfixPasswordEncryptor.EncryptString(HashType.Md5, pass);
            var pass_parts      = result.Split(new[] { '$' }, StringSplitOptions.RemoveEmptyEntries);
            var expected_format = String.Format("${0}${1}${2}", pass_parts[0], pass_parts[1], pass_parts[2]);

            Assert.AreEqual(expected_format, result);
        }
Esempio n. 8
0
        public int ChangePassword(string username, string newPassword)
        {
            var query = new SqlUpdate(MailboxTable.TABLE_NAME)
                        .Set(MailboxTable.Columns.PASSWORD, PostfixPasswordEncryptor.EncryptString(HashType.Md5, newPassword))
                        .Where(MailboxTable.Columns.USERNAME, username);

            var result = Db.ExecuteNonQuery(query);

            return(result);
        }
Esempio n. 9
0
 public void TestMd5InvalidSaltFormatThrowsException()
 {
     try
     {
         var pass = "******";
         PostfixPasswordEncryptor.EncryptString(HashType.Md5, pass, "salt");
         Assert.Fail("Exception wasn't throwed");
     }
     catch (ArgumentException ex)
     {
         Assert.AreEqual("Invalid salt format. Should be $1$********", ex.Message);
     }
     catch (Exception)
     {
         Assert.Fail("Invalid esception format");
     }
 }
Esempio n. 10
0
        public int Save(Mailbox mailbox, bool deliver = true)
        {
            var query = new SqlInsert(MailboxTable.TABLE_NAME, true)
                        .InColumnValue(MailboxTable.Columns.USERNAME, mailbox.Login)
                        .InColumnValue(MailboxTable.Columns.NAME, mailbox.Name)
                        .InColumnValue(MailboxTable.Columns.PASSWORD, PostfixPasswordEncryptor.EncryptString(HashType.Md5, mailbox.Password))
                        .InColumnValue(MailboxTable.Columns.MAILDIR, mailbox.Maldir)
                        .InColumnValue(MailboxTable.Columns.LOCAL_PART, mailbox.LocalPart)
                        .InColumnValue(MailboxTable.Columns.DOMAIN, mailbox.Domain)
                        .InColumnValue(MailboxTable.Columns.CREATED, mailbox.Created)
                        .InColumnValue(MailboxTable.Columns.MODIFIED, mailbox.Modified)
                        .InColumnValue(MailboxTable.Columns.ENABLE_IMAP, deliver)
                        .InColumnValue(MailboxTable.Columns.ENABLE_IMAP_SECURED, deliver)
                        .InColumnValue(MailboxTable.Columns.ENABLE_POP, deliver)
                        .InColumnValue(MailboxTable.Columns.ENABLE_POP_SECURED, deliver)
                        .InColumnValue(MailboxTable.Columns.ENABLE_DELIVER, deliver)
                        .InColumnValue(MailboxTable.Columns.ENABLE_LDA, deliver);

            var result = Db.ExecuteNonQuery(query);

            return(result);
        }