iaik.security.cipher
Class CAST128WrapParameters

java.lang.Object
  |
  +--java.security.AlgorithmParametersSpi
        |
        +--iaik.security.cipher.CAST128WrapParameters

public class CAST128WrapParameters
extends AlgorithmParametersSpi

This class represents CMS CAST128 key wrap paramters in opaque form and may be used for generating opaque CAST parameters and converting them between various formats. The CMS CAST128 key wrap algorithm wraps a CAST128 (content-enctyption) key with a CAST128 (key-encryption) key.

The parameters specified for the CMS CAST key wrap algorithm in RFC 2984 consist of an INTEGER giving the keyLength:

 cast5CMSkeywrapParameter ::= INTEGER
   -- key length in bits
 

CAST128WrapParamters can be generated provider independently by calling one of the AlgorithmParameters.getInstance methods for the algorithm in mind. Subsequently the new AlgorithmParamters object must be initialized with a proper CAST128 Wrap parameter specification or a DER encoded byte array, e.g.:

 CAST128WrapParameterSpec castParamSpec = ...;
 AlgorithmParameters params = AlgorithmParameters.getInstance("CAST128WrapCAST128", "IAIK");
 params.init(castParamsSpec);
 

For obtaining CAST parameters in transparent representation from an opaque CAST128WrapParamters object, the getParameterSpec method can be used; for obtaining the parameters as DER encoded ASN.1 object, use getEncoded.

Version:
File Revision 8

Constructor Summary
CAST128WrapParameters()
          The default constructor.
 
Method Summary
protected  byte[] engineGetEncoded()
          Returns the parameters as DER byte array.
protected  byte[] engineGetEncoded(String format)
          Returns the parameters as a DER byte array.
protected  AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
          Returns the CAST parameters as transparent CAST parameter specification of the given class type.
protected  void engineInit(AlgorithmParameterSpec paramSpec)
          Initializes this CAST128WrapParameters with the parameter values from a given CAST128WrapParameterSpec.
protected  void engineInit(byte[] params)
          Initializes this CAST128WrapParameters object from the given DER encoded byte array.
protected  void engineInit(byte[] params, String format)
          Inits the parameters from an DER encoded byte array.
protected  String engineToString()
          Returns a String representation of the parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CAST128WrapParameters

public CAST128WrapParameters()
The default constructor. Only internally used for creating a CAST128WrapParameters object. Applications shall use one of the AlgorithmParameters.getInstance factory methods for obtaining CAST128WrapParameters.
Method Detail

engineGetEncoded

protected byte[] engineGetEncoded()
                           throws IOException
Returns the parameters as DER byte array.
Overrides:
engineGetEncoded in class AlgorithmParametersSpi
Returns:
the CAST parameters as DER byte array
Throws:
IOException - if an encoding error occurs

engineGetEncoded

protected byte[] engineGetEncoded(String format)
                           throws IOException
Returns the parameters as a DER byte array.

Format is ignored. Only DER encoding is supported at this time. This method only calls engineGetEncoded(), regardless of what is specified in the format string.

Overrides:
engineGetEncoded in class AlgorithmParametersSpi
Parameters:
format - the encoding format; ignored
Returns:
the CAST parameters as DER byte array
Throws:
IOException - if an encoding error occurs

engineGetParameterSpec

protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
                                                 throws InvalidParameterSpecException
Returns the CAST parameters as transparent CAST parameter specification of the given class type.
Overrides:
engineGetParameterSpec in class AlgorithmParametersSpi
Parameters:
paramSpec - the desired parameter specification class (CAST128WrapParameterSpec)
Returns:
the parameters as CAST128WrapParameterSpec
Throws:
InvalidParameterSpecException - if the paramters cannot be converted to the desired parameter specification

engineInit

protected void engineInit(AlgorithmParameterSpec paramSpec)
                   throws InvalidParameterSpecException
Initializes this CAST128WrapParameters with the parameter values from a given CAST128WrapParameterSpec.

Overrides:
engineInit in class AlgorithmParametersSpi
Parameters:
paramSpec - the parameter specification, which has to be a CAST128WrapParameterSpec
Throws:
InvalidParameterSpecException - if the given parameter specification is not a CAST128WrapParameterSpec or the included parameters are invalid

engineInit

protected void engineInit(byte[] params)
                   throws IOException
Initializes this CAST128WrapParameters object from the given DER encoded byte array.
Overrides:
engineInit in class AlgorithmParametersSpi
Parameters:
params - the DER encoded byte array
Throws:
IOException - if an error occurs when decoding the given byte array or the derived parameter values are invalid

engineInit

protected void engineInit(byte[] params,
                          String format)
                   throws IOException
Inits the parameters from an DER encoded byte array. Format is ignored. Only calls {engineInit(params) for initializing this CAST128Paramters object from the given DER encoded byte array, regardless of what is specified in the format string.

Overrides:
engineInit in class AlgorithmParametersSpi
Parameters:
params - the DER encoded byte array
format - the encoding format; ignored
Throws:
IOException - if an error occurs when decoding the given byte array

engineToString

protected String engineToString()
Returns a String representation of the parameters.
Overrides:
engineToString in class AlgorithmParametersSpi
Returns:
a String representation of this CAST128WrapParameters object

This Javadoc may contain text parts from Internet Standard specifications (RFC 2459, 3280, 3039, 2560, 1521, 821, 822, 2253, 1319, 1321, ,2630, 2631, 2268, 3058, 2984, 2104, 2144, 2040, 2311, 2279, see copyright note) and RSA Data Security Public-Key Cryptography Standards (PKCS#1,3,5,7,8,9,10,12, see copyright note).

IAIK-JCE 3.1 with IAIK-JCE CC Core 3.1, (c) 1997-2004 IAIK