org.mozilla.jss.crypto

Class Cipher

public abstract class Cipher extends Object

Deprecated: Use the JCA interface instead (javax.crypto.Cipher)

A 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 to update. Finally, doFinal is called to finalize the operation. Note that it is not necessary to call update if all of the data is available at once. In this case, all of the input can be processed with one call to doFinal.
Method Summary
abstract byte[]doFinal(byte[] bytes)
Completes an cipher operation.
abstract byte[]doFinal(byte[] bytes, int offset, int length)
Completes an cipher operation.
abstract byte[]doFinal()
Completes an cipher operation.
abstract voidinitDecrypt(SymmetricKey key)
Initializes a decryption context with a symmetric key.
abstract voidinitDecrypt(SymmetricKey key, 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, 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, int blockSize)
Un-pads a byte array that is padded with PKCS padding.
static byte[]unPad(byte[] padded)
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

doFinal

public abstract byte[] doFinal(byte[] bytes)
Completes an cipher operation. This can be called directly after the context is initialized, or update may be called any number of times before calling final.

Parameters: bytes Bytes of plaintext (if encrypting) or ciphertext (if decrypting).

Returns: The last of the output.

doFinal

public abstract byte[] doFinal(byte[] bytes, int offset, int length)
Completes an cipher operation.

Parameters: bytes Bytes of plaintext (if encrypting) or ciphertext (if decrypting). offset The index in bytes at which to begin reading. length The number of bytes from bytes to read.

Returns: The last of the output.

doFinal

public abstract byte[] doFinal()
Completes an cipher operation.

Returns: The last of the output.

initDecrypt

public abstract void initDecrypt(SymmetricKey key)
Initializes a decryption context with a symmetric key.

initDecrypt

public abstract void initDecrypt(SymmetricKey key, AlgorithmParameterSpec parameters)
Initializes a decryption context with a symmetric key and algorithm parameters.

initEncrypt

public abstract void initEncrypt(SymmetricKey key)
Initializes a encryption context with a symmetric key.

initEncrypt

public abstract void initEncrypt(SymmetricKey key, AlgorithmParameterSpec parameters)
Initializes an encryption context with a symmetric key and algorithm parameters.

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: The block size of the encryption algorithm. Must be greater than zero.

See Also: Cipher

unPad

public static byte[] unPad(byte[] padded, int blockSize)
Un-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.

See Also: Cipher

unPad

public static byte[] unPad(byte[] padded)
Un-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.

See Also: Cipher

update

public abstract byte[] update(byte[] bytes)
Updates 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).

update

public abstract byte[] update(byte[] bytes, int offset, int length)
Updates the encryption context with additional plaintext.

Parameters: bytes Bytes of plaintext (if encrypting) or ciphertext (if decrypting). offset The index in bytes at which to begin reading. length The number of bytes from bytes to read.

Returns: Bytes of ciphertext (if encrypting) or plaintext (if decrypting).