|
|||||||||
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).
For information on cryptographic algorithms, see Crypto Algorithms.
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. 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 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). 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 void encrypt(byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset) throws CryptoTokenException
BlockEncryptorEngine
BlockEncryptorEngine
plaintext
- A byte array containing the input that is to be encrypted.plaintextOffset
- The starting offset, or initial byte position, of
the data within the input array.ciphertext
- A byte array to hold the ciphertext output from the method.ciphertextOffset
- The starting offset, or initial byte position, of
the data within the output array.CryptoTokenException
- Thrown when an problem occurs with the
crypto token or the crypto token is invalid.public String getAlgorithm()
"RC5_" + keyBitLength + "_" + blockBitLength + "_" + numberOfRounds
).
public int getBlockLength()
BlockEncryptorEngine
BlockEncryptorEngine
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.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2008 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.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.