IAIK PKCS#11 Wrapper
version 1.5

iaik.pkcs.pkcs11.objects
Class DomainParameters

java.lang.Object
  |
  +--iaik.pkcs.pkcs11.objects.Object
        |
        +--iaik.pkcs.pkcs11.objects.Storage
              |
              +--iaik.pkcs.pkcs11.objects.DomainParameters
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
DHParams, DSAParams

public class DomainParameters
extends Storage

An object of this class represents domain parameters as defined by PKCS#11 2.11. Domain parameters are of a specific type: DSA, DH or X9_42_DH. If an application needs to use vendor-defined domain parameters, it must set a VendorDefinedDomainParametersBuilder using the setVendorDefinedDomainParametersBuilder method.

Version:
1.0
Author:
Karl Scheibelhofer

Inner Class Summary
static interface DomainParameters.VendorDefinedDomainParametersBuilder
          If an application uses vendor defined DomainParameters, it must implement this interface and install such an object handler using setVendorDefinedDomainParametersBuilder.
 
Inner classes inherited from class iaik.pkcs.pkcs11.objects.Object
Object.ObjectClass, Object.VendorDefinedObjectBuilder
 
Field Summary
protected  KeyTypeAttribute keyType_
          The type of this key.
protected  BooleanAttribute local_
          True, if this key was created (generated or copied from a different key) on the token.
protected static DomainParameters.VendorDefinedDomainParametersBuilder vendorDomainParametersBuilder_
          The currently set vendor defined DomainParameters builder, or null.
 
Fields inherited from class iaik.pkcs.pkcs11.objects.Storage
label_, modifiable_, private_, token_
 
Fields inherited from class iaik.pkcs.pkcs11.objects.Object
attributeTable_, objectClass_, objectClassNames_, objectHandle_, vendorObjectBuilder_
 
Constructor Summary
  DomainParameters()
          The default constructor.
protected DomainParameters(Session session, long objectHandle)
          Called by sub-classes to create an instance of PKCS#11 domain parameters.
 
Method Summary
protected  void allocateAttributes()
          Allocates the attribute objects for this class and adds them to the attribute table.
 java.lang.Object clone()
          Create a (deep) clone of this object.
 boolean equals(java.lang.Object otherObject)
          Compares all member variables of this object with the other object.
static Object getInstance(Session session, long objectHandle)
          The getInstance method of the Object class uses this method to create an instance of PKCS#11 domain parameters.
 LongAttribute getKeyType()
          Gets the key type attribute of the PKCS#11 key.
protected static Object getUnknownDomainParameters(Session session, long objectHandle)
          Try to create a domain parameters which has no or an unknown key type attribute.
static DomainParameters.VendorDefinedDomainParametersBuilder getVendorDefinedDomainParametersBuilder()
          Get the currently set vendor-defined DomainParameters builder.
 int hashCode()
          The overriding of this method should ensure that the objects of this class work correctly in a hashtable.
 BooleanAttribute isLocal()
          Check, if this key is a local key; i.e.
protected static void putAttributesInTable(DomainParameters object)
          Put all attributes of the given object into the attributes table of this object.
static void setVendorDefinedDomainParametersBuilder(DomainParameters.VendorDefinedDomainParametersBuilder builder)
          Set a vendor-defined DomainParameters builder that should be called to create an instance of vendor-defined PKCS#11 domain parameters; i.e.
 java.lang.String toString()
          This method returns a string representation of the current object.
 
Methods inherited from class iaik.pkcs.pkcs11.objects.Storage
getLabel, getModifiable, getPrivate, getToken, putAttributesInTable
 
Methods inherited from class iaik.pkcs.pkcs11.objects.Object
checkAttributesState, checkAttributeState, getAttribute, getAttributeTable, getAttributeValue, getAttributeValues, getObjectClass, getObjectClassName, getObjectHandle, getSetAttributes, getSetAttributes, getUnknownObject, getVendorDefinedObjectBuilder, putAttribute, putAttributesInTable, readAttributes, removeAttribute, setObjectHandle, setVendorDefinedObjectBuilder, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

vendorDomainParametersBuilder_

protected static DomainParameters.VendorDefinedDomainParametersBuilder vendorDomainParametersBuilder_
The currently set vendor defined DomainParameters builder, or null.

keyType_

protected KeyTypeAttribute keyType_
The type of this key. Its value is one of KeyType, or one that has a bigger value than VENDOR_DEFINED.

local_

protected BooleanAttribute local_
True, if this key was created (generated or copied from a different key) on the token.
Constructor Detail

DomainParameters

