public class PKCS11Module extends Object
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.
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.
PKCS11Module pkcs11Module = PKCS11Module.getInstance("cryptoki.dll");
pkcs11Module.initialize();
// ... 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(false);
to get a list of all available slots or
Slot[] slotsWithToken = pkcs11Module.getSlotList(true);
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(true);
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.| Modifier | Constructor and Description |
|---|---|
protected |
PKCS11Module(PKCS11Implementation pkcs11)
Create a new module that uses the given PKCS11 interface to interact with
the token.
|
| Modifier and Type | Method and Description |
|---|---|
String |
codeToName(PKCS11Constants.Category category,
long code) |
PKCS11Exception |
convertException(PKCS11Exception e) |
void |
finalize(Object args)
Finalizes this module.
|
long |
genericToVendorCode(PKCS11Constants.Category category,
long genericCode) |
ModuleInfo |
getInfo()
Gets information about the module; i.e.
|
static PKCS11Module |
getInstance(String pkcs11ModulePath)
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.
|
void |
initialize()
Initializes the module.
|
Long |
nameToCode(PKCS11Constants.Category category,
String name) |
String |
toString()
Returns the string representation of this object.
|
long |
vendorToGenericCode(PKCS11Constants.Category category,
long vendorCode) |
Slot |
waitForSlotEvent(boolean dontBlock)
Waits for a slot event.
|
protected PKCS11Module(PKCS11Implementation pkcs11)
pkcs11 - The PKCS#11 module to interact with the token.public static PKCS11Module getInstance(String pkcs11ModulePath) throws IOException
pkcs11ModulePath - The path of the module; e.g. "/path/to/slbck.dll".IOException - If connecting to the named module fails.public ModuleInfo getInfo() throws TokenException
TokenExceptionpublic void initialize()
throws PKCS11Exception
PKCS11Exception - If initialization fails.public void finalize(Object args) throws PKCS11Exception
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.PKCS11Exception - If finalization fails.public Slot[] getSlotList(boolean tokenPresent) throws PKCS11Exception
tokenPresent - Whether only slots with present token are returned.PKCS11Exception - If error occurred.public Slot waitForSlotEvent(boolean dontBlock) throws PKCS11Exception
dontBlock - Can false (BLOCK) or true (DONT_BLOCK).PKCS11Exception - If the method was called with WaitingBehavior.DONT_BLOCK but
there was no event available, or if an error occurred.public PKCS11 getPKCS11Module()
public long genericToVendorCode(PKCS11Constants.Category category, long genericCode)
public long vendorToGenericCode(PKCS11Constants.Category category, long vendorCode)
public String codeToName(PKCS11Constants.Category category, long code)
public Long nameToCode(PKCS11Constants.Category category, String name)
public String toString()
public PKCS11Exception convertException(PKCS11Exception e)
Copyright © 2023. All rights reserved.