|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--net.rim.device.api.crypto.RC5EncryptorEngine
The RC5EncryptorEngine class implements the encryption 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 | ||
|
RC5EncryptorEngine(RC5Key key)
Creates an RC5EncryptorEngine object given an RC5 key. |
|
|
RC5EncryptorEngine(RC5Key key,
int blockLength)
Creates an RC5EncryptorEngine object given an RC5 key. |
|
|
RC5EncryptorEngine(RC5Key key,
int blockLength,
int numberOfRounds)
Creates a RC5EncryptorEngine object given an RC5 key, the block length, and
the number of rounds.
|
|
| Method Summary | ||
|
void |
encrypt(byte[] plaintext,
int plaintextOffset,
byte[] ciphertext,
int ciphertextOffset)
Encrypts a block of the given plaintext into a block of ciphertext. |
|
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 engine 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 RC5EncryptorEngine(RC5Key key) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5EncryptorEngine 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 RC5EncryptorEngine(RC5Key key, int blockLength) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5EncryptorEngine object given an RC5 key. The cipher is computed for 16 rounds.
key - The RC5 key to use with the engine.blockLength - The block length of the cipher.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 RC5EncryptorEngine(RC5Key key, int blockLength, int numberOfRounds) throws CryptoTokenException, CryptoUnsupportedOperationException
RC5EncryptorEngine 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).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 BlockEncryptorEnginepublic int getBlockLength()
BlockEncryptorEnginegetBlockLength in interface BlockEncryptorEnginepublic 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 encrypt(byte[] plaintext,
int plaintextOffset,
byte[] ciphertext,
int ciphertextOffset)
throws CryptoTokenException
BlockEncryptorEngineencrypt in interface BlockEncryptorEngine
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2002 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.