-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Welcome to the smartcardpp wiki!
To turn on logging set SMARTCARDPP_DEBUG enviroment variable and set it`s
value to 1.
Log file will be written to users temp folder.
Set SMARTCARDPP_NOPINPAD = 1 enviroment variable
Set SMARTCARDPP_EXTAPDU = 1 enviroment variable Error 0x0000045d is returned when used with reader without extended APDU support.
To correctly identify a specific EstEID card, one should first use the AID (application identifier) to select the proper application. Secondly, the specific application version stored on the card should be queried. See EstEID chip specifications http://www.id.ee/public/TB-SPEC-EstEID-Chip-App-v3.4.pdf and http://www.id.ee/public/TB-SPEC-EstEID-Chip-App-v3_5-20140327.pdf for detail.
Smartcardpp API exposes all the necessary methods for these commands. It is the responsibility of the caller to further identify the card when needed (see sendApplicationIdentifierV3, sendApplicationIdentifierV3_5 and getApplicationVersion methods in the API)
Note that currently smartcardpp internally uses only card recognition by ATR (due to the fact that there is no need to for additional APDU commands). Smartcardpp tries to guess the card version according to warm or cold ATR issued by the card.
An example of the identification process by ATR
Retrieve ATR.
- ``If ATR is ESTEID_V1_COLD_ATR then card version is set to VER_1_0``
- ``If ATR is ESTEID_V1_WARM_ATR then card version is set to VER_1_0``
- ``If ATR is ESTEID_V1_2007_COLD_ATR then card version is set to VER_1_0_2007``
- ``If ATR is ESTEID_V1_2007_WARM_ATR then card version is set to VER_1_0_2007``
- ``If ATR is ESTEID_V1_1_COLD_ATR then card version is set to VER_1_1 (Digi-ID)``
- ``If ATR is ESTEID_V3_COLD_DEV1_ATR or ESTEID_V3_WARM_DEV1_ATR or ESTEID_V3_WARM_DEV2_ATR or ATR is ESTEID_V3_WARM_DEV3_ATR then card version is set to VER_3_4``
- ``If ATR is ESTEID_V35_COLD_DEV1_ATR or ESTEID_V35_COLD_DEV2_ATR or ESTEID_V35_COLD_DEV3_ATR or ESTEID_V35_WARM_ATR then card version is set to VER_3_5``
If card version detection failed, card version is set to VER_INVALID. This does not block usage of library function, and it is assumed that card is EstEID card with 2K key. Additionaly to this in some places(EstEIDManager::readCardID and EstEIDManager::readCardName) first symbol of Card Number is checked to determine if it is a Digi-ID card or ordinary ID-Card