Session and log-in procedures
When you use your sample code with a static linked library you can access the APIs directly. View some openCryptoki code samples for opening and closing sessions and for log-in.
C_OpenSession:
/*
* opensession
*/
CK_RV openSession(CK_SLOT_ID slotID, CK_FLAGS sFlags,
CK_SESSION_HANDLE_PTR phSession) {
CK_RV rc;
rc = C_OpenSession(slotID, sFlags, NULL, NULL, phSession);
if (rc != CKR_OK) {
printf("Error opening session: %x\n", rc);
return rc;
}
printf("Open session successful.\n");
return CKR_OK;
}
C_CloseSession:
/*
* closesession
*/
CK_RV closeSession(CK_SESSION_HANDLE hSession) {
CK_RV rc;
rc = C_CloseSession(hSession);
if (rc != CKR_OK) {
printf("Error closing session: 0x%X\n", rc);
return rc;
}
printf("Close session successful.\n");
return CKR_OK;
}
C_Login:
/*
* login
*/
CK_RV loginSession(CK_USER_TYPE userType, CK_CHAR_PTR pPin,
CK_ULONG ulPinLen, CK_SESSION_HANDLE hSession) {
CK_RV rc;
rc = C_Login(hSession, userType, pPin, ulPinLen);
if (rc != CKR_OK) {
printf("Error login session: %x\n", rc);
return rc;
}
printf("Login session successful.\n");
return CKR_OK;
}
C_Logout:
/*
* logout
*/
CK_RV logoutSession(CK_SESSION_HANDLE hSession) {
CK_RV rc;
rc = C_Logout(hSession);
if (rc != CKR_OK) {
printf("Error logout session: %x\n", rc);
return rc;
}
printf("Logout session successful.\n");
return CKR_OK;
}