|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.motorola.iden.crypto.CipherSpi | +--com.motorola.iden.provider.RSA
The RSA encryption algorithm, with PKCS1v15Padding.
If the number of bits in the modulus is bitlength,the bitlength should be greater than 384 and less than 1024. Otherwise, an InvalidKeyException will be thrown.
For public key operation, key must be an instance of com.motorola.iden.crypto.RSA_PublicKey.
For private key operation, key must be an instance of com.motorola.iden.crypto.RSA_PrivateKey.
When in DECRYPT mode,ciphertext block sizes should be (int) (bitlength/8)
.
Otherwise, IllegalBlockSizeException will be thrown.
When in ENCRYPT mode, the plaintext block size sould be less than (int)(bitlength/8)-11
.
Otherwise, IllegalBlockSizeException will be thrown.
[CipherSpi]
Constructor Summary | |
RSA()
|
Method Summary | |
protected byte[] |
engineDoFinal(byte[] input,
int inputOffset,
int inputLen)
Encrypts or decrypts data in a single-part operation, The data is encrypted or decrypted, depending on how this cipher was initialized. |
protected int |
engineGetBlockSize()
Returns the block size (in bytes). |
protected byte[] |
engineGetIV()
RSA does not use IV |
protected 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 void |
engineSetMode(java.lang.String mode)
Sets the mode of this cipher. |
protected void |
engineSetPadding(java.lang.String padding)
Sets the padding mechanism of this cipher. |
protected byte[] |
engineUpdate(byte[] input,
int inputOffset,
int inputLen)
NOT implemented in RSA cipher. |
protected void |
finalize()
|
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public RSA()
Method Detail |
protected void engineSetMode(java.lang.String mode) throws NoSuchAlgorithmException
engineSetMode
in class CipherSpi
mode
- the cipher modeNoSuchAlgorithmException
- if the requested cipher mode does
not existprotected void engineSetPadding(java.lang.String padding) throws NoSuchPaddingException
engineSetPadding
in class CipherSpi
padding
- the padding mechanismNoSuchPaddingException
- if the requested padding mechanism
does not existprotected int engineGetBlockSize()
engineGetBlockSize
in class CipherSpi
protected byte[] engineGetIV()
engineGetIV
in class CipherSpi
java.lang.SecurityException
- if called.protected void engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
The cipher is initialized for one of the following four operations:
encryption, decryption,depending on the value of opmode
.
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.
engineInit
in class CipherSpi
opmode
- the operation mode of this cipher (this is one of
the following:
ENCRYPT_MODE
, DECRYPT_MODE
key
- the encryption key, must be instance of com.mot.provider.RSAPublicKey or
com.mot.provider.RSAPrivateKey.params
- the algorithm parameters, always set to null in RSA cipher.random
- the source of randomness, always set to null in RSA cipher.InvalidKeyException
- if the given key is inappropriate for
initializing this cipherInvalidAlgorithmParameterException
- if opmode is not Cipher.ECRYPT or Cipher.DECRYPT.protected byte[] engineUpdate(byte[] input, int inputOffset, int inputLen)
engineUpdate
in class CipherSpi
java.lang.SecurityException
- if called.protected byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException
The first inputLen
bytes in the input
buffer, starting at inputOffset
inclusive,
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.
engineDoFinal
in class CipherSpi
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 bytesprotected void finalize()
finalize
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |