opensc/src/tests/p11test/README.md

1.6 KiB

Non-destructive PKCS#11 test suite (not only for readonly cards)

What are the dependencies?

In addition to the dependencies needed by OpenSC, the test suite is using cmocka unit testing framework (libcmocka-devel package in Fedora/EPEL).

How to use?

Build OpenSC from source:

git clone git@github.com:OpenSC/OpenSC.git
cd OpenSC
./bootstrap
./configure
make -j4

Plug in the card/reader, change to test directory and run the test:

cd src/tests/p11test
./p11test -p 123456

It will run all tests on the first card found in PKCS#11 API with pin 123456 and using just built OpenSC shared library from master.

I have more slots with different cards.

Slot can be selected using -s switch on command-line.

./p11test -s 4

Slot numbers can be obtained using from pkcs11-tool -L (note that different libraries might have different numbers for the slots).

I want to test different pkcs11 library

You can specify different library or build from different branch on command-line:

./p11test -m /usr/lib64/pkcs11/libcoolkeypk11.so

or to debug PKCS#11 calls using /usr/lib64/pkcs11-spy.so:

export PKCS11SPY="../pkcs11/.libs/opensc-pkcs11.so"
./p11test -m ../pkcs11/.libs/pkcs11-spy.so

You can run the test suite also on the soft tokens. The testbench for softhsm and opencryptoki is available in the script runtest.sh.

TODO:

  • Test CKM_ECDSA_DERIVE mechanism(s)
  • Read pin from environment variable?
  • Keygen write tests (optional)
  • Reflect cmocka dependency in the configure