IAIK PKCS#11 Wrapper
version 1.2.17

iaik.pkcs.pkcs11.objects
Class PublicKey

java.lang.Object
  extended byiaik.pkcs.pkcs11.objects.Object
      extended byiaik.pkcs.pkcs11.objects.Storage
          extended byiaik.pkcs.pkcs11.objects.Key
              extended byiaik.pkcs.pkcs11.objects.PublicKey
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
DHPublicKey, DSAPublicKey, ECDSAPublicKey, KEAPublicKey, RSAPublicKey, X942DHPublicKey

public class PublicKey
extends Key

This is the base class for public (asymmetric) keys. Objects of this class represent public keys as specified by PKCS#11 v2.11.

Invariants
(subject_ <> null) and (encrypt_ <> null) and (verify_ <> null) and (verifyRecover_ <> null) and (wrap_ <> null)

Nested Class Summary
 
Nested classes inherited from class iaik.pkcs.pkcs11.objects.Key
Key.KeyType, Key.VendorDefinedKeyBuilder
 
Nested classes inherited from class iaik.pkcs.pkcs11.objects.Object
Object.ObjectClass, Object.VendorDefinedObjectBuilder
 
Field Summary
protected  BooleanAttribute encrypt_
          True, if this public key can be used for encryption.
protected  ByteArrayAttribute subject_
          The subject attribute of this public key.
protected  BooleanAttribute trusted_
          True, if this public key can be used for wrapping other keys.
protected  BooleanAttribute verify_
          True, if this public key can be used for verification.
protected  BooleanAttribute verifyRecover_
          True, if this public key can be used for encryption with recovery.
protected  BooleanAttribute wrap_
          True, if this public key can be used for wrapping other keys.
protected  AttributeArray wrapTemplate_
          Template of the key, that can be wrapped.
 
Fields inherited from class iaik.pkcs.pkcs11.objects.Key
allowedMechanisms_, derive_, endDate_, id_, keyGenMechanism_, keyType_, keyTypeNames_, local_, startDate_, vendorKeyBuilder_
 
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
  PublicKey()
          Deafult Constructor.
protected PublicKey(Session session, long objectHandle)
          Called by sub-classes to create an instance of a PKCS#11 public key.
 
Method Summary
protected  void allocateAttributes()
          Allocates the attribute objects for this class and adds them to the attribute table.
 Object clone()
          Create a (deep) clone of this object.
 boolean equals(Object otherObject)
          Compares all member variables of this object with the other object.
 BooleanAttribute getEncrypt()
          Gets the encrypt attribute of this key.
static Object getInstance(Session session, long objectHandle)
          The getInstance method of the Object class uses this method to create an instance of a PKCS#11 public key.
 ByteArrayAttribute getSubject()
          Gets the subject attribute of this key.
 BooleanAttribute getTrusted()
          Gets the trusted attribute of this key.
protected static Object getUnknownPublicKey(Session session, long objectHandle)
          Try to create a key which has no or an unkown public key type type attribute.
 BooleanAttribute getVerify()
          Gets the verify attribute of this key.
 BooleanAttribute getVerifyRecover()
          Gets the verify recover attribute of this key.
 BooleanAttribute getWrap()
          Gets the wrap attribute of this key.
 AttributeArray getWrapTemplate()
          Gets the wrap template attribute of this key.
protected static void putAttributesInTable(PublicKey object)
          Put all attributes of the given object into the attributes table of this object.
 void readAttributes(Session session)
          Read the values of the attributes of this object from the token.
 String toString()
          This method returns a string representation of the current object.
 
Methods inherited from class iaik.pkcs.pkcs11.objects.Key
getAllowedMechanisms, getDerive, getEndDate, getId, getKeyGenMechanism, getKeyType, getKeyTypeName, getLocal, getStartDate, getVendorDefinedKeyBuilder, hashCode, putAttributesInTable, setVendorDefinedKeyBuilder
 
Methods inherited from class iaik.pkcs.pkcs11.objects.Storage
getLabel, getModifiable, getPrivate, getToken, putAttributesInTable
 
Methods inherited from class iaik.pkcs.pkcs11.objects.Object
getAttributeTable, getAttributeValue, getAttributeValues, getObjectClass, getObjectClassName, getObjectHandle, getSetAttributes, getSetAttributes, getUnknownObject, getVendorDefinedObjectBuilder, putAttributesInTable, setObjectHandle, setVendorDefinedObjectBuilder
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

