Working with OpenSC

от Infonotary
Направо към: навигация, търсене

OpenSC don't have programs with graphic interface, so all the operations must be performed with Terminal.

Testing installation

You may check if the reader and the smart card is recognized with the following command:

1) opensc-tool -l - this command lists all the readers that are plugged in the computer. It should show something like this:
Readers known about:
Nr.    Driver     Name
0      pcsc       OMNIKEY CardMan 6121 0

2) opensc-tool -n - 1)with this command you may check if your card is recognized correctly. If it's OK, you should get message “ CardOS M4”. If you get an error, that finishes with “ Failed to connect to card : Unresponsive card ( correctly inserted?)”, most probably your card is not inserted correctly in your smart card reader.

Change PIN

The PIN code of the card can be changed from the Device Manager of Firefox or with the following command - pkcs15-tool --change-pin. The length of the PIN on Infonotary cards can from 4 to 16 symbols, that can contain letters and digits.

Unblock PIN

In case that Firefox ask you for PIN multiple times, most probably you've blocked your PIN. You can unblock it with the following command pkcs15-tool -u

Change SO-PIN

SO-PIN can be changed with following command - pkcs15-tool --change-pin -a ID, here the ID must be change with it's identifier. You can check by running the following pkcs15-tool --list-pins. Part of the log must look like that:

Com. Flags: 0x3
ID : 02
Flags : [0x99], case-sensitive, unblock-disabled, initialized, soPin
Length : min_len:4, max_len:16, stored_len:0
Pad char : 0x00
Reference : 130
Type : UTF-8
Path :

Identifier of the SO-PIN is the text, which is against ID section. In this case the command for changing the SO-PIN is pkcs15-tool --change-pin -a 02

Displaying the content of the card

With the following command you may see all the objects on the smart card pkcs15-tool -D

Forbid OpenSC to work with a specific card

Cards that are labeled T&S DS/2048 of the manufacturer Bit4id, re not supported in OpenSC 12.0 and above, so if you want to use that kind of a card with CardOS card you will have to edit the configuration file of OpenSC. You must add the following after the row with „app default {“:

	card_atr 3b:ff:18:00:ff:81:31:fe:55:00:6b:02:09:03:03:01:11:01:43:4e:53:11:31:80:8c {
		name = " T&S DS/2048 (disabled)";
		driver = "mcrd";

n Mac OS X the file is /Library/OpenSC/etc/opensc.conf, to open it with privileges to edit you must use the following command - sudo /Applications/ /Library/OpenSC/etc/opensc.conf

In Linux the configuration file location is /etc/opensc/opensc.conf or in /etc/opnesc.conf

The same way you can forbid certain model smart cards from OpenSC. You must add analogical section in the configuration file with the following content:

	card_atr ATR {
		name = "name of the card";
		driver = "model of the card";

With the command opensc-tool -a you can display the ATR of a card. A list with the drivers that are supported you can receive by entering opensc-tool --list-drivers


In order to check if the certificate works correctly you can use this command - pkcs11-tool -lt --module This command will ask you to enter PIN of the card "Please enter User PIN:". The PIN won't be displayed on the screen even with start. Press Enter to confirm. You should get a message like this:

Please enter User PIN:
C_SeedRandom() and C_GenerateRandom():
  not implemented
  all 4 digest functions seem to work
  MD5: OK
  SHA-1: OK
Signatures (currently only RSA signatures)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
  all 4 signature functions seem to work
  testing signature mechanisms:
    RSA-X-509: OK
Verify (currently only for RSA):
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    RSA-X-509: OK
Key unwrap (RSA)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    BF-CBC: OK
Decryption (RSA)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    RSA-X-509: OK
Testing card detection
Please press return to continue, x to exit: x
Testing card detection using C_WaitForSlotEvent
Please press return to continue, x to exit: x
No errors 

When this message is displayed - “Please press return to continue, x to exit”, you must press “x” and press Enter. In case there is some problems with the reader, the card or the certificate, the command will finished with the message “error” and a description of the problem. For instance if your PIN is blocked you will get message : “ error: PKCS11 function C_Login failed: rv = CKR_PIN_LOCKED (0xa4)" , and if the entered PIN is incorrect the message will be :"error: PKCS11 function C_Login failed: rv = CKR_PIN_INCORRECT (0xa0)".

In versions of OpenSC before 0.13, in dependance of the content of the card, it is possible to receive an error below “Signatures (currently only RSA signatures)“ . In this case you will have to test if it work in other program, like Firefox.