SHOW Signed

net.rim.device.api.crypto.encoder
Class SymmetricKeyDecoder

java.lang.Object
  |
  +--net.rim.device.api.crypto.encoder.SymmetricKeyDecoder

public abstract class SymmetricKeyDecoder
extends Object

Allows the developer to decode symmetric keys using a variety of supported encoding algorithms. Once again, the details of creating and using the appropriate algorithm are managed by SymmetricKeyDecoder and are completely transparent to the developer.

Encoding a Symmetric Key

Encoding a public key simply involves calling the public static encode() method with the desired symmetric key. As the following code illustrates, encoding a is straightforward:

      DESKey key = new DESKey( ... );
      EncodedKey encodedKey = SymmetricKeyEncoder.encode( key, "scheme" );
 
Of course, the DES key must be properly created and initialized.

Decoding a Symmetric Key

Decoding a symmetric key is similar to encoding one. Simply call the public static decode() method with the encoded key:

      byte[] encodedKeyData = ...;
      SymmetricKey decodedKey = SymmetricKeyDecoder.decode( encodedKey, "scheme" );
 
This code assumes that encodedKey contains a properly encoded symmetric key.

Supported Encoding Algorithms

A complete list of the key encoding algorithms supported by the RIM crypto API can be found here. Currently, RIM provides the following symmetric key encoding algorithms, which can be accessed with the specifed string :

A RIM variant of PKCS8 use the encoding string "PKCS8"

For algorithms not found in this list, a developer can implement additional symmetric key decoding algorithms that can be integrated into the Crypto API. Please see the tutorial on Adding Encoders.

Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

Since:
JDE 3.6.0

Constructor Summary
 
Method Summary
 Category: Signed static SymmetricKey decode(byte[] encodedKey, String encodingAlgorithm)
          Decodes an encoded symmetric key.
 Category: Signed static SymmetricKey decode(byte[] encodedKey, String encodingAlgorithm, String keyAlgorithm)
          Decodes an encoded symmetric key.
 Category: Signed static SymmetricKey decode(InputStream encodedKey, String encodingAlgorithm)
          Decodes an encoded symmetric key.
 Category: Signed static SymmetricKey decode(InputStream encodedKey, String encodingAlgorithm, String keyAlgorithm)
          Decodes an encoded symmetric key.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail
Method Detail

decode

public static SymmetricKey decode(InputStream encodedKey,
                                  String encodingAlgorithm)
                           throws NoSuchAlgorithmException,
                                  InvalidKeyEncodingException,
                                  InvalidKeyException,
                                  CryptoTokenException,
                                  CryptoUnsupportedOperationException
Decodes an encoded symmetric key.

Parameters:
encodedKey - An input stream containing the key encoding.
encodingAlgorithm - The encoding algorithm to use to decode, such as "X509".
Returns:
The decoded symmetric key.
Throws:
NoSuchAlgorithmException - Thrown if the specified encoding algorithm cannot be found.
InvalidKeyEncodingException - Thrown if the key is incorrectly formatted.
InvalidKeyException - Thrown if the specified key is invalid.
CryptoTokenException - Thrown if an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Since:
JDE 4.0.2
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

decode

public static SymmetricKey decode(byte[] encodedKey,
                                  String encodingAlgorithm)
                           throws NoSuchAlgorithmException,
                                  InvalidKeyEncodingException,
                                  InvalidKeyException,
                                  CryptoTokenException,
                                  CryptoUnsupportedOperationException
Decodes an encoded symmetric key.

Parameters:
encodedKey - A byte array containing the key encoding.
encodingAlgorithm - The encoding algorithm to use to decode, such as "X509".
Returns:
The decoded symmetric key.
Throws:
NoSuchAlgorithmException - Thrown if the specified encoding algorithm cannot be found.
InvalidKeyEncodingException - Thrown if the key is incorrectly formatted.
InvalidKeyException - Thrown if the specified key is invalid.
CryptoTokenException - Thrown if an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Since:
JDE 4.0.2
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

decode

public static SymmetricKey decode(InputStream encodedKey,
                                  String encodingAlgorithm,
                                  String keyAlgorithm)
                           throws NoSuchAlgorithmException,
                                  InvalidKeyEncodingException,
                                  InvalidKeyException,
                                  CryptoTokenException,
                                  CryptoUnsupportedOperationException
Decodes an encoded symmetric key.

Parameters:
encodedKey - An input stream containing the public key to decode.
encodingAlgorithm - The encoding algorithm to use to decode, such as "X509".
keyAlgorithm - The type of key.
Returns:
The decoded symmetric key.
Throws:
NoSuchAlgorithmException - Thrown if the encoding algorithm cannot be found.
InvalidKeyEncodingException - Thrown if the key is imporperly formatted.
InvalidKeyException - Thrown if the specified key is invalid.
CryptoTokenException - Thrown if an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Since:
JDE 4.0.2
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

decode

public static SymmetricKey decode(byte[] encodedKey,
                                  String encodingAlgorithm,
                                  String keyAlgorithm)
                           throws NoSuchAlgorithmException,
                                  InvalidKeyEncodingException,
                                  InvalidKeyException,
                                  CryptoTokenException,
                                  CryptoUnsupportedOperationException
Decodes an encoded symmetric key.

Parameters:
encodedKey - A byte array containing the public key to decode.
encodingAlgorithm - The encoding algorithm to use to decode, such as "X509".
keyAlgorithm - The type of key.
Returns:
The decoded symmetric key.
Throws:
NoSuchAlgorithmException - Thrown if the encoding algorithm cannot be found.
InvalidKeyEncodingException - Thrown if the key is imporperly formatted.
InvalidKeyException - Thrown if the specified key is invalid.
CryptoTokenException - Thrown if an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Since:
JDE 4.0.2
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.


Copyright 1999-2004 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.