net.rim.device.api.crypto
Class PKCS1FormatterEngine

java.lang.Object
  extended by net.rim.device.api.crypto.PKCS1FormatterEngine
All Implemented Interfaces:
BlockFormatterEngine

public final class PKCS1FormatterEngine
extends Object
implements BlockFormatterEngine

The PKCS1FormatterEngine class provides the PKCS1 encoding functionality on a block by block basis. The block length is the size of the modulus of an EncryptorEngine minus the overhead.

We implemented the PKCS1 formatter engine as per the PKCS #1 version 2.1 document.

For a code sample using the PKCS1 formatter engine, click here.

For information on cryptographic algorithms, see Crypto Algorithms.

See Also:
PKCS1UnformatterEngine
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

Constructor Summary
Category: Signed PKCS1FormatterEngine(PublicKeyEncryptorEngine encryptorEngine)
          Creates a PKCS1FormatterEngine object that takes a PublicKeyEncryptorEngine object that will be used for encrypting the ciphertext.
 
Method Summary
Category: Signed  int formatAndEncrypt(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset)
          Formats the input into the proper format and then encrypts it, assuming this is not the last block to be encrypted.
Category: Signed  int formatAndEncrypt(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, boolean lastBlock)
          Formats the input into the proper format and then encrypts it.
Category: Signed  String getAlgorithm()
          Returns the name of the algorithm used, ie PublicKeyEncryptorEngine.getAlgorithm() + "_PKCS1".
Category: Signed  int getInputBlockLength()
          Returns the length of an input block in bytes.
Category: Signed  int getOutputBlockLength()
          Returns the length of an output block in bytes.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

PKCS1FormatterEngine

public PKCS1FormatterEngine(PublicKeyEncryptorEngine encryptorEngine)
Creates a PKCS1FormatterEngine object that takes a PublicKeyEncryptorEngine object that will be used for encrypting the ciphertext.

Parameters:
encryptorEngine - The private key engine to encrypt the data with.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0


Method Detail

getAlgorithm

public String getAlgorithm()
Returns the name of the algorithm used, ie PublicKeyEncryptorEngine.getAlgorithm() + "_PKCS1".

Specified by:
getAlgorithm in interface BlockFormatterEngine
Returns:
A String that represents the name of the algorithm.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

getInputBlockLength

public int getInputBlockLength()
Description copied from interface: BlockFormatterEngine
Returns the length of an input block in bytes.

Specified by:
getInputBlockLength in interface BlockFormatterEngine
Returns:
An integer that represents the length of a block in bytes.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

getOutputBlockLength

public int getOutputBlockLength()
Description copied from interface: BlockFormatterEngine
Returns the length of an output block in bytes.

Specified by:
getOutputBlockLength in interface BlockFormatterEngine
Returns:
An integer that represents the output block length in bytes.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

formatAndEncrypt

public int formatAndEncrypt(byte[] input,
                            int inputOffset,
                            int inputLength,
                            byte[] output,
                            int outputOffset,
                            boolean lastBlock)
                     throws MessageTooLongException,
                            CryptoTokenException
Description copied from interface: BlockFormatterEngine
Formats the input into the proper format and then encrypts it.

Specified by:
formatAndEncrypt in interface BlockFormatterEngine
Parameters:
input - A byte array containing the data to be encrypted.
inputOffset - The offset, or initial bit position, of the data within the byte array.
inputLength - The amount of data to encrypt.
output - A byte array to hold the encoded and encrypted data.
outputOffset - The offset, or initial bit position, of the data within the byte array.
lastBlock - A boolean that indicates the last block to be encrypted.
Returns:
The actual number of bytes encrypted and inserted into the output array.
Throws:
MessageTooLongException - Thrown if the input is too long to be encoded with the given encoding scheme.
CryptoTokenException - Thrown when a problem occurs with a crypto token or the crypto token is invalid.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

formatAndEncrypt

public int formatAndEncrypt(byte[] input,
                            int inputOffset,
                            int inputLength,
                            byte[] output,
                            int outputOffset)
                     throws MessageTooLongException,
                            CryptoTokenException
Description copied from interface: BlockFormatterEngine
Formats the input into the proper format and then encrypts it, assuming this is not the last block to be encrypted.

Specified by:
formatAndEncrypt in interface BlockFormatterEngine
Parameters:
input - A byte array containing the data to be encrypted.
inputOffset - The offset, or initial bit position, of the data within the byte array.
inputLength - The amount of data to encrypt.
output - A byte array to hold the encoded and encrypted data.
outputOffset - The offset, or initial bit position, of the data within the byte array.
Returns:
The actual number of bytes encrypted and placed into the output array.
Throws:
MessageTooLongException - Thrown if the input is too long to be encoded with the given encoding scheme.
CryptoTokenException - Thrown when a problem occurs with a crypto token or the crypto token is invalid.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0





Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal