| java.lang.Object javax.crypto.Cipher
Cipher | public class Cipher (Code) | | This class provides the functionality of a cryptographic cipher for
encryption and decryption. It forms the core of the Java Cryptographic
Extension (JCE) framework.
In order to create a Cipher object, the application calls the
Cipher's getInstance method, and passes the name of the
requested transformation to it.
A transformation is a string that describes the operation (or
set of operations) to be performed on the given input, to produce some
output. A transformation always includes the name of a cryptographic
algorithm (e.g., DES), and may be followed by a feedback mode and
padding scheme.
A transformation is of the form:
- "algorithm/mode/padding" or
- "algorithm"
(in the latter case,
provider-specific default values for the mode and padding scheme are used).
For example, the following is a valid transformation:
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
When requesting a block cipher in stream cipher mode (e.g.,
DES in CFB or OFB mode), the user may
optionally specify the number of bits to be
processed at a time, by appending this number to the mode name as shown in
the "DES/CFB8/NoPadding" and "DES/OFB32/PKCS5Padding"
transformations. If no such number is specified, a provider-specific default
is used.
version: 1.108, 04/03/02 |
Field Summary | |
final public static int | DECRYPT_MODE Constant used to initialize cipher to decryption mode. | final public static int | ENCRYPT_MODE Constant used to initialize cipher to encryption mode. |
Method Summary | |
final public int | doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) Encrypts or decrypts data in a single-part operation, or finishes a
multiple-part operation. | final public byte[] | getIV() Returns the initialization vector (IV) in a new buffer. | final public static Cipher | getInstance(String transformation) Generates a Cipher object that implements the specified
transformation.
Parameters: transformation - the name of the transformation, e.g.,DES/CBC/PKCS5Padding.See Appendix A in theJava Cryptography Extension Reference Guidefor information about standard transformation names. | final public void | init(int opmode, Key key) Initializes this cipher with a key.
The cipher is initialized for one of the following operations:
encryption, decryption, depending
on the value of opmode .
If this cipher requires any algorithm parameters that cannot be
derived from the given key , the underlying cipher
implementation is supposed to generate the required parameters itself
(using provider-specific default or random values) if it is being
initialized for encryption, and raise an
InvalidKeyException if it is being
initialized for decryption.
Note that when a Cipher object is initialized, it loses all
previously-acquired state. | final public void | init(int opmode, Key key, AlgorithmParameterSpec params) Initializes this cipher with a key and a set of algorithm
parameters.
The cipher is initialized for one of the following operations:
encryption or decryption depending
on the value of opmode .
If this cipher requires any algorithm parameters and
params is null, the underlying cipher implementation is
supposed to generate the required parameters itself (using
provider-specific default or random values) if it is being
initialized for encryption, and raise an
InvalidAlgorithmParameterException if it is being
initialized for decryption.
Note that when a Cipher object is initialized, it loses all
previously-acquired state. | final public int | update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) Continues a multiple-part encryption or decryption operation
(depending on how this cipher was initialized), processing another data
part.
The first inputLen bytes in the input
buffer, starting at inputOffset inclusive, are processed,
and the result is stored in the output buffer, starting at
outputOffset inclusive.
If the output buffer is too small to hold the result,
a ShortBufferException is thrown. |
DECRYPT_MODE | final public static int DECRYPT_MODE(Code) | | Constant used to initialize cipher to decryption mode.
|
ENCRYPT_MODE | final public static int ENCRYPT_MODE(Code) | | Constant used to initialize cipher to encryption mode.
|
doFinal | final public int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException, IllegalBlockSizeException, BadPaddingException(Code) | | Encrypts or decrypts data in a single-part operation, or finishes a
multiple-part operation. The data is encrypted or decrypted,
depending on how this cipher was initialized.
The first inputLen bytes in the input
buffer, starting at inputOffset inclusive, and any input
bytes that may have been buffered during a previous
update operation, are processed, with padding
(if requested) being applied.
The result is stored in the output buffer, starting at
outputOffset inclusive.
If the output buffer is too small to hold the result,
a ShortBufferException is thrown. In this case, repeat this
call with a larger output buffer.
Upon finishing, this method resets this cipher object to the state
it was in when previously initialized via a call to init .
That is, the object is reset and available to encrypt or decrypt
(depending on the operation mode that was specified in the call to
init ) more data.
Note: if any exception is thrown, this cipher object may need to
be reset before it can be used again.
Note: this method should be copy-safe, which means the
input and output buffers can reference
the same byte array and no unprocessed input data is overwritten
when the result is copied into the output buffer.
Parameters: input - the input buffer Parameters: inputOffset - the offset in input where the inputstarts Parameters: inputLen - the input length Parameters: output - the buffer for the result Parameters: outputOffset - the offset in output where the resultis stored the number of bytes stored in output exception: IllegalStateException - if this cipher is in a wrong state(e.g., has not been initialized) exception: IllegalBlockSizeException - if this cipher is a block cipher,no padding has been requested (only in encryption mode), and the totalinput length of the data processed by this cipher is not a multiple ofblock size exception: ShortBufferException - if the given output buffer is too smallto hold the result exception: BadPaddingException - if this cipher is in decryption mode,and (un)padding has been requested, but the decrypted data is notbounded by the appropriate padding bytes |
getIV | final public byte[] getIV()(Code) | | Returns the initialization vector (IV) in a new buffer.
This is useful in the case where a random IV was created.
the initialization vector in a new buffer,or null if the underlying algorithm doesnot use an IV, or if the IV has not yet been set. |
init | final public void init(int opmode, Key key) throws InvalidKeyException(Code) | | Initializes this cipher with a key.
The cipher is initialized for one of the following operations:
encryption, decryption, depending
on the value of opmode .
If this cipher requires any algorithm parameters that cannot be
derived from the given key , the underlying cipher
implementation is supposed to generate the required parameters itself
(using provider-specific default or random values) if it is being
initialized for encryption, and raise an
InvalidKeyException if it is being
initialized for decryption.
Note that when a Cipher object is initialized, it loses all
previously-acquired state. In other words, initializing a Cipher is
equivalent to creating a new instance of that Cipher and initializing
it.
Parameters: opmode - the operation mode of this cipher (this is one ofthe following:ENCRYPT_MODE or DECRYPT_MODE ) Parameters: key - the key exception: InvalidKeyException - if the given key is inappropriate forinitializing this cipher, or if this cipher is being initialized fordecryption and requires algorithm parameters that cannot bedetermined from the given key, or if the given key has a keysize thatexceeds the maximum allowable keysize. |
init | final public void init(int opmode, Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException(Code) | | Initializes this cipher with a key and a set of algorithm
parameters.
The cipher is initialized for one of the following operations:
encryption or decryption depending
on the value of opmode .
If this cipher requires any algorithm parameters and
params is null, the underlying cipher implementation is
supposed to generate the required parameters itself (using
provider-specific default or random values) if it is being
initialized for encryption, and raise an
InvalidAlgorithmParameterException if it is being
initialized for decryption.
Note that when a Cipher object is initialized, it loses all
previously-acquired state. In other words, initializing a Cipher is
equivalent to creating a new instance of that Cipher and initializing
it.
Parameters: opmode - the operation mode of this cipher (this is one of thefollowing:ENCRYPT_MODE or DECRYPT_MODE ) Parameters: key - the encryption key Parameters: params - the algorithm parameters exception: InvalidKeyException - if the given key is inappropriate forinitializing this cipher, or its keysize exceeds the maximum allowablekeysize. exception: InvalidAlgorithmParameterException - if the given algorithmparameters are inappropriate for this cipher,or this cipher is being initialized for decryption and requiresalgorithm parameters and params is null, or the givenalgorithm parameters imply a cryptographic strength that would exceedthe legal limits. |
update | final public int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException(Code) | | Continues a multiple-part encryption or decryption operation
(depending on how this cipher was initialized), processing another data
part.
The first inputLen bytes in the input
buffer, starting at inputOffset inclusive, are processed,
and the result is stored in the output buffer, starting at
outputOffset inclusive.
If the output buffer is too small to hold the result,
a ShortBufferException is thrown. In this case, repeat this
call with a larger output buffer.
If inputLen is zero, this method returns
a length of zero.
Note: this method should be copy-safe, which means the
input and output buffers can reference
the same byte array and no unprocessed input data is overwritten
when the result is copied into the output buffer.
Parameters: input - the input buffer Parameters: inputOffset - the offset in input where the inputstarts Parameters: inputLen - the input length Parameters: output - the buffer for the result Parameters: outputOffset - the offset in output where the resultis stored the number of bytes stored in output exception: IllegalStateException - if this cipher is in a wrong state(e.g., has not been initialized) exception: ShortBufferException - if the given output buffer is too smallto hold the result |
|
|