subject_

protected ByteArrayAttribute subject_
The subject attribute of this public key.


encrypt_

protected BooleanAttribute encrypt_
True, if this public key can be used for encryption.


verify_

protected BooleanAttribute verify_
True, if this public key can be used for verification.


verifyRecover_

protected BooleanAttribute verifyRecover_
True, if this public key can be used for encryption with recovery.


wrap_

protected BooleanAttribute wrap_
True, if this public key can be used for wrapping other keys.


trusted_

protected BooleanAttribute trusted_
True, if this public key can be used for wrapping other keys.


wrapTemplate_

protected AttributeArray wrapTemplate_
Template of the key, that can be wrapped.

Constructor Detail

PublicKey

public PublicKey()
Deafult Constructor.

Preconditions
Postconditions

PublicKey

protected PublicKey(Session session,
                    long objectHandle)
             throws TokenException
Called by sub-classes to create an instance of a PKCS#11 public key.

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.
Preconditions
(session <> null)
Postconditions
Method Detail

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 a PKCS#11 public key. 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 it uses the VendorDefinedKeyBuilder set by the application. If no public key 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.
Preconditions
(session <> null)
Postconditions
(result <> null)

getUnknownPublicKey

protected static Object getUnknownPublicKey(Session session,
                                            long objectHandle)
                                     throws TokenException
Try to create a key which has no or an unkown public key type type attribute. This implementation will try to use a vendor defined key builder, if such has been set. If this is impossible or fails, it will create just a simple PublicKey .

Parameters:
session - The session to use.
objectHandle - The handle of the object
Returns:
A new Object.
Throws:
TokenException - If no object could be created.
Preconditions
(session <> null)
Postconditions
(result <> null)

putAttributesInTable

protected static void putAttributesInTable(PublicKey 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.
Preconditions
(object <> null)
Postconditions

allocateAttributes

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

Overrides:
allocateAttributes in class Key
Preconditions
Postconditions

clone

public Object clone()
Create a (deep) clone of this object.

Overrides:
clone in class Key
Returns:
A clone of this object.
Preconditions
Postconditions
(result <> null) and (result instanceof PublicKey) and (result.equals(this))

equals

public boolean equals(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 Key
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.
Preconditions
Postconditions

getSubject

public ByteArrayAttribute getSubject()
Gets the subject attribute of this key.

Returns:
The subject attribute.
Preconditions
Postconditions
(result <> null)

getEncrypt

public BooleanAttribute getEncrypt()
Gets the encrypt attribute of this key.

Returns:
The encrypt attribute.
Preconditions
Postconditions
(result <> null)

getVerify

public BooleanAttribute getVerify()
Gets the verify attribute of this key.

Returns:
The verify attribute.
Preconditions
Postconditions
(result <> null)

getVerifyRecover

public BooleanAttribute getVerifyRecover()
Gets the verify recover attribute of this key.

Returns:
The verify recover attribute.
Preconditions
Postconditions
(result <> null)

getWrap

public BooleanAttribute getWrap()
Gets the wrap attribute of this key.

Returns:
The wrap attribute.
Preconditions
Postconditions
(result <> null)

getTrusted

public BooleanAttribute getTrusted()
Gets the trusted attribute of this key.

Returns:
The trusted attribute.
Preconditions
Postconditions
(result <> null)

getWrapTemplate

public AttributeArray getWrapTemplate()
Gets the wrap template attribute of this key. This attribute can only be used with PKCS#11 modules supporting cryptoki version 2.20 or higher.

Returns:
The wrap template attribute.
Preconditions
Postconditions
(result <> null)

readAttributes

public void readAttributes(Session session)
                    throws TokenException
Read the values of the attributes of this object from the token.

Overrides:
readAttributes in class Key
Parameters:
session - The session handle 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.
Throws:
TokenException - If getting the attributes failed.
Preconditions
(session <> null)
Postconditions

toString

public 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 Key
Returns:
A string presentation of this object for debugging output.
Preconditions
Postconditions
(result <> null)

IAIK PKCS#11 Wrapper
version 1.2.17

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

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