/** * Creates a new SymmetricCryptor with a new symmetric key * * @return a new SymmetricCryptor * @throws CryptoException */ public static SymmetricCryptor getSymmectricCryptor(boolean cbc) throws CryptoException { Key key = generateKey(); return new SymmetricCryptor(key, cbc); }
public static void main(String[] args) throws Exception { if (args.length != 1) { System.out.println("The file to create must be supplied as the only argument."); //$NON-NLS-1$ System.exit(-1); } SymmetricCryptor.generateAndSaveKey(args[0]); } }
public static void generateAndSaveKey(String file) throws CryptoException, IOException { SecretKey key = generateKey(); saveKey(file, key); }
@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_encrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] encryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).encrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(encryptResult); } 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)); }
@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); }
byte[] symKey = new byte[keySize / 8]; System.arraycopy(hash, 0, symKey, 0, symKey.length); SymmetricCryptor sc = SymmetricCryptor.getSymmectricCryptor(symKey, cbc); sc.setUseSealedObject(useSealedObject); sc.setClassLoader(classLoader); return sc; } catch (NoSuchAlgorithmException e) {
@BeforeClass public static void oneTimeSetup() throws CryptoException, IOException { cryptor = SymmetricCryptor.getSymmectricCryptor(TestEncryptDecrypt.class.getResource("/teiid.keystore")); //$NON-NLS-1$ }
@Override public void initialize() throws TeiidComponentException { manager.initialize(); try { key = SymmetricCryptor.generateKey(); } catch (CryptoException e) { throw new TeiidComponentException(e); } }
/** * Creates a SymmetricCryptor using the supplied byte array as the key * * @param key * @return a new SymmetricCryptor * @throws CryptoException */ public static SymmetricCryptor getSymmectricCryptor(byte[] key, boolean cbc) throws CryptoException { Key secretKey = new SecretKeySpec(key, DEFAULT_SYM_KEY_ALGORITHM); return new SymmetricCryptor(secretKey, cbc); }
@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_encrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] encryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).encrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(encryptResult); } 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); } }
byte[] symKey = new byte[keySize / 8]; System.arraycopy(hash, 0, symKey, 0, symKey.length); SymmetricCryptor sc = SymmetricCryptor.getSymmectricCryptor(symKey, cbc); sc.setUseSealedObject(useSealedObject); sc.setClassLoader(classLoader); return sc; } catch (NoSuchAlgorithmException e) {
public static void generateAndSaveKey(String file) throws CryptoException, IOException { SecretKey key = generateKey(); saveKey(file, key); }
@Override public void initialize() throws TeiidComponentException { manager.initialize(); try { key = SymmetricCryptor.generateKey(); } catch (CryptoException e) { throw new TeiidComponentException(e); } }
/** * Creates a SymmetricCryptor using the supplied byte array as the key * * @param key * @return a new SymmetricCryptor * @throws CryptoException */ public static SymmetricCryptor getSymmectricCryptor(byte[] key, boolean cbc) throws CryptoException { Key secretKey = new SecretKeySpec(key, DEFAULT_SYM_KEY_ALGORITHM); return new SymmetricCryptor(secretKey, cbc); }
@TeiidFunction(category=FunctionCategoryConstants.SECURITY, nullOnNull=true) public static BinaryType aes_encrypt(BinaryType dataBytes, BinaryType keyBytes) throws FunctionExecutionException { try { byte[] encryptResult = SymmetricCryptor.getSymmectricCryptor(padkey(keyBytes.getBytesDirect()), "AES", "AES/CBC/PKCS5Padding", new IvParameterSpec(iv)).encrypt(dataBytes.getBytesDirect()); //$NON-NLS-1$ //$NON-NLS-2$ return new BinaryType(encryptResult); } 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); } }
/** * Creates a new SymmetricCryptor with a new symmetric key * * @return a new SymmetricCryptor * @throws CryptoException */ public static SymmetricCryptor getSymmectricCryptor(boolean cbc) throws CryptoException { Key key = generateKey(); return new SymmetricCryptor(key, cbc); }