PKCS#11 COVERAGE This is the test coverage of the p11-tests tool of the PKCS#11 interface. We're anxious to complete this, if you have patches please do contribute. C_CloseAllSessions - Invalid slot id - Normal call - Check open session was closed - Call when no sessions open C_CloseSession - Invalid session - Normal call - Check open session was closed - Close twice C_CopyObject - Not Implemented C_CreateObject - Not Implemented C_Decrypt - CKM_RSA_PKCS - CKM_RSA_X_509 C_DestroyObject - Not Implemented C_Encrypt - CKM_RSA_PKCS - CKM_RSA_X_509 C_Finalize - With invalid argument - Normal call - Double finalize in a row C_FindObjects - Invalid session - Null object count - Retrieve a single object before remainder - Retrieve remaining objects - Extra call after retrieving all objects. - Out of order call C_FindObjectsFinal - Invalid session - Normal call - Extra call C_FindObjectsInit - Invalid session - Attribute count without buffer - Double call. C_GetAttributeValue - Invalid session - Invalid object - No template - Buffer too small - Retrieve attribute length - Retrieve single attribute - With one invalid attribute, no buffer. - With one invalid attribute, with buffer. - Multiple attributes, no buffer. - Multiple attributes, some buffers - Multiple attributes, one small buffer - Multiple attributes, with buffers C_GetFunctionList - See if returns same data as library entry point C_GetInfo - NULL argument - Normal call - Space padded strings in CK_INFO - No flags set C_GetMechanismInfo - Invalid mechanism - Null arguments - Invalid slot id - Normal call C_GetMechanismList - Null arguments - Without buffer - Zero count but buffer present - Low count but buffer present C_GetObjectSize - Not Implemented C_GetOperationState - Not Implemented C_GetSessionInfo - Invalid session - NULL arguments - Valid call - Valid slot id - Valid state for session - Valid flags for session C_GetSlotInfo - NULL argument - Normal call - Space padded CK_SLOT_INFO fields - CK_SLOT_INFO flags are from valid set - Track CKF_TOKEN_PRESENT flag and compare to C_GetSlotList(TRUE) C_GetSlotList - NULL arguments - Retrieving the count - Passing buffer space along with zero count. - Passing buffer space along with low count. - Passing too much buffer space. C_GetTokenInfo - Null arguments - Normal call - Space padded CK_TOKEN_INFO fields - CK_TOKEN_INFO flags are from valid set - Validate token time when CKF_CLOCK_ON_TOKEN - Calling on slot without token C_InitPIN - Not Implemented C_InitToken - Not Implemented C_Initialize - Normal call - Locking: no threads - Locking: os locking - Locking: app locking - Locking: either locking - Calls without initializing - NULL argument - Multiple initialize with C_Finalize between - Double initialize in a row C_Login - Invalid session - Invalid user type - Normal login - Login changes all session state - Login as SO not allowed with RO session - Login as SO - Login changes all session state - Can't open RO session when logged in as SO - Logout from SO - Logout SO changes goes back to public C_Logout - Invalid session - Normal logout - Logout changes all session state C_OpenSession - Invalid slot - Null arguments - No flags - Without serial flag - Valid flags - Read write session C_SetOperationState - Not Implemented C_SetPIN - Not Implemented C_Sign - CKM_RSA_PKCS (SHA1) - CKM_RSA_PKCS (MD5) - CKM_RSA_PKCS (SHA1/MD5/SSL3) C_WaitForSlotEvent - Not Implemented