public DomainParameters()
The default constructor. An application uses this constructor to instantiate a key that serves as a template. It may also be useful for working with vendor-defined domain parameters.

DomainParameters

protected DomainParameters(Session session,
                           long objectHandle)
                    throws TokenException
Called by sub-classes to create an instance of PKCS#11 domain parameters.
Parameters:
session - The session to use for reading attributes. This session must have the appropriate rights; i.e. it must be a user-session, if it is a private object.
objectHandle - The object handle as given from the PKCS#111 module.
Throws:
TokenException - If getting the attributes failed.
Method Detail

setVendorDefinedDomainParametersBuilder

public static void setVendorDefinedDomainParametersBuilder(DomainParameters.VendorDefinedDomainParametersBuilder builder)
Set a vendor-defined DomainParameters builder that should be called to create an instance of vendor-defined PKCS#11 domain parameters; i.e. an instance of a vendor defined sub-class of this class.
Parameters:
builder - The vendor-defined DomainParameters builder. Null to clear any previously installed vendor-defined builder.

getVendorDefinedDomainParametersBuilder

public static DomainParameters.VendorDefinedDomainParametersBuilder getVendorDefinedDomainParametersBuilder()
Get the currently set vendor-defined DomainParameters builder.
Returns:
The currently set vendor-defined DomainParameters builder or null if none is set.

getInstance

public static Object getInstance(Session session,
                                 long objectHandle)
                          throws TokenException
The getInstance method of the Object class uses this method to create an instance of PKCS#11 domain parameters. This method reads the key type attribute and calls the getInstance method of the according sub-class. If the key type is a vendor defined or an unknown it uses the VendorDefinedDomainParametersBuilder set by the application. If no domain parameters could be constructed, this method returns null.
Parameters:
session - The session to use for reading attributes. This session must have the appropriate rights; i.e. it must be a user-session, if it is a private object.
objectHandle - The object handle as given from the PKCS#111 module.
Returns:
The object representing the PKCS#11 object. The returned object can be casted to the according sub-class.
Throws:
TokenException - If getting the attributes failed.

getUnknownDomainParameters

protected static Object getUnknownDomainParameters(Session session,
                                                   long objectHandle)
                                            throws TokenException
Try to create a domain parameters which has no or an unknown key type attribute. This implementation will try to use a vendor defined domain parameters builder, if such has been set. If this is impossible or fails, it will create just a simple DomainParameters.
Parameters:
session - The session to use.
objectHandle - The handle of the object
Returns:
A new Object.
Throws:
TokenException - If no object could be created.

putAttributesInTable

protected static void putAttributesInTable(DomainParameters object)
Put all attributes of the given object into the attributes table of this object. This method is only static to be able to access invoke the implementation of this method for each class separately (see use in clone()).
Parameters:
object - The object to handle.

allocateAttributes

protected void allocateAttributes()
Allocates the attribute objects for this class and adds them to the attribute table.
Overrides:
allocateAttributes in class Storage

clone

public java.lang.Object clone()
Create a (deep) clone of this object.
Overrides:
clone in class Storage
Returns:
A clone of this object.

equals

public boolean equals(java.lang.Object otherObject)
Compares all member variables of this object with the other object. Returns only true, if all are equal in both objects.
Overrides:
equals in class Storage
Parameters:
otherObject - The other object to compare to.
Returns:
True, if other is an instance of this class and all member variables of both objects are equal. False, otherwise.

getKeyType

public LongAttribute getKeyType()
Gets the key type attribute of the PKCS#11 key. Its value must be one of those defined in the KeyType interface or one with an value bigger than KeyType.VENDOR_DEFINED.
Returns:
The key type identifier.

hashCode

public int hashCode()
The overriding of this method should ensure that the objects of this class work correctly in a hashtable.
Overrides:
hashCode in class Storage
Returns:
The hash code of this object.

isLocal

public BooleanAttribute isLocal()
Check, if this key is a local key; i.e. was generated on the token or created via copy from a different key on the token.
Returns:
Its value is true, if the key was created on the token.

toString

public java.lang.String toString()
This method returns a string representation of the current object. The output is only for debugging purposes and should not be used for other purposes.
Overrides:
toString in class Storage
Returns:
A string presentation of this object for debugging output.

IAIK PKCS#11 Wrapper
version 1.5

IAIK JavaSecurity Website http://jce.iaik.tugraz.at/

IAIK at Graz University of Technology, Austria, Europe
Copyright 2001-2004, IAIK, Graz University of Technology, Inffeldgasse 16a, 8010 Graz, Austria. All Rights Reserved.
version 1.5