summary refs log tree commit diff
path: root/crypto/test/src
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2018-04-17 11:40:43 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2018-04-17 11:40:43 +0700
commit97f8a8a0975a8ae356f341dd15e97c4661aecfb2 (patch)
tree61928e7cd8276b48363a0ffe378bc8a23e720b49 /crypto/test/src
parentChange CCM test to use IV of 12 bytes (from bc-java). (diff)
downloadBouncyCastle.NET-ed25519-97f8a8a0975a8ae356f341dd15e97c4661aecfb2.tar.xz
Updated OpenBsdBCrypt to support version 2y.
Diffstat (limited to 'crypto/test/src')
-rw-r--r--crypto/test/src/crypto/test/OpenBsdBCryptTest.cs55
1 files changed, 51 insertions, 4 deletions
diff --git a/crypto/test/src/crypto/test/OpenBsdBCryptTest.cs b/crypto/test/src/crypto/test/OpenBsdBCryptTest.cs
index 8501588ee..fabe84d6b 100644
--- a/crypto/test/src/crypto/test/OpenBsdBCryptTest.cs
+++ b/crypto/test/src/crypto/test/OpenBsdBCryptTest.cs
@@ -74,6 +74,28 @@ namespace Org.BouncyCastle.Crypto.Tests
             new string[]{"8nv;PAN~-FQ]Emh@.TKG=^.t8R0EQC0T?x9|9g4xzxYmSbBO1qDx8kv-ehh0IBv>3KWhz.Z~jUF0tt8[5U@8;5:=[v6pf.IEJ", "$2a$08$eXo9KDc1BZyybBgMurpcD.GA1/ch3XhgBnIH10Xvjc2ogZaGg3t/m"},
         };
 
+
+        // 2y vectors generated from htpasswd -nB -C 12, nb leading username was removed.
+        private static readonly string[,] twoYVec = new string[,]{
+            {"a", "$2y$12$DB3BUbYa/SsEL7kCOVji0OauTkPkB5Y1OeyfxJHM7jvMrbml5sgD2"},
+            {"abc", "$2y$12$p.xODEbFcXUlHGbNxWZqAe6AA5FWupqXmN9tZea2ACDhwIx4EA2a6"},
+            {"hello world", "$2y$12$wfkxITYXjNLVpEi9nOjz7uXMhCXKSTY7O2y7X4bwY89aGSvRziguq"},
+            {"ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY", "$2y$12$QwAt5kuG68nW7v.87q0QPuwdki3romFc/RU/RV3Qqk4FPw6WdbQzu"}
+        };
+
+        // Same as 2y vectors only version changed to 2b to verify handling of that version.
+        private static readonly string[,] twoBVec = new string[,]{
+            {"a", "$2b$12$DB3BUbYa/SsEL7kCOVji0OauTkPkB5Y1OeyfxJHM7jvMrbml5sgD2"},
+            {"abc", "$2b$12$p.xODEbFcXUlHGbNxWZqAe6AA5FWupqXmN9tZea2ACDhwIx4EA2a6"},
+            {"hello world", "$2b$12$wfkxITYXjNLVpEi9nOjz7uXMhCXKSTY7O2y7X4bwY89aGSvRziguq"},
+            {"ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY", "$2b$12$QwAt5kuG68nW7v.87q0QPuwdki3romFc/RU/RV3Qqk4FPw6WdbQzu"}
+        };
+
+        public static void Main(string[] args)
+        {
+            RunTest(new OpenBsdBCryptTest());
+        }
+
         public override string Name
         {
             get { return "OpenBsdBCrypt"; }
@@ -129,11 +151,36 @@ namespace Org.BouncyCastle.Crypto.Tests
                     Fail("test4 mismatch: " + "[" + i + "] " + password);
                 }
             }
-        }
 
-        public static void Main(string[] args)
-        {
-            RunTest(new OpenBsdBCryptTest());
+            {
+                int lower = twoYVec.GetLowerBound(0);
+                int upper = twoYVec.GetUpperBound(0);
+                for (int i = lower; i <= upper; i++)
+                {
+                    password = twoYVec[i, 0];
+                    encoded = twoYVec[i, 1];
+
+                    if (!OpenBsdBCrypt.CheckPassword(encoded, password.ToCharArray()))
+                    {
+                        Fail("twoYVec mismatch: " + "[" + i + "] " + password);
+                    }
+                }
+            }
+
+            {
+                int lower = twoBVec.GetLowerBound(0);
+                int upper = twoBVec.GetUpperBound(0);
+                for (int i = lower; i <= upper; i++)
+                {
+                    password = twoBVec[i, 0];
+                    encoded = twoBVec[i, 1];
+
+                    if (!OpenBsdBCrypt.CheckPassword(encoded, password.ToCharArray()))
+                    {
+                        Fail("twoBVec mismatch: " + "[" + i + "] " + password);
+                    }
+                }
+            }
         }
 
         [Test]