@@ -329,6 +329,7 @@ void InfoTests::testGetMechanismListConfig()
329
329
CK_RV rv;
330
330
CK_ULONG ulMechCount = 0 ;
331
331
CK_MECHANISM_TYPE_PTR pMechanismList;
332
+ CK_MECHANISM_INFO info;
332
333
333
334
#ifndef _WIN32
334
335
setenv (" SOFTHSM2_CONF" , " ./softhsm2-mech.conf" , 1 );
@@ -358,6 +359,20 @@ void InfoTests::testGetMechanismListConfig()
358
359
CPPUNIT_ASSERT (pMechanismList[1 ] == CKM_RSA_PKCS);
359
360
free (pMechanismList);
360
361
362
+ /* Get good mechanism info */
363
+ rv = CRYPTOKI_F_PTR ( C_GetMechanismInfo (m_initializedTokenSlotID, CKM_RSA_X_509, &info) );
364
+ CPPUNIT_ASSERT (rv == CKR_OK);
365
+ CPPUNIT_ASSERT (info.flags & CKF_SIGN);
366
+ rv = CRYPTOKI_F_PTR ( C_GetMechanismInfo (m_initializedTokenSlotID, CKM_RSA_PKCS, &info) );
367
+ CPPUNIT_ASSERT (rv == CKR_OK);
368
+ CPPUNIT_ASSERT (info.flags & CKF_SIGN);
369
+
370
+ /* Get bad mechanism info */
371
+ rv = CRYPTOKI_F_PTR ( C_GetMechanismInfo (m_initializedTokenSlotID, CKM_ECDSA, &info) );
372
+ CPPUNIT_ASSERT (rv == CKR_MECHANISM_INVALID);
373
+ rv = CRYPTOKI_F_PTR ( C_GetMechanismInfo (m_initializedTokenSlotID, CKM_DSA, &info) );
374
+ CPPUNIT_ASSERT (rv == CKR_MECHANISM_INVALID);
375
+
361
376
CRYPTOKI_F_PTR ( C_Finalize (NULL_PTR) );
362
377
#ifndef _WIN32
363
378
setenv (" SOFTHSM2_CONF" , " ./softhsm2.conf" , 1 );
0 commit comments