@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_decrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] decryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).decrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(decryptResult); } catch (CryptoException e) { throw new FunctionExecutionException(e); } }
@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_decrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] decryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).decrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(decryptResult); } catch (CryptoException e) { throw new FunctionExecutionException(e); } }
@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_decrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] decryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).decrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(decryptResult); } catch (CryptoException e) { throw new FunctionExecutionException(e); } }
@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)); }