IAIK PKCS#11 Wrapper
version 1.5

iaik.pkcs.pkcs11.objects
Class RSAPrivateKey

java.lang.Object
  |
  +--iaik.pkcs.pkcs11.objects.Object
        |
        +--iaik.pkcs.pkcs11.objects.Storage
              |
              +--iaik.pkcs.pkcs11.objects.Key
                    |
                    +--iaik.pkcs.pkcs11.objects.PrivateKey
                          |
                          +--iaik.pkcs.pkcs11.objects.RSAPrivateKey
All Implemented Interfaces:
java.lang.Cloneable

public class RSAPrivateKey
extends PrivateKey

Objects of this class represent RSA private keys as specified by PKCS#11 v2.11.

Version:
1.0
Author:
Karl Scheibelhofer

Inner classes inherited from class iaik.pkcs.pkcs11.objects.Key
Key.KeyType, Key.VendorDefinedKeyBuilder
 
Inner classes inherited from class iaik.pkcs.pkcs11.objects.Object
Object.ObjectClass, Object.VendorDefinedObjectBuilder
 
Field Summary
protected  ByteArrayAttribute coefficient_
          The coefficient (1/q mod (p)) of this RSA key, for use with CRT.
protected  ByteArrayAttribute exponent1_
          The first exponent (d mod (p-1)) of this RSA key, for use with CRT.
protected  ByteArrayAttribute exponent2_
          The second exponent (d mod (q-1)) of this RSA key, for use with CRT.
protected  ByteArrayAttribute modulus_
          The modulus (n) of this RSA key.
protected  ByteArrayAttribute prime1_
          The first prime factor (p) of this RSA key, for use with CRT.
protected  ByteArrayAttribute prime2_
          The second prime factor (q) of this RSA key, for use with CRT.
protected  ByteArrayAttribute privateExponent_
          The private exponent (d) of this RSA key.
protected  ByteArrayAttribute publicExponent_
          The public exponent (e) of this RSA key.
 
Fields inherited from class iaik.pkcs.pkcs11.objects.PrivateKey
alwaysAuthenticate_, alwaysSensitive_, decrypt_, extractable_, neverExtractable_, sensitive_, sign_, signRecover_, subject_, unwrap_, unwrapTemplate_, wrapWithTrusted_
 
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
  RSAPrivateKey()
          Default Constructor.
protected RSAPrivateKey(Session session, long objectHandle)
          Called by getInstance to create an instance of a PKCS#11 RSA private key.
 
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.
 ByteArrayAttribute getCoefficient()
          Gets the coefficient (1/q mod (p)) attribute of this RSA key.
 ByteArrayAttribute getExponent1()
          Gets the first exponent (d mod (p-1)) attribute of this RSA key.
 ByteArrayAttribute getExponent2()
          Gets the second exponent (d mod (q-1)) attribute of this RSA key.
static Object getInstance(Session session, long objectHandle)
          The getInstance method of the PrivateKey class uses this method to create an instance of a PKCS#11 RSA private key.
 ByteArrayAttribute getModulus()
          Gets the modulus attribute of this RSA key.
 ByteArrayAttribute getPrime1()
          Gets the first prime attribute of this RSA key.
 ByteArrayAttribute getPrime2()
          Gets the second prime attribute of this RSA key.
 ByteArrayAttribute getPrivateExponent()
          Gets the private exponent attribute of this RSA key.
 ByteArrayAttribute getPublicExponent()
          Gets the public exponent attribute of this RSA key.
protected static void putAttributesInTable(RSAPrivateKey object)
          Put all attributes of the given object into the attributes table of this object.
 java.lang.String toString()
          This method returns a string representation of the current object.
 
Methods inherited from class iaik.pkcs.pkcs11.objects.PrivateKey
getAlwaysAuthenticate, getAlwaysSensitive, getAuthPinFlags, getDecrypt, getExtractable, getNeverExtractable, getSecondaryAuth, getSensitive, getSign, getSignRecover, getSubject, getUnknownPrivateKey, getUnwrap, getUnwrapTemplate, getWrapWithTrusted, putAttributesInTable
 
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
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

modulus_

protected ByteArrayAttribute modulus_
The modulus (n) of this RSA key.

publicExponent_

protected ByteArrayAttribute publicExponent_
The public exponent (e) of this RSA key.

privateExponent_

protected ByteArrayAttribute privateExponent_
The private exponent (d) of this RSA key.

prime1_

protected ByteArrayAttribute prime1_
The first prime factor (p) of this RSA key, for use with CRT.

prime2_

protected ByteArrayAttribute prime2_
The second prime factor (q) of this RSA key, for use with CRT.

exponent1_

protected ByteArrayAttribute exponent1_
The first exponent (d mod (p-1)) of this RSA key, for use with CRT.

exponent2_

protected ByteArrayAttribute exponent2_
The second exponent (d mod (q-1)) of this RSA key, for use with CRT.

coefficient_

protected ByteArrayAttribute coefficient_
The coefficient (1/q mod (p)) of this RSA key, for use with CRT.
Constructor Detail

RSAPrivateKey

public RSAPrivateKey()
Default Constructor.

RSAPrivateKey

protected RSAPrivateKey(Session session,
                        long objectHandle)
                 throws TokenException
Called by getInstance to create an instance of a PKCS#11 RSA private 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.
Method Detail

getInstance

public static Object getInstance(Session session,
                                 long objectHandle)
                          throws TokenException
The getInstance method of the PrivateKey class uses this method to create an instance of a PKCS#11 RSA private 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.
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.

putAttributesInTable

protected static void putAttributesInTable(RSAPrivateKey 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 PrivateKey

clone

public java.lang.Object clone()
Create a (deep) clone of this object.
Overrides:
clone in class PrivateKey
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 PrivateKey
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.

getModulus

public ByteArrayAttribute getModulus()
Gets the modulus attribute of this RSA key.
Returns:
The modulus attribute.

getPublicExponent

public ByteArrayAttribute getPublicExponent()
Gets the public exponent attribute of this RSA key.
Returns:
The public exponent attribute.

getPrivateExponent

public ByteArrayAttribute getPrivateExponent()
Gets the private exponent attribute of this RSA key.
Returns:
The private exponent attribute.

getPrime1

public ByteArrayAttribute getPrime1()
Gets the first prime attribute of this RSA key.
Returns:
The first prime attribute.

getPrime2

public ByteArrayAttribute getPrime2()
Gets the second prime attribute of this RSA key.
Returns:
The second prime attribute.

getExponent1

public ByteArrayAttribute getExponent1()
Gets the first exponent (d mod (p-1)) attribute of this RSA key.
Returns:
The first exponent (d mod (p-1)) attribute.

getExponent2

public ByteArrayAttribute getExponent2()
Gets the second exponent (d mod (q-1)) attribute of this RSA key.
Returns:
The second exponent (d mod (q-1)) attribute.

getCoefficient

public ByteArrayAttribute getCoefficient()
Gets the coefficient (1/q mod (p)) attribute of this RSA key.
Returns:
The coefficient (1/q mod (p)) attribute.

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 PrivateKey
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