The table below provides a summary of which BS2000 interface the various PKCS#11 functions are assigned to.
Key to the table
The C_ prefix in the PKCS#11 functions indicates a function.
“no” in the “Functionality available” column:
The interfaces are, for the sake of portability, implemented in BS2000, the macro calls have no function, however since, for this function, just an interface is provided without any associated functionality, a call is answered with MAINCODE = LINKAGE_ERROR and SUBCODE1 = FCT_NOT_AVAILABLE.
PKCS#11 function | BS2000 interface (SVC/ISL) | Functionality available |
General-purpose functions | ||
C_Initialize | CGENRAL | yes |
C_Finalize | CGENRAL | yes |
C_GetInfo | CGENRAL | yes |
C_GetFunctionList | CGENRAL | yes, via C interface |
Slot and token management functions | ||
C_GetSlotList | CGTSTMI | yes |
C_GetSlotInfo | CGTSTMI | yes |
C_GetTokenInfo | CGTSTMI | yes |
C_WaitForSlotEvent | CWTFSLE | no |
C_GetMechanismList | CGTSTMI | yes |
C_GetMechanismInfo | CGTSTMI | yes |
C_InitToken | CINITTK | no |
C_InitPIN | CPIN | no |
C_SetPIN | CPIN | no |
Session management functions | ||
C_OpenSession | CSESION | yes |
C_CloseSession | CSESION | yes |
C_CloseAllSessions | CSESION | yes |
C_GetSessionInfo | CSESION | no |
C_GetOperationState | COPSTAT | no |
C_SetOperationState | COPSTAT | no |
C_Login | CLOG | yes |
C_Logout | CLOG | yes |
Object management functions | ||
C_CreateObject | COBJMGT | yes |
C_CopyObject | COBJMGT | yes |
C_DestroyObject | COBJMGT | yes |
C_GetObjectSize | COBJMGT | no |
C_GetAttributeValue | COBJMGT | yes |
C_SetAttributeValue | COBJMGT | yes |
C_FindObjectsInit | COBJMGT | yes |
C_FindObjects | COBJMGT | yes |
C_FindObjectsFinal | COBJMGT | yes |
Encryption functions | ||
C_EncryptInit | CCRYINI | yes |
C_Encrypt | CCRY | yes |
C_EncryptUpdate | CCRY | yes |
C_EncryptFinal | CCRYFIN | yes |
Decryption functions | ||
C_DecryptInit | CCRYINI | yes |
C_Decrypt | CCRY | yes |
C_DecryptUpdate | CCRY | yes |
C_DecryptFinal | CCRYFIN | yes |
Message digesting functions | ||
C_DigestInit | CCRYINI | yes |
C_Digest | CCRY | yes |
C_DigestUpdate | CCRY | yes |
C_DigestKey | CCRYINI | yes |
C_DigestFinal | CCRYFIN | yes |
Signing and MACing functions | ||
C_SignInit | CCRYINI | yes |
C_Sign | CCRY | yes |
C_SignUpdate | CCRY | yes |
C_SignFinal | CCRYFIN | yes |
C_SignRecoverInit | CCRYINI | no |
C_SignRecover | CCRY | no |
Functions for verifying signatures and MACs | ||
C_VerifyInit | CCRYINI | yes |
C_Verify | CCRY | yes |
C_VerifyUpdate | CCRY | yes |
C_VerifyFinal | CCRYFIN | yes |
C_VerifyRecoverInit | CCRYINI | yes |
C_VerifyRecover | CCRY | yes |
Dual-function cryptographic functions | ||
C_DigestEncryptUpdate | CCRY | no |
C_DecryptDigestUpdate | CCRY | no |
C_SignEncryptUpdate | CCRY | no |
C_DecryptVerifyUpdate | CCRY | no |
Key management functions | ||
C_GenerateKey | CGENKEY | yes |
C_GenerateKeyPair | CGENKPR | yes |
C_WrapKey | CWRPKEY | yes |
C_UnwrapKey | CUNWKEY | yes |
C_DeriveKey | CDRVKEY | yes |
Random number generation functions | ||
C_SeedRandom | CRANDOM | yes |
C_GenerateRandom | CRANDOM | yes |
Parallel function management functions | ||
C_GetFunctionStatus | none | no |
C_CancelFunction | none | no |
Callback functions | ||
Surrender callbacks | none | no |
Vendor-defined callbacks | none | no |