|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.motorola.iden.crypto.CipherSpi
This class defines the Service Provider Interface (SPI)
for the Cipher
class.
All the abstract methods in this class must be implemented by each
cryptographic service provider who wishes to supply the implementation
of a particular cipher algrithm
[Cipher]
Constructor Summary | |
CipherSpi()
|
Method Summary | |
protected abstract byte[] |
engineDoFinal(byte[] input,
int inputOffset,
int inputLen)
Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation. |
protected abstract int |
engineGetBlockSize()
Returns the block size (in bytes). |
protected abstract byte[] |
engineGetIV()
Returns the initialization vector (IV) in a new buffer. |
protected abstract void |
engineInit(int opmode,
Key key,
AlgorithmParameterSpec params,
SecureRandom random)
Initializes this cipher with a key, a set of algorithm parameters, and a source of randomness. |
protected abstract void |
engineSetMode(java.lang.String mode)
Sets the mode of this cipher. |
protected abstract void |
engineSetPadding(java.lang.String padding)
Sets the padding mechanism of this cipher. |
protected abstract byte[] |
engineUpdate(byte[] input,
int inputOffset,
int inputLen)
Continues a multiple-part encryption or decryption operation (depending on how this cipher was initialized), processing another data part. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public CipherSpi()
Method Detail |
protected abstract void engineSetMode(java.lang.String mode) throws NoSuchAlgorithmException
mode
- the cipher modeNoSuchAlgorithmException
- if the requested cipher mode does
not existprotected abstract void engineSetPadding(java.lang.String padding) throws NoSuchPaddingException
padding
- the padding mechanismNoSuchPaddingException
- if the requested padding mechanism
does not existprotected abstract int engineGetBlockSize()
protected abstract byte[] engineGetIV()
This is useful in the context of password-based encryption or decryption, where the IV is derived from a user-provided passphrase.
protected abstract void engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
The cipher is initialized for one of the following two 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 this cipher requires any random bytes, it will get
them from random
.
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.
opmode
- the operation mode of this cipher (this is one of
the following:
ENCRYPT_MODE
, DECRYPT_MODE
,key
- the encryption keyparams
- the algorithm parametersrandom
- the source of randomnessInvalidKeyException
- if the given key is inappropriate for
initializing this cipherInvalidAlgorithmParameterException
- if the given algorithm
parameters are inappropriate for this cipher,
or if this cipher is being initialized for decryption and requires
algorithm parameters and params
is null.protected abstract byte[] engineUpdate(byte[] input, int inputOffset, int inputLen)
The first inputLen
bytes in the input
buffer, starting at inputOffset
inclusive, are processed,
and the result is stored in a new buffer.
input
- the input bufferinputOffset
- the offset in input
where the input
startsinputLen
- the input lengthprotected abstract byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException
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 a new buffer.
A call to this method resets this cipher object to the state
it was in when previously initialized via a call to
engineInit
.
That is, the object is reset and available to encrypt or decrypt
(depending on the operation mode that was specified in the call to
engineInit
) more data.
input
- the input bufferinputOffset
- the offset in input
where the input
startsinputLen
- the input lengthIllegalBlockSizeException
- if this cipher is a block cipher,
no padding has been requested (only in encryption mode), and the total
input length of the data processed by this cipher is not a multiple of
block sizeBadPaddingException
- if this cipher is in decryption mode,
and (un)padding has been requested, but the decrypted data is not
bounded by the appropriate padding bytes
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |