|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.rim.device.api.crypto.RC5DecryptorEngine
public final class RC5DecryptorEngine
The RC5DecryptorEngine
class implements the decryption functionality
of the RC5 block cipher.
We implemented RC5 as per RFC 2040.
Note: The RIM implementation has some limitations compared to the specified algorithm itself. The RIM implementation only supports a block size of 64. As well, the RIM implementation only allows 16 rounds or less. It does not allow more than 16 rounds. However, the key size is allowed to range from its minimum to maximum (0 to 2040 bits).
Constructor Summary | ||
---|---|---|
|
RC5DecryptorEngine(RC5Key key)
Creates an RC5DecryptorEngine object given an RC5 key. |
|
|
RC5DecryptorEngine(RC5Key key,
int blockLength)
Creates an RC5DecryptorEngine object given an RC5 key. |
|
|
RC5DecryptorEngine(RC5Key key,
int blockLength,
int numberOfRounds)
Creates an RC5DecryptorEngine object given an RC5 key, the block length, and
the number of rounds. |
Method Summary | ||
---|---|---|
|
void |
decrypt(byte[] ciphertext,
int ciphertextOffset,
byte[] plaintext,
int plaintextOffset)
Decodes a block of the given ciphertext into a block of plaintext. |
|
String |
getAlgorithm()
Returns the name of the algorithm used, eg "RC5_64_64_16" ( "RC5_" + keyBitLength + "_" + blockBitLength + "_" + numberOfRounds ). |
|
int |
getBlockLength()
Returns the block length of the block cipher in bytes. |
|
int |
getKeyLength()
Returns the length of the engine's key in bytes. |
|
int |
getNumberOfRounds()
Returns the number of rounds used. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RC5DecryptorEngine(RC5Key key) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5DecryptorEngine
object given an RC5 key. Block length is set to 8 bytes,
and the cipher is computed for 16 rounds.
key
- The RC5 key to use with the engine.
CryptoTokenException
- Thrown when an error occurs with a crypto
token or the crypto token is invalid.
CryptoUnsupportedOperationException
- Thrown when a call is made to
an unsupported operation.public RC5DecryptorEngine(RC5Key key, int blockLength) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5DecryptorEngine
object given an RC5 key. Cipher is computed for 16 rounds.
key
- The RC5 key to use with the engine.blockLength
- The block length of the cipher. Note that if you are using the default RIM implementation
of RC5, then only a block size of 8 is supported here. Passing in 16 will cause a CryptoUnsupportedOperationException
to be thrown.
CryptoTokenException
- Thrown when an error occurs with a crypto
token or the crypto token is invalid.
CryptoUnsupportedOperationException
- Thrown when a call is made to
an unsupported operation.public RC5DecryptorEngine(RC5Key key, int blockLength, int numberOfRounds) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5DecryptorEngine
object given an RC5 key, the block length, and
the number of rounds.
key
- The RC5 key to use with the engine.blockLength
- The cipher block length in bytes (8 or 16). Note that if you are using the default RIM implementation
of RC5, then only a block size of 8 is supported here. Passing in 16 will cause a CryptoUnsupportedOperationException
to be thrown. Note that if you are using the default RIM implementation
of RC5, then only a block size of 8 is supported here. Passing in 16 will cause a CryptoUnsupportedOperationException
to be thrown.numberOfRounds
- The number of rounds (0 to 255).
CryptoTokenException
- Thrown when an error occurs with a crypto
token or the crypto token is invalid.
CryptoUnsupportedOperationException
- Thrown when a call is made to
an unsupported operation.Method Detail |
---|
public String getAlgorithm()
"RC5_" + keyBitLength + "_" + blockBitLength + "_" + numberOfRounds
).
getAlgorithm
in interface BlockDecryptorEngine
public int getBlockLength()
BlockDecryptorEngine
getBlockLength
in interface BlockDecryptorEngine
public int getKeyLength()
public int getNumberOfRounds()
The number of rounds specifies the number of times the plaintext has been "scrambled". In theory, the encryption scheme becomes more secure as the number of rounds is increased.
public void decrypt(byte[] ciphertext, int ciphertextOffset, byte[] plaintext, int plaintextOffset) throws CryptoTokenException
BlockDecryptorEngine
decrypt
in interface BlockDecryptorEngine
ciphertext
- A byte array containing the input that is to be decrypted.ciphertextOffset
- The starting offset, or initial byte position, of the data within the input array.plaintext
- A byte array containing the output from the method.plaintextOffset
- The starting offset, or initial byte position, of
the data within the output array.
CryptoTokenException
- Thrown when an error occurs with the crypto
token or the crypto token is invalid.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2010 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.