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;

major major version number (the integer portion of the version)
minor minor 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. Table 9 below lists the major and minor version values for the officially published Cryptoki specifications.

Table 9, Major and minor version values for published Cryptoki specifications
Version major minor
1.0 0x01 0x00
2.01 0x02 0x01
2.10 0x02 0x0a
2.11 0x02 0x0b

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_UTF8CHAR manufacturerID[32];
CK_FLAGS flags;
CK_UTF8CHAR libraryDescription[32];
CK_VERSION libraryVersion;
} CK_INFO;

cryptokiVersion Cryptoki interface version number, for compatibility with future revisions of this interface
manufacturerID ID of the Cryptoki library manufacturer. Must be padded with the blank character (' '). Should ''not'' be null-terminated.
flags bit flags reserved for future versions. Must be zero for this version
libraryDescription character-string description of the library. Must be padded with the blank character (' '). Should ''not'' be null-terminated.
libraryVersion Cryptoki library version number

For libraries written to this document, the value of cryptokiVersion should be 2.11; 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 11.17.1).


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