-
Notifications
You must be signed in to change notification settings - Fork 3
JCAlgTest Integration
The store integrates JcALgTest tool:
- We hope to gather more content (smart card test results) to grow our database, JCAppStore allows for one click simple smart card testing
- We use the tool to recognize the smart card compatibility: we analyze the applet source code and compare it with the support information given by JcAlgTest - this way, we can recognize incompatible applets and cards.
When a card is inserted, the JcAlgTest database is searched for your card. If the type is unknown, we are unable to check the incompatibilities on the applets we provide in the store.
When your card is not found we recommend to launch the test (App > Card menu). This way you provide these results for other people who possess the same card type, and the store will be able to check the applets compatibility.
We recommend doing this on an unpopulated smart card - the test is exhaustive and it is for the best. Be patient, the test might take tens of minutes to complete. When done, the results are sent to JcAlgTest database and published on JcAlgTest website.
JcAlgTest result output might look like this:
INFO: This file was generated by AlgTest utility. See http://www.fi.muni.cz/~xsvenda/jcsupport.html for more results, source codes and other details.;
Tested and provided by; insert your name please.;
Execution date/time; 2019/04/19 22:06:09
AlgTestJClient version; 1.7.7
...
javacardx.crypto.Cipher
ALG_DES_CBC_NOPAD;yes;0.103000
ALG_DES_CBC_ISO9797_M1;yes;0.099000
ALG_DES_CBC_ISO9797_M2;yes;0.092000
ALG_DES_CBC_PKCS5;yes;0.089000
ALG_DES_ECB_NOPAD;yes;0.091000
ALG_DES_ECB_ISO9797_M1;yes;0.098000
ALG_DES_ECB_ISO9797_M2;yes;0.089000
ALG_DES_ECB_PKCS5;no;
...
We searched the source code for these keywords. We have files that list these keywords usage and then simply find which keywords are not supported. When found any unsupported ones, we display a warning that the installation process will likely fail.
This process can be problematic due to several reasons; it is worth to try to install the applet anyway. This only helps you to understand the source of the problem in case the installation fails.
The detection might not be accurate because:
- The unsupported keywords used in the applet might not be present in the compiled version - it can be removed by compiler for example, because it was defined, but not used afterward.
- The applet might use other libraries the JcAlgTest does not check compatibility with: in that case, the installation might fail even though we do not find any issues.
- Not every keyword (from the source files) is required to install the application (say ALG_DES_ECB_PKCS5) but once you install such applet on a card that does not support certain keyword, the card (meaning the applet on your card) will refuse to perform an opration that requires this algorithm use (e.g. encrypt a message with DES in ECB mode).