|
IAIK PKCS#11 Wrapper version 1.2.17 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectiaik.pkcs.pkcs11.Module
Objects of this class represent a PKCS#11 module. The application should create an instance by calling getInstance and passing the name of the PKCS#11 module of the desired token; e.g. "slbck.dll". The application must give the full path of the PKCS#11 module unless the module is in the system's search path or in the path of the java.library.path system property. By default, it is assumed that the required pkcs#11-wrapper-library is named "pkcs11wrapper" and is located in the system path. The name of the library with the absolute path can also be passed as parameter. According to the specification, the application must call the initialize method before calling any other method of the module. This class contains slot and token management functions as defined by the PKCS#11 standard. All applications using this library will contain the following code.
Module pkcs11Module = Module.getInstance("cryptoki.dll");
pkcs11Module.initialize(null);
// ... work with the module
pkcs11Module.finalize(null);
Instead of cryptoki.dll
, the application will use the name of
the PKCS#11 module of the installed crypto hardware.
After the application initialized the module, it can get a list of all
available slots. A slot is an object that represents a physical or logical
device that can accept a cryptographic token; for instance, the card slot of
a smart card reader. The application can call
Slot[] slots = pkcs11Module.getSlotList(Module.SlotRequirement.ALL_SLOTS);
to get a list of all available slots or
Slot[] slotsWithToken = pkcs11Module.getSlotList(Module.SlotRequirement.TOKEN_PRESENT);
to get a list of all those slots in which there is a currently a token
present.
To wait for the insertion of a token, the application can use the
waitForSlotEvent
method. For example, the method call
Slot eventSlot = pkcs11Module.waitForSlotEvent(Module.WaitingBehavior.DONT_BLOCK, null);
will block until an event for any slot of this module occurred. Usually such
an event is the insertion of a token. However, the application should check
if the event occurred in the slot of interest and if there is really a token
present in the slot.
Info
,
Slot
Nested Class Summary | |
static interface |
Module.SlotRequirement
This interface defines the required properties for a slot. |
static interface |
Module.WaitingBehavior
This interface defines the allowed constants for the wanted waiting behavior when calling waitForSlotEvent. |
Field Summary | |
protected PKCS11 |
pkcs11Module_
Interface to the underlying PKCS#11 module. |
Constructor Summary | |
protected |
Module(PKCS11 pkcs11Module)
Create a new module that uses the given PKCS11 interface to interact with the token. |
Method Summary | |
boolean |
equals(Object otherObject)
Compares the pkcs11Module_ this object with the other object. |
void |
finalize()
This finalize method tries to finalize the module by calling finalize() of the Java object of the PKCS11 module.
|
void |
finalize(Object args)
Finalizes this module. |
Info |
getInfo()
Gets information about the module; i.e. the PKCS#11 module behind. |
static Module |
getInstance(String pkcs11ModuleName)
Get an instance of this class by giving the name of the PKCS#11 module; e.g. |
static Module |
getInstance(String pkcs11ModuleName,
String pkcs11WrapperPath)
Get an instance of this class by giving the name of the PKCS#11 module, e.g. |
PKCS11 |
getPKCS11Module()
Gets the PKCS#11 module of the wrapper package behind this object. |
Slot[] |
getSlotList(boolean tokenPresent)
Gets a list of slots that can accept tokens that are compatible with this module; e.g. a list of PC/SC smart card readers. |
int |
hashCode()
The overriding of this method should ensure that the objects of this class work correctly in a hashtable. |
void |
initialize(InitializeArgs initArgs)
Initializes the module. |
String |
toString()
Returns the string representation of this object. |
Slot |
waitForSlotEvent(boolean dontBlock,
Object reserved)
Waits for an slot event. |
Methods inherited from class java.lang.Object |
clone, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
protected PKCS11 pkcs11Module_
Constructor Detail |
protected Module(PKCS11 pkcs11Module)
pkcs11Module
- The interface to interact with the token.Method Detail |
public static Module getInstance(String pkcs11ModuleName) throws IOException
pkcs11ModuleName
- The name of the module; e.g. "slbck.dll".
IOException
- If connecting to the named module fails.public static Module getInstance(String pkcs11ModuleName, String pkcs11WrapperPath) throws IOException
pkcs11ModuleName
- The name of the module; e.g. "slbck.dll".pkcs11WrapperPath
- The absolute path to the PKCS#11-wrapper native library.
IOException
- If connecting to the named module fails.public Info getInfo() throws TokenException
TokenException
- If getting the information fails.public void initialize(InitializeArgs initArgs) throws TokenException
initArgs
- The initialization arguments for the module as defined
in PKCS#11. May be null.
TokenException
- If initialization fails.public void finalize(Object args) throws TokenException
finalize
method,
which is the reserved Java method called by the garbage collector.
This method calls the C_Finalize(Object)
method of the
underlying PKCS11 module.
args
- Must be null in version 2.x of PKCS#11.
TokenException
- If finalization fails.public Slot[] getSlotList(boolean tokenPresent) throws TokenException
tokenPresent
- Can be SlotRequirement.ALL_SLOTS or
SlotRequirement.TOKEN_PRESENT.
TokenException
- If .public Slot waitForSlotEvent(boolean dontBlock, Object reserved) throws TokenException
dontBlock
- Can be WaitingBehavior.BLOCK or
WaitingBehavior.DONT_BLOCK.reserved
- Should be null for this version.
TokenException
- If the method was called with
WaitingBehavior.DONT_BLOCK but there was no event
available, or if an error occured.public PKCS11 getPKCS11Module()
public String toString()
public void finalize() throws Throwable
finalize()
of the Java object of the PKCS11 module.
Note that this method does not call the finalize(Object)
(C_Finalize(Objet)
) method of the PKCS11 module!
This method is the reserved Java method called by the garbage collector.
Don't get confused by the same name.
Throwable
- If finalization fails.finalize(Object)
public boolean equals(Object otherObject)
otherObject
- The other Module object.
public int hashCode()
|
IAIK PKCS#11 Wrapper version 1.2.17 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |