From 51d1705b1f54a06c91afd8966ad42c4817a27d1e Mon Sep 17 00:00:00 2001 From: ljacqu Date: Sun, 20 Dec 2015 14:08:22 +0100 Subject: [PATCH] #364 Add tests for more encryption algorithms --- .../crypts/AbstractEncryptionMethodTest.java | 29 ++++++++++++++----- .../authme/security/crypts/PHPBBTest.java | 16 ++++++++++ .../authme/security/crypts/WBB3Test.java | 20 +++++++++++++ .../authme/security/crypts/WORDPRESSTest.java | 15 ++++++++++ .../authme/security/crypts/XAUTHTest.java | 16 ++++++++++ 5 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 src/test/java/fr/xephi/authme/security/crypts/PHPBBTest.java create mode 100644 src/test/java/fr/xephi/authme/security/crypts/WBB3Test.java create mode 100644 src/test/java/fr/xephi/authme/security/crypts/WORDPRESSTest.java create mode 100644 src/test/java/fr/xephi/authme/security/crypts/XAUTHTest.java diff --git a/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java b/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java index d223f907..03876055 100644 --- a/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java +++ b/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java @@ -66,17 +66,28 @@ public abstract class AbstractEncryptionMethodTest { } } - static void generateHashes(EncryptionMethod method) { - System.out.println("AbstractEncryptionMethodTest.testGivenPasswords(method,"); + // @org.junit.Test public void a() { AbstractEncryptionMethodTest.generateTest(); } + // TODO #364: Remove this method + static void generateTest(EncryptionMethod method) { + String className = method.getClass().getSimpleName(); + System.out.println("public class " + className + "Test extends AbstractEncryptionMethodTest {"); + System.out.println("\tpublic " + className + "Test() {"); + System.out.println("\t\tsuper(new " + className + "(),"); + + String delim = ", "; for (String password : GIVEN_PASSWORDS) { + if (password.equals(GIVEN_PASSWORDS[GIVEN_PASSWORDS.length - 1])) { + delim = "); "; + } try { - System.out.println("\t\"" + method.getHash(password, getSalt(method), "USERNAME") - + "\", // " + password); + System.out.println("\t\t\"" + method.getHash(password, getSalt(method), "USERNAME") + + "\"" + delim + "// " + password); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("Could not generate hash", e); } } - System.out.println(");"); + System.out.println("\t}"); + System.out.println("}"); } // TODO #358: Remove this method and use the new salt method on the interface @@ -84,12 +95,16 @@ public abstract class AbstractEncryptionMethodTest { try { if (method instanceof BCRYPT) { return BCRYPT.gensalt(); - } else if (method instanceof MD5) { + } else if (method instanceof MD5 || method instanceof WORDPRESS) { return ""; } else if (method instanceof JOOMLA) { return PasswordSecurity.createSalt(32); - } else if (method instanceof SHA256) { + } else if (method instanceof SHA256 || method instanceof PHPBB) { return PasswordSecurity.createSalt(16); + } else if (method instanceof WBB3) { + return PasswordSecurity.createSalt(40); + } else if (method instanceof XAUTH) { + return PasswordSecurity.createSalt(12); } } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); diff --git a/src/test/java/fr/xephi/authme/security/crypts/PHPBBTest.java b/src/test/java/fr/xephi/authme/security/crypts/PHPBBTest.java new file mode 100644 index 00000000..61a42360 --- /dev/null +++ b/src/test/java/fr/xephi/authme/security/crypts/PHPBBTest.java @@ -0,0 +1,16 @@ +package fr.xephi.authme.security.crypts; + +/** + * Test for {@link PHPBB}. + */ +public class PHPBBTest extends AbstractEncryptionMethodTest { + + public PHPBBTest() { + super(new PHPBB(), + "$H$7MaSGQb0xe3Fp/a.Q.Ewpw.UKfCv.t0", // password + "$H$7ESfAVjzqajC7fJFcZKZIhyds41MuW.", // PassWord1 + "$H$7G65SXRPbR69jLg.qZTjtqsw36Ciw7.", // &^%te$t?Pw@_ + "$H$7Brcg8zO9amr2SHVgz.pFxprDu40v4/"); // âË_3(íù* + } + +} diff --git a/src/test/java/fr/xephi/authme/security/crypts/WBB3Test.java b/src/test/java/fr/xephi/authme/security/crypts/WBB3Test.java new file mode 100644 index 00000000..99474f76 --- /dev/null +++ b/src/test/java/fr/xephi/authme/security/crypts/WBB3Test.java @@ -0,0 +1,20 @@ +package fr.xephi.authme.security.crypts; + +import org.junit.Ignore; + +/** + * Test for {@link WBB3}. + */ +@Ignore +// TODO #364 ljacqu 20151220: Unignore test after fixing closely coupled DB dependency +public class WBB3Test extends AbstractEncryptionMethodTest { + + public WBB3Test() { + super(new WBB3(), + "ca426c4d20a82cd24c7bb07d94d69f3757e3d07d", // password + "72d59d27674a3cace2600ff152ba8b46274e27e9", // PassWord1 + "23daf26602e52591156968a14c2a6592b5be4743", // &^%te$t?Pw@_ + "d3908efe4a15314066391dd8572883c70b16fd8a"); // âË_3(íù* + } + +} diff --git a/src/test/java/fr/xephi/authme/security/crypts/WORDPRESSTest.java b/src/test/java/fr/xephi/authme/security/crypts/WORDPRESSTest.java new file mode 100644 index 00000000..cf762412 --- /dev/null +++ b/src/test/java/fr/xephi/authme/security/crypts/WORDPRESSTest.java @@ -0,0 +1,15 @@ +package fr.xephi.authme.security.crypts; + +/** + * Test for {@link WORDPRESS}. + */ +public class WORDPRESSTest extends AbstractEncryptionMethodTest { + + public WORDPRESSTest() { + super(new WORDPRESS(), + "$P$B9wyjxuU4yrfjnnHNGSzH9ti9CC0Os1", // password + "$P$BjzPjjzPjjkRzvGGRTyYu0sNqcz6Ci0", // PassWord1 + "$P$BjzPjjzPjrAOyB1V0WFdpisgCTFx.N/", // &^%te$t?Pw@_ + "$P$BjzPjxxyjp2QdKcab/oTW8l/W0AgE21"); // âË_3(íù* + } +} diff --git a/src/test/java/fr/xephi/authme/security/crypts/XAUTHTest.java b/src/test/java/fr/xephi/authme/security/crypts/XAUTHTest.java new file mode 100644 index 00000000..4fcd8039 --- /dev/null +++ b/src/test/java/fr/xephi/authme/security/crypts/XAUTHTest.java @@ -0,0 +1,16 @@ +package fr.xephi.authme.security.crypts; + +/** + * Test for {@link XAUTH}. + */ +public class XAUTHTest extends AbstractEncryptionMethodTest { + + public XAUTHTest() { + super(new XAUTH(), + "e54d4916577410d26d2f6e9362445463dab9ffdff9a67ed3b74d3f2312bc8fab84f653fcb88ad8338793ef8a6d0a1162105e46ec24f0dcb52355c634e3e6439f45444b09c715", // password + "d54489a4fd4732ee03d56810ab92944096e3d49335266adeecfbc12567abb3ff744761b33a1fcc4d04739e377775c788e4baace3caf35c7b9176b82b1fe3472e4cbdc5a43214", // PassWord1 + "ce6404c1092fb5abf0a72f9c4327bfe8f4cdc4b8dc90ee6ca35c42b8ae9481b89c2559bb60b99ff2b57a102cfced40b8e2f5ef481400c9e6f79445017fc763b1cc27f4c2df36", // &^%te$t?Pw@_ + "73074fe3f5503677ab9c5a1885b46a8b6fb249453317da08d86312c20e7b326e84f615e1b594c71129d2d1020400a89838e44653dc02d1799886e522a2789fbe1df6e70b7ffb"); // âË_3(íù* + } + +}