Miscellaneous tests
obj_mgmt_tests
This testsuite performs various object management tasks.
The do_CreateTokenObjects() and do_HWFeatureSearch() functions
create token objects and by default or skipped.
To include these two functions, use the "-noskip" option when issuing
the tests.
spinlock_tests.sh
Tests the two spinlocks: /var/lock/LCK..opencryptoki which is used
when accessing shared memory for pkcsslotd and pkcs#11 api calls.
And /var/lock/LOCK..opencryptoki_stdll which is used when accessing
global shared memory in the STDLLs.
The file, spinlock_tests.sh is a bash script that creates a
number of child processes. Each child process runs spinlock_child.sh
script.
Quick Start Info:
Execute testcase by,
spinlock_tests.sh -p <num> -l <num> -s <slotid>
p: the amount of child processes to create
l: the number of times each child process executes
obj_mgmt_lock_tests
s: the slot to test
For example,
spinlock_tests.sh -p 15 -l 5 -s 1
Additional Info:
obj_mgmt_lock_tests
spinlock_child.sh
The file, spinlock_tests.sh is a bash script that creates a
number of child processes. Each child process runs spinlock_child.sh
script.
The file, spinlock_child.sh is a bash script that executes
obj_mgmt_lock_tests a number of times.
obj_mgmt_lock_tests was derived from obj_mgmt.c.
It contains several api calls that will want to acquire the various
spinlocks.
Usage: spinlock_child.sh -l <count> -s <slotid>
l: the number of times each child process executes obj_mgmt_lock_tests
s: the slot to test
Usage: obj_mgmt_lock_tests -slot <slotid>
threadmkobj
TODO: To be tested.
speed
TODO: To be tested.
The speed program is a performance oriented test program. It times
certain operations over multiple runs, and gives min, max, and average
times for these operations. Performace tests are run for: 2048 bit
RSA keygen, 10½4 bit RSA keygen, 1024 bit RSA signature generate,
1024 bit RSA signature verify, triple DES encrypt/decrypt on a
10K message, and SHA1 on a 10K message.
tok_obj
TODO: To be tested.
This program is used to test object creation and modification.
The token does not need to be intitialized to use this application.
When run, a user is presented with a menu. From there, the user
must initialize the token and set the user PIN if this has not been
done previously. The menu choice for setting the user PIN sets it
to "12345678".
tok_des
TODO: To be tested.
tok_rsa
TODO: To be tested.
fork
This testcase forks off a client process in various situations, e.g
before and after initialization, before and after session creation,
and ensures that the forked client process finds an uninitialized
Opencryptoki environment and does not have access to any of the
parent's sessions or objects. Also the parents sessions and objects
must still be available and functional in the parent process after the
fork.
As per PKCS#11 standard, a forked child process is no PKCS#11
application after the fork, and must initialize Opencryptoki using
C_Initialize() in order to use Opencryptoki.
Usage: fork -slot <slotid>
multi_instance
This testcase open sessions on two different tokens within one process.
It ensures that both tokens operate independently, and that sessions of
objects opened with one token can not be used with the other one.
To test multi-instance support of a token, the Opencryptoi configuration
must be set up that way that 2 tokens of the same type (e.g. 2 EP11
tokens) exist.
Usage: multi_instance -slot1 <slotid1> -slot2 <slotid2>
tok2tok_transport
This testcase open sessions on two different tokens within one process.
It then generates a keys in the first token, and transports them via
various Wrap/Unwrap mechanisms to the other token. It is checked that
the transported key can still be used in the receiving token.
Usage: tok2tok_transport -slot1 <slotid1> -slot2 <slotid2>