diff --git a/README.md b/README.md index fb23fd75..f98ce8bb 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,6 @@ typing commands or using the inventory. It can also kick players with uncommonly
  • MyBB: MYBB
  • IPB3: IPB3
  • PhpFusion: PHPFUSION
  • -
  • Xenforo SHA1: XFSHA1 (Deprecated)
  • -
  • Xenforo SHA256: XFSHA256 (Deprecated)
  • Joomla: JOOMLA
  • WBB3: WBB3*
  • SHA512: SHA512
  • @@ -92,7 +90,7 @@ typing commands or using the inventory. It can also kick players with uncommonly
  • Custom MySQL tables/columns names (useful with forums databases)
  • Cached database queries!
  • -
  • Full compatible with Citizens2, CombatTag, CombatTagPlus and ChestShop!
  • +
  • Fully compatible with Citizens2, CombatTag, CombatTagPlus and ChestShop!
  • Compatible with Minecraft mods like BuildCraft or RedstoneCraft
  • Restricted users (associate a Username with an IP)
  • Protect player's inventory until a correct Authentication
  • @@ -120,7 +118,7 @@ typing commands or using the inventory. It can also kick players with uncommonly
  • Website Integration
  • Click here for an example of the Config file
  • How to convert from Rakamak -
  • Convert from FlatFile (auths.db but not the sqlite one ) to MySQL: /converter +
  • Convert from FlatFile (auths.db but not the sqlite one) to MySQL: /converter

  • @@ -139,5 +137,5 @@ GameHosting.it is leader in Italy as Game Server Provider. With its own DataCent #####Credits

    Team members: look at the team.txt file -

    Credit for old version of the plugin to: d4rkwarriors, fabe1337 , Whoami2 and pomo4ka

    +

    Credit for old version of the plugin to: d4rkwarriors, fabe1337, Whoami2 and pomo4ka

    Thanks also to: AS1LV3RN1NJA, Hoeze and eprimex

    diff --git a/src/main/java/fr/xephi/authme/security/HashAlgorithm.java b/src/main/java/fr/xephi/authme/security/HashAlgorithm.java index ad212767..607df6b2 100644 --- a/src/main/java/fr/xephi/authme/security/HashAlgorithm.java +++ b/src/main/java/fr/xephi/authme/security/HashAlgorithm.java @@ -22,7 +22,6 @@ public enum HashAlgorithm { IPB3(fr.xephi.authme.security.crypts.IPB3.class), PHPFUSION(fr.xephi.authme.security.crypts.PHPFUSION.class), SMF(fr.xephi.authme.security.crypts.SMF.class), - XENFORO(fr.xephi.authme.security.crypts.XF.class), SALTED2MD5(fr.xephi.authme.security.crypts.SALTED2MD5.class), JOOMLA(fr.xephi.authme.security.crypts.JOOMLA.class), BCRYPT(fr.xephi.authme.security.crypts.BCRYPT.class), diff --git a/src/main/java/fr/xephi/authme/security/crypts/XF.java b/src/main/java/fr/xephi/authme/security/crypts/XF.java deleted file mode 100644 index 42e026f2..00000000 --- a/src/main/java/fr/xephi/authme/security/crypts/XF.java +++ /dev/null @@ -1,73 +0,0 @@ -package fr.xephi.authme.security.crypts; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - */ -public class XF implements EncryptionMethod { - - @Override - public String computeHash(String password, String salt, String name) { - return getSha256(getSha256(password) + regmatch("\"salt\";.:..:\"(.*)\";.:.:\"hashFunc\"", salt)); - } - - @Override - public HashResult computeHash(String password, String name) { - String salt = generateSalt(); - return new HashResult(computeHash(password, salt, null), salt); - } - - public boolean comparePassword(String hash, String password, String salt, String name) { - return hash.equals(regmatch("\"hash\";.:..:\"(.*)\";.:.:\"salt\"", salt)); - } - - private String getSha256(String password) { - MessageDigest md = null; - try { - md = MessageDigest.getInstance("SHA-256"); - } catch (NoSuchAlgorithmException e) { - // TODO #358: Handle exception properly - throw new RuntimeException(e); - } - md.update(password.getBytes()); - byte byteData[] = md.digest(); - StringBuilder sb = new StringBuilder(); - for (byte element : byteData) { - sb.append(Integer.toString((element & 0xff) + 0x100, 16).substring(1)); - } - StringBuilder hexString = new StringBuilder(); - for (byte element : byteData) { - String hex = Integer.toHexString(0xff & element); - if (hex.length() == 1) { - hexString.append('0'); - } - hexString.append(hex); - } - return hexString.toString(); - } - - @Override - public String generateSalt() { - // TODO #369: Find out what kind of salt format XF uses - return ""; - } - - @Override - public boolean hasSeparateSalt() { - return true; - } - - private String regmatch(String pattern, String line) { - List allMatches = new ArrayList<>(); - Matcher m = Pattern.compile(pattern).matcher(line); - while (m.find()) { - allMatches.add(m.group(1)); - } - return allMatches.get(0); - } -} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7f151c49..a98d9739 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -181,7 +181,7 @@ settings: # Example unLoggedinGroup: NotLogged unLoggedinGroup: unLoggedinGroup # possible values: MD5, SHA1, SHA256, WHIRLPOOL, XAUTH, MD5VB, PHPBB, - # MYBB, IPB3, PHPFUSION, SMF, XENFORO, SALTED2MD5, JOOMLA, BCRYPT, WBB3, SHA512, + # MYBB, IPB3, PHPFUSION, SMF, SALTED2MD5, JOOMLA, BCRYPT, WBB3, SHA512, # DOUBLEMD5, PBKDF2, PBKDF2DJANGO, WORDPRESS, ROYALAUTH, CUSTOM(for developpers only) passwordHash: SHA256 # salt length for the SALTED2MD5 MD5(MD5(password)+salt) diff --git a/src/test/java/fr/xephi/authme/security/crypts/XFTest.java b/src/test/java/fr/xephi/authme/security/crypts/XFTest.java deleted file mode 100644 index e5231069..00000000 --- a/src/test/java/fr/xephi/authme/security/crypts/XFTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.xephi.authme.security.crypts; - -import org.junit.Ignore; -import org.junit.Test; - -/** - * Test for {@link XF}. - */ -@Ignore -// TODO #369: XF needs to generate a salt it is expecting -public class XFTest { - - @Test - public void shouldComputeHash() { - System.out.println(new XF().computeHash("Test", "name")); - } -}