/** * Construyye una configuración de cifrado. * * @param algo Algoritmo de cifrado * @param mode Modo de bloque para el cifrado * @param padd Relleno (<i>padding</i>) del cifrado */ public AOCipherConfig( final AOCipherAlgorithm algo, final AOCipherBlockMode mode, final AOCipherPadding padd) { // En caso de nulos tomamos defectos y algunas combinaciones // predefinidas final AOCipherAlgorithm ciphAlgo = algo != null ? algo : AOCipherAlgorithm.getDefault(); AOCipherBlockMode ciphMode = mode; if (ciphMode == null) { if (ciphAlgo.equals(AOCipherAlgorithm.PBEWITHMD5ANDDES) || ciphAlgo.equals(AOCipherAlgorithm.PBEWITHSHA1ANDDESEDE) || ciphAlgo.equals(AOCipherAlgorithm.PBEWITHSHA1ANDRC2_40)) { ciphMode = AOCipherBlockMode.CBC; } else { ciphMode = AOCipherBlockMode.ECB; } } AOCipherPadding ciphPadding = padd; if (ciphPadding == null) { ciphPadding = AOCipherPadding.PKCS5PADDING; } this.algo = ciphAlgo; this.mode = ciphMode; this.padding = ciphPadding; }