package games.strategy.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.math.BigInteger; import java.security.SecureRandom; import org.junit.Test; public class SHA512CryptTest { @Test public void testCrypt() { assertEquals( "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" + "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e", SHA512Crypt.crypt("")); assertEquals( "8275652479d5643e5c88f7a6d07a8815e48b7a4d4708a6bec5ca3edacae9c0e9" + "6800bfd0b22d1c676d2085b71c8cc214e9e1692ca00abdf3b1be824d6a5e456a", SHA512Crypt.crypt("tripleA")); assertEquals( "ceea8c7d9d9d0235a0f02b6ded9a09674a529fbac049cbf69135b323101d6cad" + "2e6fe1cffa61719e92281eaeb45e6d814d5006bf9826c7219ec10b7269f5a493", SHA512Crypt.crypt("Map")); assertEquals( "cc61da77033ab014504d902b4fa8eaad18b53bca94cc4145f23d7d2f27df2a39" + "c59830fc251a33f2eb5d1c8416fb532a83339fce7b1266d059b4ecd8e4ff5901", SHA512Crypt.crypt("Strategy")); } @Test public void testSaltCrypt() { assertEquals( "213ccebae3a80eaf983d7f025476ba8af249c50bcfdf25c29ec509bda08ac100" + "80558988c73eac80df9bb120920cc806ab48b61ba71c6711d21b7c6fb7cf0031", SHA512Crypt.crypt("Axis&Allies", "AAA")); assertEquals( "81016670b69f1d5a8bca4cbf21885dec4733d7d13b46a746b0aa947b1f1f1190" + "99e5a2d3ef6cf3b474854acdba61446f6ea4a536c9ff5a69ee792dc85df5f71d", SHA512Crypt.crypt("MapXMLCreator", "tripleA")); assertEquals( "93a7d383f8406c972e45b6a95c4f1c9a9b35db79e18e21cd027493eaf0dcd1a8" + "59b67e71e03ee9000c889dde95a59847d8a1de45f4ec54abf516881c4577c8a7", SHA512Crypt.crypt("MapCreator", "Random")); assertEquals( "33ef24a097ceb53a1ab529475902b327b1af425adcda7a2d66d02c2fb92005ee" + "662bce17e469681a8503d3fabda14d7974792e32477104bd98574a298cf7868", SHA512Crypt.crypt("Tanks", "LOL")); } @Test public void testSaltCryptPassed() { for (int i = 0; i < 10; i++) { final String randomText = new BigInteger(130, new SecureRandom()).toString(32); final String randomSalt = new BigInteger(130, new SecureRandom()).toString(32); assertTrue(SHA512Crypt.cryptPassSalt(randomText, randomSalt).startsWith("$" + randomSalt)); } } }