[Cryptech-Commits] [sw/pkcs11] branch ksng updated: Be more careful with handle cleanup, to support parallel testing.

git at cryptech.is git at cryptech.is
Wed Feb 15 01:11:55 UTC 2017


This is an automated email from the git hooks/post-receive script.

sra at hactrn.net pushed a commit to branch ksng
in repository sw/pkcs11.

The following commit(s) were added to refs/heads/ksng by this push:
     new e96345e  Be more careful with handle cleanup, to support parallel testing.
e96345e is described below

commit e96345e339b6712397240e7b6b7b64108e5c623a
Author: Rob Austein <sra at hactrn.net>
AuthorDate: Tue Jan 31 20:14:04 2017 -0500

    Be more careful with handle cleanup, to support parallel testing.
---
 unit_tests.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/unit_tests.py b/unit_tests.py
index f9bff67..2fc9d3f 100644
--- a/unit_tests.py
+++ b/unit_tests.py
@@ -216,19 +216,22 @@ class TestKeys(TestCase):
         p11.C_Finalize()
 
     def setUp(self):
+        self.handles = set()
         self.session = p11.C_OpenSession(args.slot)
         p11.C_Login(self.session, CKU_USER, args.user_pin)
         super(TestKeys, self).setUp()
 
     def tearDown(self):
         super(TestKeys, self).tearDown()
-        for handle in p11.FindObjects(self.session):
+        for handle in self.handles:
             p11.C_DestroyObject(self.session, handle)
         p11.C_CloseAllSessions(args.slot)
         del self.session
 
     def assertIsKeypair(self, *keypair):
         public_handle, private_handle = keypair[0] if isinstance(keypair[0], tuple) else keypair
+        self.handles.add(public_handle)
+        self.handles.add(private_handle)
         self.assertEqual(p11.C_GetAttributeValue(self.session, public_handle,  CKA_CLASS), {CKA_CLASS: CKO_PUBLIC_KEY})
         self.assertEqual(p11.C_GetAttributeValue(self.session, private_handle, CKA_CLASS), {CKA_CLASS: CKO_PRIVATE_KEY})
 
@@ -245,11 +248,6 @@ class TestKeys(TestCase):
                                 CKA_ID = "EC-P256", CKA_EC_PARAMS = self.oid_p256,
                                 CKA_SIGN = True, CKA_VERIFY = True))
 
-        # Might need to do this until we expand the number of key slots
-        if False:
-          for handle in p11.FindObjects(self.session):
-            p11.C_DestroyObject(self.session, handle)
-
         self.assertIsKeypair(
             p11.C_GenerateKeyPair(self.session, CKM_EC_KEY_PAIR_GEN,
                                   public_CKA_TOKEN = False, private_CKA_TOKEN = True,
@@ -359,6 +357,7 @@ class TestKeys(TestCase):
           CKA_VERIFY        = True,
           CKA_EC_POINT      = Q,
           CKA_EC_PARAMS     = self.oid_p256)
+        self.handles.add(handle)
         p11.C_VerifyInit(self.session, CKM_ECDSA, handle)
         p11.C_Verify(self.session, H, r + s)
 
@@ -378,6 +377,7 @@ class TestKeys(TestCase):
           CKA_VERIFY        = True,
           CKA_EC_POINT      = Q,
           CKA_EC_PARAMS     = self.oid_p384)
+        self.handles.add(handle)
         p11.C_VerifyInit(self.session, CKM_ECDSA, handle)
         p11.C_Verify(self.session, H, r + s)
 
@@ -399,13 +399,14 @@ class TestKeys(TestCase):
                                     CKA_CLASS, CKA_KEY_TYPE, CKA_VERIFY, CKA_TOKEN,
                                     CKA_EC_PARAMS, CKA_EC_POINT)
 
-        for handle in p11.FindObjects(self.session):
-            p11.C_DestroyObject(self.session, handle)
+        while self.handles:
+            p11.C_DestroyObject(self.session, self.handles.pop())
         p11.C_CloseAllSessions(args.slot)
         self.session = p11.C_OpenSession(args.slot)
         p11.C_Login(self.session, CKU_USER, args.user_pin)
 
         o = p11.C_CreateObject(self.session, a)
+        self.handles.add(o)
         p11.C_VerifyInit(self.session, CKM_ECDSA_SHA256, o)
         p11.C_Verify(self.session, hamster, sig)
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Commits mailing list