Cryptographic Token Interface Standard

PKCS#11


General information

Cryptoki represents general information with the following types:

CK_VERSION; CK_VERSION_PTR

CK_VERSION is a structure that 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. It is defined as follows:

typedef struct CK_VERSION {
CK_BYTE major;
CK_BYTE minor;
} CK_VERSION;

majormajor version number (the integer portion of the version)
minorminor version number (the hundredths portion of the version)

For version 1.0, major = 1 and minor = For version 2.1, major = 2 and minor = 10. Minor revisions of the Cryptoki standard are always upwardly compatible within the same major version number.

CK_VERSION_PTR is a pointer to a CK_VERSION.

CK_INFO; CK_INFO_PTR

CK_INFO provides general information about Cryptoki. It is defined as follows:

typedef struct CK_INFO {
CK_VERSION cryptokiVersion;
CK_CHAR manufacturerID[32];
CK_FLAGS flags;
CK_CHAR libraryDescription[32];
CK_VERSION libraryVersion;
} CK_INFO;

cryptokiVersionCryptoki interface version number, for compatibility with future revisions of this interface
manufacturerIDID of the Cryptoki library manufacturer. Must be padded with the blank character (' '). Should ''not'' be null-terminated.
flagsbit flags reserved for future versions. Must be zero for this version
libraryDescriptioncharacter-string description of the library. Must be padded with the blank character (' '). Should ''not'' be null-terminated.
libraryVersionCryptoki library version number

For libraries written to this document, the value of cryptokiVersion should be 2.01; the value of libraryVersion is the version number of the library software itself.

CK_INFO_PTR is a pointer to a CK_INFO.

CK_NOTIFICATION

CK_NOTIFICATION holds the types of notifications that Cryptoki provides to an application. It is defined as follows:

typedef CK_ULONG CK_NOTIFICATION;

For this version of Cryptoki, the following types of notifications are defined:

#define CKN_SURRENDER 0

The notifications have the following meanings:

CKN_SURRENDER Cryptoki is surrendering the execution of a function executing in a session so that the application may perform other operations. After performing any desired operations, the application should indicate to Cryptoki whether to continue or cancel the function (see Section).


RSA Security Inc. Public-Key Cryptography Standards - PKCS#11 - v201