assertEquals(toEncode,result);\r
\r
}\r
+ \r
+ @Test\r
+ public void test1() throws Exception {\r
+ // Test with different Padding\r
+ encode("leas", "bGVhcw==");\r
+ encode("leasu", "bGVhc3U=");\r
+ encode("leasur", "bGVhc3Vy");\r
+ encode("leasure", "bGVhc3VyZQ==");\r
+ encode("leasure.","bGVhc3VyZS4=");\r
+\r
+ // Test with line ends\r
+ encode(encoding, expected);\r
+ \r
+ int ITER = 2000;\r
+ System.out.println("Priming by Encoding Base64 " + ITER + " times");\r
+ long start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.encode(encoding);\r
+ }\r
+ Float ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ \r
+ System.out.println("Priming by Decoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.decode(expected);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+\r
+ \r
+ ITER=30000;\r
+ System.out.println("Encoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.encode(encoding);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ \r
+ System.out.println("Decoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.decode(expected);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ }\r
+ \r
+ @Test\r
+ public void symmetric1() throws IOException {\r
+ System.out.println("Validating Generated Key mechanisms works");\r
+ String symmetric = new String(Symm.base64.keygen());\r
+ System.out.println(symmetric);\r
+ Symm bsym = Symm.obtain(symmetric);\r
+ String result = bsym.encode(encoding);\r
+ System.out.println("\nResult:");\r
+ System.out.println(result);\r
+ assertEquals(encoding, bsym.decode(result));\r
+ \r
+ int ITER = 20000;\r
+ System.out.println("Generating keys " + ITER + " times");\r
+ long start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.keygen();\r
+ }\r
+ Float ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+\r
+ char[] manipulate = symmetric.toCharArray();\r
+ int spot = new SecureRandom().nextInt(manipulate.length);\r
+ manipulate[spot]|=0xFF;\r
+ String newsymmetric = new String(manipulate);\r
+ assertNotSame(newsymmetric, symmetric);\r
+ try {\r
+ bsym = Symm.obtain(newsymmetric);\r
+ result = bsym.decode(result);\r
+ assertEquals(encoding, result);\r
+ } catch (IOException e) {\r
+ // this is what we want to see if key wrong\r
+ System.out.println(e.getMessage() + " (as expected)");\r
+ }\r
+ }\r
+\r
+ private void encode1(String toEncode, String expected) throws IOException {\r
+ System.out.println("-------------------------------------------------");\r
+ System.out.println(toEncode);\r
+ System.out.println();\r
+ System.out.println(expected);\r
+ System.out.println();\r
+ String result = Symm.base64.encode(toEncode);\r
+ System.out.println(result);\r
+ assertEquals(expected,result);\r
+ \r
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();\r
+ Symm.base64.decode(new ByteArrayInputStream(result.getBytes()), baos);\r
+ result = baos.toString(Config.UTF_8);\r
+ System.out.println(result);\r
+ assertEquals(toEncode,result);\r
+ \r
+ }\r
+ \r
+ @Test\r
+ public void test2() throws Exception {\r
+ // Test with different Padding\r
+ encode("leas", "bGVhcw==");\r
+ encode("leasu", "bGVhc3U=");\r
+ encode("leasur", "bGVhc3Vy");\r
+ encode("leasure", "bGVhc3VyZQ==");\r
+ encode("leasure.","bGVhc3VyZS4=");\r
+\r
+ // Test with line ends\r
+ encode(encoding, expected);\r
+ \r
+ int ITER = 2000;\r
+ System.out.println("Priming by Encoding Base64 " + ITER + " times");\r
+ long start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.encode(encoding);\r
+ }\r
+ Float ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ \r
+ System.out.println("Priming by Decoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.decode(expected);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+\r
+ \r
+ ITER=30000;\r
+ System.out.println("Encoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.encode(encoding);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ \r
+ System.out.println("Decoding Base64 " + ITER + " times");\r
+ start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.decode(expected);\r
+ }\r
+ ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+ }\r
+ \r
+ @Test\r
+ public void symmetric2() throws IOException {\r
+ System.out.println("Validating Generated Key mechanisms works");\r
+ String symmetric = new String(Symm.base64.keygen());\r
+ System.out.println(symmetric);\r
+ Symm bsym = Symm.obtain(symmetric);\r
+ String result = bsym.encode(encoding);\r
+ System.out.println("\nResult:");\r
+ System.out.println(result);\r
+ assertEquals(encoding, bsym.decode(result));\r
+ \r
+ int ITER = 20000;\r
+ System.out.println("Generating keys " + ITER + " times");\r
+ long start = System.nanoTime();\r
+ for(int i=0;i<ITER;++i) {\r
+ Symm.base64.keygen();\r
+ }\r
+ Float ms = (System.nanoTime()-start)/1000000F;\r
+ System.out.println("Total: " + ms + "ms");\r
+ System.out.println("Avg: " + ms/ITER + "ms");\r
+\r
+ char[] manipulate = symmetric.toCharArray();\r
+ int spot = new SecureRandom().nextInt(manipulate.length);\r
+ manipulate[spot]|=0xFF;\r
+ String newsymmetric = new String(manipulate);\r
+ assertNotSame(newsymmetric, symmetric);\r
+ try {\r
+ bsym = Symm.obtain(newsymmetric);\r
+ result = bsym.decode(result);\r
+ assertEquals(encoding, result);\r
+ } catch (IOException e) {\r
+ // this is what we want to see if key wrong\r
+ System.out.println(e.getMessage() + " (as expected)");\r
+ }\r
+ }\r
+\r
+ private void encode2(String toEncode, String expected) throws IOException {\r
+ System.out.println("-------------------------------------------------");\r
+ System.out.println(toEncode);\r
+ System.out.println();\r
+ System.out.println(expected);\r
+ System.out.println();\r
+ String result = Symm.base64.encode(toEncode);\r
+ System.out.println(result);\r
+ assertEquals(expected,result);\r
+ \r
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();\r
+ Symm.base64.decode(new ByteArrayInputStream(result.getBytes()), baos);\r
+ result = baos.toString(Config.UTF_8);\r
+ System.out.println(result);\r
+ assertEquals(toEncode,result);\r
+ \r
+ }\r
}\r