@Test public void testSymmetricEncryptionWithRandomKey() throws Exception { SymmetricCryptor randomSymCryptor = SymmetricCryptor.getSymmectricCryptor(true); ArrayList test = new ArrayList(Arrays.asList(new String[] {ALPHA_L, ALPHA_U, CLEARTEXT, NUMBERS})); Object result = randomSymCryptor.sealObject(test); //ensure that we can serialize ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(result); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bais); result = ois.readObject(); ArrayList clearObject = (ArrayList)randomSymCryptor.unsealObject(result); assertEquals(test, clearObject); SymmetricCryptor cryptor1 = SymmetricCryptor.getSymmectricCryptor(randomSymCryptor.getEncodedKey(), true); clearObject = (ArrayList)cryptor1.unsealObject(result); assertEquals(test, clearObject); }
@Test public void testKeyGenerationDefault() throws CryptoException { DhKeyGenerator keyGenServer = new DhKeyGenerator(); DhKeyGenerator keyGenClient = new DhKeyGenerator(); byte[] serverKey = keyGenServer.createPublicKey(true); byte[] clientKey = keyGenClient.createPublicKey(true); SymmetricCryptor serverCryptor = keyGenServer.getSymmetricCryptor(clientKey, false, TestDhKeyGenerator.class.getClassLoader(), true, true); SymmetricCryptor clientCryptor = keyGenClient.getSymmetricCryptor(serverKey, false, TestDhKeyGenerator.class.getClassLoader(), true, true); String cleartext = "cleartext!"; //$NON-NLS-1$ byte[] ciphertext = serverCryptor.encrypt(cleartext.getBytes(Charset.forName("UTF-8"))); byte[] cleartext2 = clientCryptor.decrypt(ciphertext); assertArrayEquals(cleartext.getBytes(Charset.forName("UTF-8")), cleartext2); assertTrue(!ciphertext.equals(cleartext)); Object sealed = serverCryptor.sealObject(cleartext); Object unsealed = clientCryptor.unsealObject(sealed); assertEquals(cleartext, unsealed); assertTrue(!sealed.equals(unsealed)); }