package org.exobel.routerkeygen.algorithms; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.zip.ZipInputStream; import org.junit.Test; public class KeygenTest { private static File getFileFromPath(Object obj, String fileName) { ClassLoader classLoader = obj.getClass().getClassLoader(); URL resource = classLoader.getResource(fileName); return new File(resource.getPath()); } private ZipInputStream getMagicFile() throws FileNotFoundException { return new ZipInputStream(new FileInputStream( getFileFromPath(this, "res/raw/magic_info.zip"))); } @Test public void testAliceItaly() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Alice-53847953", "00:25:53:35:a7:91", 0, "", getMagicFile()); assertEquals("There should be only 4 keygen", 4, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceItalyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 1 result", 1, results.size()); assertEquals("The password should be 7nfyuqlahytaml3bkcjasmtf", "7nfyuqlahytaml3bkcjasmtf", results.get(0)); } @Test public void testAliceItaly2() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Alice-37588990", "00:23:8e:48:e7:d4", 0, "", getMagicFile()); assertEquals("There should be only 4 keygen", 4, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceItalyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 4 result", 4, results.size()); assertEquals("The password should be 9j4hm3ojq4brfdy6wcsuglwu", "9j4hm3ojq4brfdy6wcsuglwu", results.get(3)); } @Test public void testAliceItaly3() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Alice-95535232", "00:8c:54:07:de:08", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceItalyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 1 result", 1, results.size()); assertEquals("The password should be e3eudsvbuu2i8zz2yalosd65", "e3eudsvbuu2i8zz2yalosd65", results.get(0)); } @Test public void testAliceItaly4() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Alice-53023425", "00:25:53:05:e3:50", 0, "", getMagicFile()); assertEquals("There should be only 4 keygen", 4, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceItalyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 4 result", 4, results.size()); assertEquals("The password should be gi0wdaa3crf6wsb53sf7bv5t", "gi0wdaa3crf6wsb53sf7bv5t", results.get(3)); } @Test public void testAliceGermany() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("ALICE-WLANC3", "00:1E:40:A0:84:C4", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceGermanyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 1 result", 1, results.size()); assertEquals("The password should be MGIwMjhjYTYzZmM0", "MGIwMjhjYTYzZmM0", results.get(0)); } @Test public void testAliceGermany2() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("ALICE-WLANC3", "00:1E:40:DA:92:5B", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceGermanyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 1 result", 1, results.size()); assertEquals("The password should be MTc3NjQ3Yzc5M2Fh", "MTc3NjQ3Yzc5M2Fh", results.get(0)); } @Test public void testAliceGermany3() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("ALICE-WLANC3", "00:25:5E:01:02:03", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Alice", keygen instanceof AliceGermanyKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 1 result", 1, results.size()); assertEquals("The password should be OWZlODAwYzliMTM4", "OWZlODAwYzliMTM4", results.get(0)); } @Test public void testArcadyan() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Arcor-910B02", "00:12:BF:91:0B:EC", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Easybox", keygen instanceof ArcadyanKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be F9C8C9DEF", "F9C8C9DEF", results.get(0)); } @Test public void testArcadyan2() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("VodafoneGG11", "74:31:70:33:00:11", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Easybox", keygen instanceof ArcadyanKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only two result", 2, results.size()); assertEquals("The password should be 58639029A", "58639029A", results.get(0)); assertEquals("The password should be 58639129A", "58639129A", results.get(1)); } @Test public void testArnetPirelli() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("WiFi-Arnet-0184", "74:88:8B:27:2B:F4", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be ArnetPirelli", keygen instanceof ArnetPirelliKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 781haylokm", "781haylokm", results.get(0)); } @Test public void testBelkin() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Belkin.c0de", "94:44:52:00:C0:DE", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Beklin", keygen instanceof BelkinKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 040D93B0", "040D93B0", results.get(0)); } @Test public void testBelkin2() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("belkin.ed0", "94:44:52:00:ce:d0", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Beklin", keygen instanceof BelkinKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be d49496b9", "d49496b9", results.get(0)); } @Test public void testCONN() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("CONN-X", "", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Conn", keygen instanceof ConnKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 1234567890123", "1234567890123", results.get(0)); } @Test public void testCyta() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("CYTA", "00:1C:A2:DA:5D:C1", 0, "", getMagicFile()); assertEquals("There should be only 4 keygen", 4, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(2); assertTrue("Keygen should be Cyta", keygen instanceof CytaKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only two result", 2, results.size()); assertEquals("The password should be 74701Y0000000", "74701Y0000000", results.get(0)); assertEquals("The password should be YW0154724", "YW0154724", results.get(1)); } @Test public void testCytaZTE() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("CYTA", "CC:1A:FA:4A:3B:CB", 0, "", getMagicFile()); assertEquals("There should be only 2 keygen", 2, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be CytaZTE", keygen instanceof CytaZTEKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be ZTEEF00D8800000", "ZTEEF00D8800000", results.get(0)); } @Test public void testComtrend() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("JAZZTEL_1234", "00:1A:2B:11:22:33", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Conn", keygen instanceof ComtrendKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only 512 result", 512, results.size()); assertEquals("The password should be 9e701814299bf841e288", "9e701814299bf841e288", results.get(0)); assertEquals("The password should be cb20cce51c5bc7457e08", "cb20cce51c5bc7457e08", results.get(511)); } @Test public void testDiscus() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Discus--DA1CC5", "00:1C:A2:DA:1C:C5", 0, "", getMagicFile()); assertEquals("There should be only 5 keygen", 5, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(3); assertTrue("Keygen should be Discus", keygen instanceof DiscusKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be YW0150565", "YW0150565", results.get(0)); } @Test public void testDlink() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("DLink-123456", "12:34:56:78:9a:bc", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Dlink", keygen instanceof DlinkKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 6r8qwaYHSNdpqdYw6aN8", "6r8qwaYHSNdpqdYw6aN8", results.get(0)); } @Test public void testEircom() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("eircom2633 7520", "00:0f:cc:59:b0:9c", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Eircom", keygen instanceof EircomKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 29b2e9560b3a83a187ec5f2057", "29b2e9560b3a83a187ec5f2057", results.get(0)); } @Test public void testHuawei() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("INFINITUM1be2", "64:16:F0:35:1C:FD", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Huawei", keygen instanceof HuaweiKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 3432333133", "3432333133", results.get(0)); } @Test public void testMegared() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Megared60EC", "FC:75:16:9F:60:EC", 0, "", getMagicFile()); assertEquals("There should be only 2 keygen", 2, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be Megared", keygen instanceof MegaredKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 75169F60EC", "75169F60EC", results.get(0)); } @Test public void testMeoPirelli() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("ADSLPT-AB37495", "84:26:15:AE:BC:15", 0, "", getMagicFile()); assertEquals("There should be only 2 keygen", 2, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be MeoPirelli", keygen instanceof MeoPirelliKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 78leqnej", "78leqnej", results.get(0)); } @Test public void testNetfaster() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("NetFasteR", "00:05:59:04:1B:8B", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be NetFaster", keygen instanceof NetFasterKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only two results", 2, results.size()); assertEquals("The password should be 000559041B8B-9169", "000559041B8B-9169", results.get(0)); assertEquals("The password should be 000559041B8B-4232", "000559041B8B-4232", results.get(1)); } @Test public void testOTE() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("OTE37cb4c", "B0:75:D5:37:CB:4C", 0, "", getMagicFile()); assertEquals("There should be only 2 keygen", 2, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be OTE", keygen instanceof OteKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be b075d537cb4c", "b075d537cb4c", results.get(0)); } @Test public void testOTEBAUD() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("OTEcb4c", "00:13:33:37:CB:4C", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be OTEBaud", keygen instanceof OteBAUDKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 000133337cb4c", "000133337cb4c", results.get(0)); } @Test public void testOTEHuawei() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("OTEcb4c", "E8:39:DF:F5:12:34", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be OTEHuawei", keygen instanceof OteHuaweiKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be 54919345", "54919345", results.get(0)); } @Test public void testOTEZTE() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("CYTA", "CC:1A:FA:4A:3B:CB", 0, "", getMagicFile()); assertEquals("There should be only 2 keygen", 2, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be CytaZTE", keygen instanceof ConnKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only two result", 2, results.size()); assertEquals("The password should be cc1afa4a3bcb", "cc1afa4a3bcb", results.get(0)); assertEquals("The password should be 1234567890123", "1234567890123", results.get(1)); } @Test public void testPBS() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("PBS-11222E", "38:22:9D:11:22:33", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(2); assertTrue("Keygen should be PBS", keygen instanceof PBSKeygen); assertEquals("Keygen should be supported", Keygen.UNLIKELY_SUPPORTED, keygen.getSupportState()); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be PcL2PgUcX0VhV", "PcL2PgUcX0VhV", results.get(0)); } @Test public void testSitecomWLR341_400x() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:01:23:45", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(2); assertTrue("Keygen should be SitecomWLR341_400x", keygen instanceof SitecomWLR341_400xKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only nine result", 9, results.size()); assertEquals("The password should be HBGBACFMKZ8V", "HBGBACFMKZ8V", results.get(0)); assertEquals("The password should be KDJDCEHQNZAZ", "KDJDCEHQNZAZ", results.get(1)); assertEquals("The password should be 9383247ECKSZ", "9383247ECKSZ", results.get(2)); assertEquals("The password should be I4SDTL3C76AY", "I4SDTL3C76AY", results.get(3)); assertEquals("The password should be L7WFXP5E98CB", "L7WFXP5E98CB", results.get(4)); assertEquals("The password should be A3W5XDM4RQ2B", "A3W5XDM4RQ2B", results.get(5)); assertEquals("The password should be N83Y6AOBW93A", "N83Y6AOBW93A", results.get(6)); assertEquals("The password should be RA5B8CSD3B5C", "RA5B8CSD3B5C", results.get(7)); assertEquals("The password should be FSMBQ2G33TM2", "FSMBQ2G33TM2", results.get(8)); } @Test public void testSitecom2100() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:01:23:45", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be Sitecom2100Keygen", keygen instanceof Sitecom2100Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals("The password should be YWPZSSHVMNEN", "YWPZSSHVMNEN", results.get(0)); } @Test public void testSitecomX500() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:01:23:45", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be SitecomX500Keygen", keygen instanceof SitecomX500Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only four result", 4, results.size()); assertEquals("The password should be c6aBBBbg", "c6aBBBbg", results.get(0)); assertEquals("The password should be q69CB1kg", "q69CB1kg", results.get(1)); assertEquals("The password should be 44B5Dmyc", "44B5Dmyc", results.get(2)); assertEquals("The password should be N66zHMRc", "N66zHMRc", results.get(3)); } @Test public void testSitecomX500_2() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:01:2F:F5", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be SitecomX500Keygen", keygen instanceof SitecomX500Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only four result", 4, results.size()); assertEquals("The password should be zb1cgzvx", "zb1cgzvx", results.get(0)); assertEquals("The password should be 6sWNS6D6", "6sWNS6D6", results.get(1)); assertEquals("The password should be JEmMRJSk", "JEmMRJSk", results.get(2)); assertEquals("The password should be qVMKQq7B", "qVMKQq7B", results.get(3)); } @Test public void testSitecomX500_3() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:01:2F:FE", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be SitecomX500Keygen", keygen instanceof SitecomX500Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only four result", 4, results.size()); assertEquals("The password should be ZB1kqZVQ", "ZB1kqZVQ", results.get(0)); assertEquals("The password should be DhCvzDve", "DhCvzDve", results.get(1)); assertEquals("The password should be S63uySh4", "S63uySh4", results.get(2)); assertEquals("The password should be z3JUHnR9", "z3JUHnR9", results.get(3)); } @Test public void testSitecomX500_4() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("Sitecom", "00:0C:F6:F1:2F:FE", 0, "", getMagicFile()); assertEquals("There should be only 3 keygen", 3, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be SitecomX500Keygen", keygen instanceof SitecomX500Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only four result", 4, results.size()); assertEquals("The password should be 6P2AB6Pb", "6P2AB6Pb", results.get(0)); assertEquals("The password should be GEBAWGEA", "GEBAWGEA", results.get(1)); assertEquals("The password should be GDPK6GDb", "GDPK6GDb", results.get(2)); assertEquals("The password should be hp1946Ak", "hp1946Ak", results.get(3)); } @Test public void testSpeedport500() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("WLAN-903704", "00:1D:19:90:37:DD", 0, "", getMagicFile()); assertEquals("There should be only 2 keygens", 2, wifi.getKeygens() .size()); assertTrue("Keygen should be EasyBoxKeygen", wifi.getKeygens().get(0) instanceof ArcadyanKeygen); final Keygen keygen = wifi.getKeygens().get(1); assertTrue("Keygen should be Speedport500", keygen instanceof Speedport500Keygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be 1000 results", 1000, results.size()); boolean found = false; for (String k : results) { if (k.equals("SP-0947DD059")) { found = true; break; } } assertTrue("SP-0947DD059 should have been found", found); } @Test public void testTeletu() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("TeleTu_00238EE528C7", "00:23:8E:E5:28:C7", 0, "", getMagicFile()); assertEquals("There should be only 4 keygen", 4, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get( wifi.getKeygens().size() - 1); assertTrue("Keygen should be TeleTu", keygen instanceof TeleTuKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only one result", 1, results.size()); assertEquals( "The password should be 15301Y0013305, not " + results.get(0), "15301Y0013305", results.get(0)); } private static void downloadFromUrl(URL url, String localFilename) throws IOException { InputStream is = null; FileOutputStream fos = null; try { URLConnection urlConn = url.openConnection();// connect is = urlConn.getInputStream(); // get connection inputstream fos = new FileOutputStream(localFilename); // open outputstream to // local file byte[] buffer = new byte[4096]; // declare 4KB buffer int len; // while we have availble data, continue downloading and storing to // local file while ((len = is.read(buffer)) > 0) { fos.write(buffer, 0, len); } } finally { try { if (is != null) { is.close(); } } finally { if (fos != null) { fos.close(); } } } } private final static String[] DICTIONARY_FILES = {"RouterKeygen_v3.dic"}; private final static String[] DICTIONARY_URL = {"https://github.com/routerkeygen/thomsonDicGenerator/releases/download/v3/RouterKeygen_v3.dic"}; @Test public void testThomson() throws IOException { final WiFiNetwork wifi = new WiFiNetwork("Thomson41518c", "", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Conn", keygen instanceof ThomsonKeygen); ((ThomsonKeygen) keygen).setInternetAlgorithm(false); ((ThomsonKeygen) keygen).setWebdic(new FileInputStream(getFileFromPath(this, "res/raw/webdic.zip"))); // Testing the internet version ((ThomsonKeygen) keygen).setInternetAlgorithm(true); testThomsonResults(keygen); ((ThomsonKeygen) keygen).setInternetAlgorithm(false); for (int i = 0; i < DICTIONARY_FILES.length; ++i) { if (!new File(DICTIONARY_FILES[i]).exists()) { System.out.println("Downloading " + DICTIONARY_FILES[i]); downloadFromUrl(new URL(DICTIONARY_URL[i]), DICTIONARY_FILES[i]); } ((ThomsonKeygen) keygen).setDictionary(DICTIONARY_FILES[i]); testThomsonResults(keygen); } } private void testThomsonResults(Keygen keygen) { List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be only three result", 3, results.size()); assertEquals("The password should be 69237B667A", "69237B667A", results.get(0)); assertEquals("The password should be 1C2D56E083", "1C2D56E083", results.get(1)); assertEquals("The password should be 8F524DED99", "8F524DED99", results.get(2)); } @Test public void testTpLink() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("tplink", "F8:D1:11:1E:28:A5", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be TplinkKeygen", keygen instanceof TplinkKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be one results", 1, results.size()); assertEquals("The password should be 111E28A5", "111E28A5", results.get(0)); } @Test public void testWifimediaR() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("wifimedia_R-1234", "00:26:5B:1E:28:A5", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be WifimediaR", keygen instanceof WifimediaRKeygen); List<String> results = keygen.getKeys(); assertEquals("Errors should not happen", 0, keygen.getErrorCode()); assertEquals("There should be two results", 2, results.size()); assertEquals("The password should be 00265b1e28a0", "00265b1e28a0", results.get(0)); assertEquals("The password should be 00265B1E28A0", "00265B1E28A0", results.get(1)); } @Test public void testWAN6X() throws FileNotFoundException { final WiFiNetwork wifi = new WiFiNetwork("WLAN123456", "11:22:33:44:55:66", 0, "", getMagicFile()); assertEquals("There should be only 1 keygen", 1, wifi.getKeygens() .size()); final Keygen keygen = wifi.getKeygens().get(0); assertTrue("Keygen should be Wlan6", keygen instanceof Wlan6Keygen); List<String> results = keygen.getKeys(); assertTrue("Error should happen", keygen.getErrorCode() != 0); assertEquals("There should be only one result", 10, results.size()); assertEquals("The password should be 5630556304607", "5630556304607", results.get(0)); assertEquals("The password should be 5730446305616", "5730446305616", results.get(1)); assertEquals("The password should be 5430776306625", "5430776306625", results.get(2)); assertEquals("The password should be 5530666307634", "5530666307634", results.get(3)); assertEquals("The password should be 5230116300643", "5230116300643", results.get(4)); assertEquals("The password should be 5330006301652", "5330006301652", results.get(5)); assertEquals("The password should be 5030336302661", "5030336302661", results.get(6)); assertEquals("The password should be 5130226303670", "5130226303670", results.get(7)); assertEquals("The password should be 5E30DD630C68F", "5E30DD630C68F", results.get(8)); assertEquals("The password should be 5F30CC630D69E", "5F30CC630D69E", results.get(9)); } }