IAIK PKCS#11 Wrapper
version 1.5

Package iaik.pkcs.pkcs11.wrapper

This package contains the first (lowest) Java layer of the PKCS#11 wrapper.

See:
          Description

Interface Summary
CK_CREATEMUTEX interface CK_CREATEMUTEX.
CK_DESTROYMUTEX interface CK_DESTROYMUTEX.
CK_LOCKMUTEX interface CK_LOCKMUTEX
CK_NOTIFY interface CK_NOTIFY.
CK_UNLOCKMUTEX interface CK_UNLOCKMUTEX
PKCS11 If the underlaying PKCS#11 function retuns CK_OK, the method returns normally.
PKCS11Constants This interface holds constants of the PKCS#11 v2.11 standard.
 

Class Summary
CK_AES_CBC_ENCRYPT_DATA_PARAMS The class CK_AES_CBC_ENCRYPT_DATA_PARAMS provides the parameters to the CKM_AES_CBC_ENCRYPT_DATA mechanism.
CK_ATTRIBUTE class CK_ATTRIBUTE includes the type, value and length of an attribute.
CK_C_INITIALIZE_ARGS class CK_C_INITIALIZE_ARGS contains the optional arguments for the C_Initialize function.
CK_CCM_PARAMS class
CK_DATE class .
CK_DES_CBC_ENCRYPT_DATA_PARAMS The class CK_DES_CBC_ENCRYPT_DATA_PARAMS provides the parameters to the CKM_DES_CBC_ENCRYPT_DATA and CKM_DES3_CBC_ENCRYPT_DATA mechanisms.
CK_ECDH1_DERIVE_PARAMS class CK_ECDH1_DERIVE_PARAMS provides the parameters to the CKM_ECDH1_DERIVE and CKM_ECDH1_COFACTOR_DERIVE mechanisms.
CK_ECDH2_DERIVE_PARAMS class CK_ECDH2_DERIVE_PARAMS provides the parameters to the CKM_ECMQV_DERIVE mechanism.
CK_ECMQV_DERIVE_PARAMS class CK_ECMQV_DERIVE_PARAMS provides the parameters to the CKM_ECMQV_DERIVE mechanism.
CK_GCM_PARAMS class
CK_INFO class CK_INFO provides general information about Cryptoki.
CK_KEA_DERIVE_PARAMS class CK_KEA_DERIVE_PARAMS provides the parameters to the CKM_KEA_DERIVE mechanism.
CK_KEY_DERIVATION_STRING_DATA class CK_KEY_DERIVATION_STRING_DATA holds a byte string and the byte string's length.
CK_KEY_WRAP_SET_OAEP_PARAMS class CK_KEY_WRAP_SET_OAEP_PARAMS provides the parameters to the CKM_KEY_WRAP_SET_OAEP mechanism.
CK_MECHANISM class CK_MECHANISM specifies a particular mechanism and any parameters it requires.
CK_MECHANISM_INFO class CK_MECHANISM_INFO provides information about a particular mechanism.
CK_PBE_PARAMS class CK_PBE_PARAMS provides all of the necessary information required byte the CKM_PBE mechanisms and the CKM_PBA_SHA1_WITH_SHA1_HMAC mechanism.
CK_PKCS5_PBKD2_PARAMS class CK_PKCS5_PBKD2_PARAMS provides the parameters to the CKM_PKCS5_PBKD2 mechanism.
CK_RC2_CBC_PARAMS class CK_RC2_CBC_PARAMS provides the parameters to the CKM_RC2_CBC and CKM_RC2_CBC_PAD mechanisms.
CK_RC2_MAC_GENERAL_PARAMS class CK_RC2_MAC_GENERAL_PARAMS provides the parameters to the CKM_RC2_MAC_GENERAL mechanism.
CK_RC5_CBC_PARAMS class CK_RC5_CBC_PARAMS is a structure that provides the parameters to the CKM_RC5_CBC and CKM_RC5_CBC_PAD mechanisms.
CK_RC5_MAC_GENERAL_PARAMS class CK_RC5_MAC_GENERAL_PARAMS provides the parameters to the CKM_RC5_MAC_GENERAL mechanism.
CK_RC5_PARAMS class CK_RC5_PARAMS provides the parameters to the CKM_RC5_ECB and CKM_RC5_MAC mechanisms.
CK_RSA_PKCS_OAEP_PARAMS class CK_RSA_PKCS_OAEP_PARAMS provides the parameters to the CKM_RSA_PKCS_OAEP mechanism.
CK_RSA_PKCS_PSS_PARAMS class CK_RSA_PKCS_PSS_PARAMS provides the parameters to the CKM_RSA_PKCS_OAEP mechanism.
CK_SESSION_INFO class CK_SESSION_INFO provides information about a session.
CK_SKIPJACK_PRIVATE_WRAP_PARAMS class CK_SKIPJACK_PRIVATE_WRAP_PARAMS provides the parameters to the CKM_SKIPJACK_PRIVATE_WRAP mechanism.
CK_SKIPJACK_RELAYX_PARAMS class CK_SKIPJACK_RELAYX_PARAMS provides the parameters to the CKM_SKIPJACK_RELAYX mechanism.
CK_SLOT_INFO class CK_SLOT_INFO provides information about a slot.
CK_SSL3_KEY_MAT_OUT class CK_SSL3_KEY_MAT_OUT contains the resulting key handles and initialization vectors after performing a C_DeriveKey function with the CKM_SSL3_KEY_AND_MAC_DERIVE mechanism.
CK_SSL3_KEY_MAT_PARAMS class CK_SSL3_KEY_MAT_PARAMS provides the parameters to the CKM_SSL3_KEY_AND_MAC_DERIVE mechanism.
CK_SSL3_MASTER_KEY_DERIVE_PARAMS class CK_SSL3_MASTER_KEY_DERIVE_PARAMS provides the parameters to the CKM_SSL3_MASTER_KEY_DERIVE mechanism.
CK_SSL3_RANDOM_DATA class CK_SSL3_RANDOM_DATA provides information about the random data of a client and a server in an SSL context.
CK_TOKEN_INFO class CK_TOKEN_INFO provides information about a token.
CK_VERSION class CK_VERSION describes the version of a Cryptoki interface, a Cryptoki library, or an SSL implementation, or the hardware or firmware version of a slot or token.
CK_X9_42_DH1_DERIVE_PARAMS class CK_X9_42_DH1_DERIVE_PARAMS provides the parameters to the CKM_X9_42_DH_DERIVE mechanism.
CK_X9_42_DH2_DERIVE_PARAMS class CK_X9_42_DH2_DERIVE_PARAMS provides the parameters to the CKM_X9_42_DH_HYBRID_DERIVE and CKM_X9_42_MQV_DERIVE mechanisms.
CK_X9_42_DHMQV_DERIVE_PARAMS class CK_X9_42_DH2_DERIVE_PARAMS provides the parameters to the CKM_X9_42_DH_HYBRID_DERIVE and CKM_X9_42_MQV_DERIVE mechanisms.
Constants This class holds only final static member variables that are constants in this package.
Functions This class contains onyl static methods.
PKCS11Connector This class is a sort of factory to get a implementation of the PKCS11 interface.
PKCS11Implementation This is the default implementation of the PKCS11 interface.
PKCS11UTIL  
 

