| java.lang.Object com.sun.midp.crypto.Cipher com.sun.midp.crypto.ARC4
ARC4 | final public class ARC4 extends Cipher (Code) | | This class implements the ARCfour stream cipher
|
Method Summary | |
public void | ARC4() | 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. | public void | init(int opmode, Key key, CryptoParameter params) Initializes the cipher's S-boxes based on the key. | protected void | setChainingModeAndPadding(String mode, String padding) Called by the factory method to set the mode and padding parameters. | public int | update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) Update the current data record. |
ARC4 | public void ARC4()(Code) | | Constructor for algorithm 3 (ALG_ARCFOUR)
|
doFinal | 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 |
init | public void init(int opmode, Key key, CryptoParameter params) throws InvalidKeyException, InvalidAlgorithmParameterException(Code) | | Initializes the cipher's S-boxes based on the key.
This code is based on the cipher's description in
Bruce Schenier's "Applied Cryptography", Second Edition, pp 397-398,
ISBN 0-471-11709-9
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. exception: IllegalArgumentException - if the opmode is invalid |
setChainingModeAndPadding | protected void setChainingModeAndPadding(String mode, String padding) throws NoSuchPaddingException(Code) | | Called by the factory method to set the mode and padding parameters.
Need because Class.newInstance does not take args.
Parameters: mode - the mode parsed from the transformation parameter ofgetInstance and upper cased Parameters: padding - the paddinge parsed from the transformation parameter ofgetInstance and upper cased exception: NoSuchPaddingException - if transformation contains a padding scheme that is not available exception: IllegalArgumentException - if the mode is invalid for thecipher |
update | public int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException(Code) | | Update the current data record.
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 |
Methods inherited from com.sun.midp.crypto.Cipher | abstract public int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException, IllegalBlockSizeException, BadPaddingException(Code)(Java Doc) public byte[] getIV()(Code)(Java Doc) final public static Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException(Code)(Java Doc) public void init(int opmode, Key key) throws InvalidKeyException(Code)(Java Doc) abstract public void init(int opmode, Key key, CryptoParameter params) throws InvalidKeyException, InvalidAlgorithmParameterException(Code)(Java Doc) abstract protected void setChainingModeAndPadding(String mode, String padding) throws NoSuchPaddingException(Code)(Java Doc) abstract public int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException(Code)(Java Doc)
|
|
|