PKCS12PBECipherCore(String symmCipherAlg, int defKeySize) throws NoSuchAlgorithmException { algo = symmCipherAlg; if (algo.equals("RC4")) { pbeAlgo = "PBEWithSHA1AndRC4_" + defKeySize * 8; } else { SymmetricCipher symmCipher = null; if (algo.equals("DESede")) { symmCipher = new DESedeCrypt(); pbeAlgo = "PBEWithSHA1AndDESede"; } else if (algo.equals("RC2")) { symmCipher = new RC2Crypt(); pbeAlgo = "PBEWithSHA1AndRC2_" + defKeySize * 8; } else { throw new NoSuchAlgorithmException( "No Cipher implementation " + "for PBEWithSHA1And" + algo); } blockSize = symmCipher.getBlockSize(); cipher = new CipherCore(symmCipher, blockSize); cipher.setMode("CBC"); try { cipher.setPadding("PKCS5Padding"); } catch (NoSuchPaddingException nspe) { // should not happen } } keySize = defKeySize; }
/** * Sets the mode of this cipher. * * @param mode the cipher mode * @exception NoSuchAlgorithmException if the requested cipher mode does not exist */ protected void engineSetMode(String mode) throws NoSuchAlgorithmException { core.setMode(mode); }