Cryptographic Token Interface Standard |
PKCS#11 |
Cryptoki represents general information with the following types:
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.
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.
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).