Hi,
I'm attempting to create two simple method for encrypting/decrying plain text.
I have the following code:
public String encrypt(String plainText) {
byte[] plaintTextInBytes = plainText.getBytes();
Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding",
"Mozilla-JSS");
AlgorithmParameters ap = null;
cipher.init(Cipher.ENCRYPT_MODE, mozKey);
ap = cipher.getParameters();
if (ap != null) {
encodedAlgParams = ap.getEncoded();
}
byte[] ciphertext = cipher.doFinal(plaintTextInBytes);
return new String(Hex.encodeHex(ciphertext));
}
public String decrypt(String cihperText) {
byte[] chiperTextAsBytes = Hex.decodeHex(cihperText.toCharArray());
Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding",
"Mozilla-JSS");
cipher.init(Cipher.DECRYPT_MODE, mozKey);
byte[] recovered = cipher.doFinal(chiperTextAsBytes);
return new String(recovered);
}
The thing is when I decrypt the cipher.init(Cipher.DECRYPT_MODE, mozKey) method
throws the following exception:
java.security.InvalidKeyException: DESede/CBC/PKCS5Padding cannot use a null
parameter
only when I add the ap (AlgorithmParameters) from the encrypting method as
such: cipher.init(Cipher.DECRYPT_MODE, mozKey,ap) it works.
Am I missing something? How can I workaround this? since I have scenarios where
I only decrypt or cannot save the ap value.
Thanks in advance!
--
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto