Package org.mozilla.jss.crypto
Class Cipher
- java.lang.Object
-
- org.mozilla.jss.crypto.Cipher
-
public abstract class Cipher extends java.lang.ObjectA context for performing symmetric encryption and decryption. First, the context must be initialized. Then, it can be updated with input through zero or more calls toupdate. Finally,doFinalis called to finalize the operation. Note that it is not necessary to callupdateif all of the data is available at once. In this case, all of the input can be processed with one call todoFinal.
-
-
Constructor Summary
Constructors Constructor Description Cipher()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract byte[]doFinal()Completes an cipher operation.abstract byte[]doFinal(byte[] bytes)Completes an cipher operation.abstract byte[]doFinal(byte[] bytes, int offset, int length)Completes an cipher operation.abstract voidinitDecrypt(SymmetricKey key)Initializes a decryption context with a symmetric key.abstract voidinitDecrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters)Initializes a decryption context with a symmetric key and algorithm parameters.abstract voidinitEncrypt(SymmetricKey key)Initializes a encryption context with a symmetric key.abstract voidinitEncrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters)Initializes an encryption context with a symmetric key and algorithm parameters.static byte[]pad(byte[] toBePadded, int blockSize)Pads a byte array so that its length is a multiple of the given blocksize.static byte[]unPad(byte[] padded)Un-pads a byte array that is padded with PKCS padding.static byte[]unPad(byte[] padded, int blockSize)Un-pads a byte array that is padded with PKCS padding.abstract byte[]update(byte[] bytes)Updates the encryption context with additional input.abstract byte[]update(byte[] bytes, int offset, int length)Updates the encryption context with additional plaintext.
-
-
-
Method Detail
-
initEncrypt
public abstract void initEncrypt(SymmetricKey key) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, TokenException
Initializes a encryption context with a symmetric key.- Throws:
java.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionTokenException
-
initDecrypt
public abstract void initDecrypt(SymmetricKey key) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, TokenException
Initializes a decryption context with a symmetric key.- Throws:
java.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionTokenException
-
initEncrypt
public abstract void initEncrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, TokenException
Initializes an encryption context with a symmetric key and algorithm parameters.- Throws:
java.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionTokenException
-
initDecrypt
public abstract void initDecrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, TokenException
Initializes a decryption context with a symmetric key and algorithm parameters.- Throws:
java.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionTokenException
-
update
public abstract byte[] update(byte[] bytes) throws java.lang.IllegalStateException, TokenExceptionUpdates the encryption context with additional input.- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).- Returns:
- Bytes of ciphertext (if encrypting) or plaintext (if decrypting).
- Throws:
java.lang.IllegalStateExceptionTokenException
-
update
public abstract byte[] update(byte[] bytes, int offset, int length) throws java.lang.IllegalStateException, TokenExceptionUpdates the encryption context with additional plaintext.- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).offset- The index inbytesat which to begin reading.length- The number of bytes frombytesto read.- Returns:
- Bytes of ciphertext (if encrypting) or plaintext (if decrypting).
- Throws:
java.lang.IllegalStateExceptionTokenException
-
doFinal
public abstract byte[] doFinal(byte[] bytes) throws java.lang.IllegalStateException, IllegalBlockSizeException, javax.crypto.BadPaddingException, TokenExceptionCompletes an cipher operation. This can be called directly after the context is initialized, orupdatemay be called any number of times before callingfinal.- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).- Returns:
- The last of the output.
- Throws:
java.lang.IllegalStateExceptionIllegalBlockSizeExceptionjavax.crypto.BadPaddingExceptionTokenException
-
doFinal
public abstract byte[] doFinal(byte[] bytes, int offset, int length) throws java.lang.IllegalStateException, IllegalBlockSizeException, javax.crypto.BadPaddingException, TokenExceptionCompletes an cipher operation.- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).offset- The index inbytesat which to begin reading.length- The number of bytes frombytesto read.- Returns:
- The last of the output.
- Throws:
java.lang.IllegalStateExceptionIllegalBlockSizeExceptionjavax.crypto.BadPaddingExceptionTokenException
-
doFinal
public abstract byte[] doFinal() throws java.lang.IllegalStateException, IllegalBlockSizeException, javax.crypto.BadPaddingException, TokenExceptionCompletes an cipher operation.- Returns:
- The last of the output.
- Throws:
java.lang.IllegalStateExceptionIllegalBlockSizeExceptionjavax.crypto.BadPaddingExceptionTokenException
-
pad
public static byte[] pad(byte[] toBePadded, int blockSize)Pads a byte array so that its length is a multiple of the given blocksize. The method of padding is the one defined in the RSA PKCS standards. If M is the length of the data and B is the block size, the padding string consists of B - (M mod B) octets, each having the value B - (M mod B).- Parameters:
toBePadded- The byte array to pad.blockSize- The block size of the encryption algorithm. Must be greater than zero.- See Also:
unPad(byte[], int)
-
unPad
public static byte[] unPad(byte[] padded, int blockSize) throws javax.crypto.BadPaddingExceptionUn-pads a byte array that is padded with PKCS padding.- Parameters:
blockSize- The block size of the encryption algorithm. This is only used for error checking: if the pad size is not between 1 and blockSize, a BadPaddingException is thrown.- Throws:
javax.crypto.BadPaddingException- See Also:
pad(byte[], int)
-
unPad
public static byte[] unPad(byte[] padded) throws javax.crypto.BadPaddingExceptionUn-pads a byte array that is padded with PKCS padding. Since this version does not take block size as a parameter, it cannot error check.- Throws:
javax.crypto.BadPaddingException- See Also:
pad(byte[], int)
-
-