Exception Summary
PKCS11Exception This is the superclass of all checked exceptions used by this package.
PKCS11RuntimeException This is the superclass of all runtime exception used by this library.
 

Package iaik.pkcs.pkcs11.wrapper Description

This package contains the first (lowest) Java layer of the PKCS#11 wrapper. It is a straight-forward mapping of the PKCS#11 API from the C programming language to the Java programming language. As a result, it is not really object oriented in its style and handling as know from Java. Anyone familiar with PKCS#11 in C, will find this layer easy to use. All methods of the PKCS11 interface have the same name as the corresponding functions of PKCS#11, and all classes have the same name as the corresponding data structures of PKCS#11. The developer can use this layer directly or may use the next higher level layer that is located in the iaik.pkcs.pkcs11 package and in the iaik.pkcs.pkcs11.objects package. If the application uses this layer directly, it calls PKCS11Connector.connectToPKCS11Module(String) (passing the PKCS#11 module as parameter; e.g. "C:\Program Files\Drivers\mypkcs11driver.dll") to get an implementation of the PKCS11 interface. Through this object, the application accesses all the functionality of the underlaying PKCS#11 module.
The main differences between this API to the original PKCS#11 API are:
* The functions in this package do not return return-values as know from PKCS#11. If the underlying PKCS#11 module returns a value other than CKR_OK, the wrapper throws an PKCS11Exception which holds the return value for information.
* Where PKCS#11 functions use pointers to return various objects, such objects and values are returned directly as the regular return value of the according function.
* In Java, it is not necessary to store the length of an array separately. Every array in Java 'knows' its own length.

Any PKCS#11 module compliant to PKCS#11 version 2.x should be compatible to this API. We used PKCS#11 version 2.20 as a basis for development.


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