From dff22350df2c4f6fc761bbdbbdcb334c3acf4dc6 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 12:10:06 +0200 Subject: [PATCH 01/14] ACS ACOSJ card profile --- ..._30_31_(provided_by_Alexandre_Bouvier).csv | 259 ++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv diff --git a/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv b/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv new file mode 100644 index 00000000..dfb68e53 --- /dev/null +++ b/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv @@ -0,0 +1,259 @@ +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; Alexandre Bouvier; +Execution date/time; 2017/06/02 15:50:23 +AlgTestJClient version; 1.7.2 +AlgTest applet version; 1.7.1 +Used reader; PC/SC terminal Cherry Smartcard Terminal TC 13xx 0 +Card ATR; 3b 69 00 02 41 43 4f 53 4a 76 31 30 31 +Card name; ACS ACOSJ (Combi) +Used protocol; T=0 + +JCSystem.getVersion()[Major.Minor];3.0; +JCSystem.isObjectDeletionSupported;yes; +JCSystem.MEMORY_TYPE_PERSISTENT;20340B; +JCSystem.MEMORY_TYPE_TRANSIENT_RESET;1154B; +JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT;3624B; +JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT;3624B; +CPLC; failed to obtain CPLC + +javacardx.crypto.Cipher +ALG_DES_CBC_NOPAD;yes;0,244000 +ALG_DES_CBC_ISO9797_M1;yes;0,244000 +ALG_DES_CBC_ISO9797_M2;yes;0,243000 +ALG_DES_CBC_PKCS5;yes;0,246000 +ALG_DES_ECB_NOPAD;yes;0,195000 +ALG_DES_ECB_ISO9797_M1;yes;0,206000 +ALG_DES_ECB_ISO9797_M2;yes;0,194000 +ALG_DES_ECB_PKCS5;yes;0,197000 +ALG_RSA_ISO14888;no; +ALG_RSA_PKCS1;yes;0,195000 +ALG_RSA_ISO9796;no; +ALG_RSA_NOPAD;yes;0,198000 +ALG_AES_BLOCK_128_CBC_NOPAD;yes;0,249000 +ALG_AES_BLOCK_128_ECB_NOPAD;yes;0,197000 +ALG_RSA_PKCS1_OAEP;no; +ALG_KOREAN_SEED_ECB_NOPAD;yes;0,198000 +ALG_KOREAN_SEED_CBC_NOPAD;yes;0,246000 +ALG_AES_BLOCK_192_CBC_NOPAD;no; +ALG_AES_BLOCK_192_ECB_NOPAD;no; +ALG_AES_BLOCK_256_CBC_NOPAD;no; +ALG_AES_BLOCK_256_ECB_NOPAD;no; +ALG_AES_CBC_ISO9797_M1;yes;0,252000 +ALG_AES_CBC_ISO9797_M2;yes;0,263000 +ALG_AES_CBC_PKCS5;yes;0,261000 +ALG_AES_ECB_ISO9797_M1;yes;0,194000 +ALG_AES_ECB_ISO9797_M2;yes;0,193000 +ALG_AES_ECB_PKCS5;yes;0,195000 + +javacard.crypto.Signature +ALG_DES_MAC4_NOPAD;yes;0,242000 +ALG_DES_MAC8_NOPAD;yes;0,242000 +ALG_DES_MAC4_ISO9797_M1;yes;0,238000 +ALG_DES_MAC8_ISO9797_M1;yes;0,240000 +ALG_DES_MAC4_ISO9797_M2;yes;0,237000 +ALG_DES_MAC8_ISO9797_M2;yes;0,240000 +ALG_DES_MAC4_PKCS5;yes;0,237000 +ALG_DES_MAC8_PKCS5;yes;0,241000 +ALG_RSA_SHA_ISO9796;no; +ALG_RSA_SHA_PKCS1;no; +ALG_RSA_MD5_PKCS1;no; +ALG_RSA_RIPEMD160_ISO9796;no; +ALG_RSA_RIPEMD160_PKCS1;no; +ALG_DSA_SHA;no; +ALG_RSA_SHA_RFC2409;no; +ALG_RSA_MD5_RFC2409;no; +ALG_ECDSA_SHA;yes;0,233000 +ALG_AES_MAC_128_NOPAD;no; +ALG_DES_MAC4_ISO9797_1_M2_ALG3;yes;0,244000 +ALG_DES_MAC8_ISO9797_1_M2_ALG3;yes;0,244000 +ALG_RSA_SHA_PKCS1_PSS;no; +ALG_RSA_MD5_PKCS1_PSS;no; +ALG_RSA_RIPEMD160_PKCS1_PSS;no; +ALG_HMAC_SHA1;no; +ALG_HMAC_SHA_256;no; +ALG_HMAC_SHA_384;no; +ALG_HMAC_SHA_512;no; +ALG_HMAC_MD5;no; +ALG_HMAC_RIPEMD160;no; +ALG_RSA_SHA_ISO9796_MR;no; +ALG_RSA_RIPEMD160_ISO9796_MR;no; +ALG_SEED_MAC_NOPAD;no; +ALG_ECDSA_SHA_256;yes;0,236000 +ALG_ECDSA_SHA_384;yes;0,236000 +ALG_AES_MAC_192_NOPAD;no; +ALG_AES_MAC_256_NOPAD;no; +ALG_ECDSA_SHA_224;yes;0,235000 +ALG_ECDSA_SHA_512;yes;0,236000 +ALG_RSA_SHA_224_PKCS1;no; +ALG_RSA_SHA_256_PKCS1;no; +ALG_RSA_SHA_384_PKCS1;no; +ALG_RSA_SHA_512_PKCS1;no; +ALG_RSA_SHA_224_PKCS1_PSS;no; +ALG_RSA_SHA_256_PKCS1_PSS;no; +ALG_RSA_SHA_384_PKCS1_PSS;no; +ALG_RSA_SHA_512_PKCS1_PSS;no; +ALG_DES_MAC4_ISO9797_1_M1_ALG3;yes;0,250000 +ALG_DES_MAC8_ISO9797_1_M1_ALG3;yes;0,243000 + +javacard.security.MessageDigest +ALG_SHA;yes;0,163000 +ALG_MD5;yes;0,149000 +ALG_RIPEMD160;no; +ALG_SHA_256;yes;0,159000 +ALG_SHA_384;yes;0,165000 +ALG_SHA_512;yes;0,159000 +ALG_SHA_224;yes;0,163000 + +javacard.security.RandomData +ALG_PSEUDO_RANDOM;yes;0,062000 +ALG_SECURE_RANDOM;yes;0,061000 + +javacard.security.KeyBuilder +TYPE_DES_TRANSIENT_RESET;yes;0,247000 +TYPE_DES_TRANSIENT_DESELECT;yes;0,245000 +TYPE_DES LENGTH_DES;yes;0,235000 +TYPE_DES LENGTH_DES3_2KEY;yes;0,243000 +TYPE_DES LENGTH_DES3_3KEY;yes;0,235000 +TYPE_AES_TRANSIENT_RESET;yes;0,246000 +TYPE_AES_TRANSIENT_DESELECT;yes;0,248000 +TYPE_AES LENGTH_AES_128;yes;0,231000 +TYPE_AES LENGTH_AES_192;yes;0,239000 +TYPE_AES LENGTH_AES_256;yes;0,237000 +TYPE_RSA_PUBLIC LENGTH_RSA_512;yes;0,207000 +TYPE_RSA_PUBLIC LENGTH_RSA_736;yes;0,209000 +TYPE_RSA_PUBLIC LENGTH_RSA_768;yes;0,213000 +TYPE_RSA_PUBLIC LENGTH_RSA_896;yes;0,215000 +TYPE_RSA_PUBLIC LENGTH_RSA_1024;yes;0,209000 +TYPE_RSA_PUBLIC LENGTH_RSA_1280;yes;0,209000 +TYPE_RSA_PUBLIC LENGTH_RSA_1536;yes;0,210000 +TYPE_RSA_PUBLIC LENGTH_RSA_1984;yes;0,211000 +TYPE_RSA_PUBLIC LENGTH_RSA_2048;yes;0,212000 +TYPE_RSA_PUBLIC LENGTH_RSA_3072;no; +TYPE_RSA_PUBLIC LENGTH_RSA_4096;no; +TYPE_RSA_PRIVATE LENGTH_RSA_512;yes;0,271000 +TYPE_RSA_PRIVATE LENGTH_RSA_736;yes;0,280000 +TYPE_RSA_PRIVATE LENGTH_RSA_768;yes;0,275000 +TYPE_RSA_PRIVATE LENGTH_RSA_896;yes;0,282000 +TYPE_RSA_PRIVATE LENGTH_RSA_1024;yes;0,278000 +TYPE_RSA_PRIVATE LENGTH_RSA_1280;yes;0,281000 +TYPE_RSA_PRIVATE LENGTH_RSA_1536;yes;0,279000 +TYPE_RSA_PRIVATE LENGTH_RSA_1984;yes;0,281000 +TYPE_RSA_PRIVATE LENGTH_RSA_2048;yes;0,280000 +TYPE_RSA_PRIVATE LENGTH_RSA_3072;no; +TYPE_RSA_PRIVATE LENGTH_RSA_4096;no; +TYPE_RSA_PRIVATE_TRANSIENT_RESET;yes;0,280000 +TYPE_RSA_PRIVATE_TRANSIENT_DESELECT;yes;0,290000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_512;yes;0,405000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_736;yes;0,410000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_768;yes;0,415000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_896;yes;0,415000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1024;yes;0,420000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1280;yes;0,425000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1536;yes;0,415000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1984;yes;0,420000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_2048;yes;0,420000 +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_3072;no; +TYPE_RSA_CRT_PRIVATE LENGTH_RSA_4096;no; +TYPE_RSA_CRT_PRIVATE_TRANSIENT_RESET;yes;0,405000 +TYPE_RSA_CRT_PRIVATE_TRANSIENT_DESELECT;yes;0,425000 +TYPE_DSA_PRIVATE LENGTH_DSA_512;no; +TYPE_DSA_PRIVATE LENGTH_DSA_768;no; +TYPE_DSA_PRIVATE LENGTH_DSA_1024;no; +TYPE_DSA_PRIVATE_TRANSIENT_RESET;no; +TYPE_DSA_PRIVATE_TRANSIENT_DESELECT;no; +TYPE_DSA_PUBLIC LENGTH_DSA_512;no; +TYPE_DSA_PUBLIC LENGTH_DSA_768;no; +TYPE_DSA_PUBLIC LENGTH_DSA_1024;no; +TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_113;no; +TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_131;no; +TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_163;no; +TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_193;no; +TYPE_EC_F2M_PRIVATE_TRANSIENT_RESET;no; +TYPE_EC_F2M_PRIVATE_TRANSIENT_DESELECT;no; +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_112;yes;0,405000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_128;yes;0,405000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_160;yes;0,410000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_192;yes;0,410000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_224;yes;0,420000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_256;yes;0,420000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_384;yes;0,415000 +TYPE_EC_FP_PRIVATE LENGTH_EC_FP_521;no; +TYPE_EC_FP_PRIVATE_TRANSIENT_RESET;no; +TYPE_EC_FP_PRIVATE_TRANSIENT_DESELECT;no; +TYPE_KOREAN_SEED_TRANSIENT_RESET;yes;0,250000 +TYPE_KOREAN_SEED_TRANSIENT_DESELECT;yes;0,245000 +TYPE_KOREAN_SEED LENGTH_KOREAN_SEED_128;yes;0,235000 +TYPE_HMAC_TRANSIENT_RESET;no; +TYPE_HMAC_TRANSIENT_DESELECT;no; +TYPE_HMAC LENGTH_HMAC_SHA_1_BLOCK_64;no; +TYPE_HMAC LENGTH_HMAC_SHA_256_BLOCK_64;no; +TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; +TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; + +javacard.security.KeyAgreement +ALG_EC_SVDP_DH;yes;0,105000 +ALG_EC_SVDP_DHC;yes;0,100000 +ALG_EC_SVDP_DH_KDF;yes;0,105000 +ALG_EC_SVDP_DH_PLAIN;yes;0,105000 +ALG_EC_SVDP_DHC_KDF;yes;0,100000 +ALG_EC_SVDP_DHC_PLAIN;yes;0,100000 + +javacard.security.Checksum +ALG_ISO3309_CRC16;yes;0,155000 +ALG_ISO3309_CRC32;yes;0,155000 + +javacard.security.KeyPair ALG_RSA on-card generation +ALG_RSA LENGTH_RSA_512;yes;0,690000 +ALG_RSA LENGTH_RSA_736;yes;0,841000 +ALG_RSA LENGTH_RSA_768;yes;1,150000 +ALG_RSA LENGTH_RSA_896;yes;1,215000 +ALG_RSA LENGTH_RSA_1024;yes;0,945000 +ALG_RSA LENGTH_RSA_1280;yes;2,306000 +ALG_RSA LENGTH_RSA_1536;yes;1,690000 +ALG_RSA LENGTH_RSA_1984;yes;3,145000 +ALG_RSA LENGTH_RSA_2048;yes;2,262000 +ALG_RSA LENGTH_RSA_3072;no; +ALG_RSA LENGTH_RSA_4096;no; + +javacard.security.KeyPair ALG_RSA_CRT on-card generation +ALG_RSA_CRT LENGTH_RSA_512;yes;0,890000 +ALG_RSA_CRT LENGTH_RSA_736;yes;1,056000 +ALG_RSA_CRT LENGTH_RSA_768;yes;0,940000 +ALG_RSA_CRT LENGTH_RSA_896;yes;1,375000 +ALG_RSA_CRT LENGTH_RSA_1024;yes;1,837000 +ALG_RSA_CRT LENGTH_RSA_1280;yes;1,462000 +ALG_RSA_CRT LENGTH_RSA_1536;yes;6,745000 +ALG_RSA_CRT LENGTH_RSA_1984;yes;4,307000 +ALG_RSA_CRT LENGTH_RSA_2048;yes;7,494000 +ALG_RSA_CRT LENGTH_RSA_3072;no; +ALG_RSA_CRT LENGTH_RSA_4096;no; + +javacard.security.KeyPair ALG_DSA on-card generation +ALG_DSA LENGTH_DSA_512;no; +ALG_DSA LENGTH_DSA_768;no; +ALG_DSA LENGTH_DSA_1024;no; + +javacard.security.KeyPair ALG_EC_F2M on-card generation +ALG_EC_F2M LENGTH_EC_F2M_113;no; +ALG_EC_F2M LENGTH_EC_F2M_131;no; +ALG_EC_F2M LENGTH_EC_F2M_163;no; +ALG_EC_F2M LENGTH_EC_F2M_193;no; + +javacard.security.KeyPair ALG_EC_FP on-card generation +ALG_EC_FP LENGTH_EC_FP_112;yes;0,950000 +ALG_EC_FP LENGTH_EC_FP_128;yes;1,395000 +ALG_EC_FP LENGTH_EC_FP_160;yes;1,286000 +ALG_EC_FP LENGTH_EC_FP_192;yes;1,310000 +ALG_EC_FP LENGTH_EC_FP_224;yes;1,545000 +ALG_EC_FP LENGTH_EC_FP_256;yes;1,350000 +ALG_EC_FP LENGTH_EC_FP_384;yes;1,505000 +ALG_EC_FP LENGTH_EC_FP_521;no; + +Support for variable public exponent for RSA 1024. If supported, user-defined fast modular exponentiation can be executed on the smart card via cryptographic coprocessor. This is very specific feature and you will probably not need it; +Allocate RSA 1024 objects;yes;0,345000 sec; +Set random modulus;yes;0,040000 sec; +Set random public exponent;yes;0,040000 sec; +Initialize cipher with public key with random exponent;yes;0,045000 sec; +Use random public exponent;no; + +Total test time:; 119 seconds. From 2ea1c154ad03d0336a63c83132a9a567cb866ba2 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 12:11:17 +0200 Subject: [PATCH 02/14] updated lab info --- AlgTest_JClient/src/algtestjclient/AlgTestJClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AlgTest_JClient/src/algtestjclient/AlgTestJClient.java b/AlgTest_JClient/src/algtestjclient/AlgTestJClient.java index 420a06d6..84af46ba 100644 --- a/AlgTest_JClient/src/algtestjclient/AlgTestJClient.java +++ b/AlgTest_JClient/src/algtestjclient/AlgTestJClient.java @@ -123,7 +123,7 @@ public static void main(String[] args) throws IOException, Exception { m_SystemOutLogger.println("\n----------------------------------------------------------------------- "); m_SystemOutLogger.println("JCAlgTest " + ALGTEST_JCLIENT_VERSION + " - comprehensive tool for JavaCard smart card testing."); - m_SystemOutLogger.println("Visit jcalgtest.org for results from 60+ cards. CRoCS.cz lab 2007-2016."); + m_SystemOutLogger.println("Visit jcalgtest.org for results from 60+ cards. CRoCS lab 2007-2017."); m_SystemOutLogger.println("Please check if you use the latest version at\n https://github.com/crocs-muni/JCAlgTest/releases/latest."); m_SystemOutLogger.println("-----------------------------------------------------------------------\n"); From 5af8fc5c59c21fa973547b3e3ebe8425bea2731b Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 12:12:40 +0200 Subject: [PATCH 03/14] updated universal JCard profile name of submitter --- ..._35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Profiles/results/{Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57.csv => Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv} (100%) diff --git a/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57.csv b/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv similarity index 100% rename from Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57.csv rename to Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv From 02c26082476a17b5fc2583b710d5d8442bab10a6 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:19:57 +0200 Subject: [PATCH 04/14] fixed incorrect order of values for KeyAgreement --- AlgTest_JClient/src/algtestjclient/SingleModeTest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index b9f52cac..c4dd0841 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -125,10 +125,14 @@ public class SingleModeTest { public static final String KEYAGREEMENT_STR[] = {"javacard.security.KeyAgreement", //2.2.1 - "ALG_EC_SVDP_DH#2.2.1", "ALG_EC_SVDP_DHC#2.2.1", + "ALG_EC_SVDP_DH/ALG_EC_SVDP_DHC_KDF#2.2.1", "ALG_EC_SVDP_DHC/ALG_EC_SVDP_DHC_KDF#2.2.1", //3.0.1 - "ALG_EC_SVDP_DH_KDF#3.0.1", "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_KDF#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1" + //was like this: "ALG_EC_SVDP_DH_KDF#3.0.1", "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_KDF#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1", + "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1", + //3.0.5 + "ALG_EC_PACE_GM#3.0.5", "ALG_EC_SVDP_DH_PLAIN_XY#3.0.5", "ALG_DH_PLAIN#3.0.5" }; + public static final int KEYAGREEMENT_STR_LAST_INDEX = JCConsts.KeyAgreement_ALG_DH_PLAIN; /* public static final String KEYBUILDER_STR[] = { "javacard.security.KeyBuilder", From 1d282a2d5cb3dc1ad63efa0481f759e95eda7008 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:20:47 +0200 Subject: [PATCH 05/14] MessageDigest SHA3 constants from JC3.0.5 --- AlgTest_JClient/src/algtest/JCConsts.java | 6 ++++++ AlgTest_JClient/src/algtestjclient/SingleModeTest.java | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/AlgTest_JClient/src/algtest/JCConsts.java b/AlgTest_JClient/src/algtest/JCConsts.java index 4be9adb5..cfd0a493 100644 --- a/AlgTest_JClient/src/algtest/JCConsts.java +++ b/AlgTest_JClient/src/algtest/JCConsts.java @@ -286,6 +286,12 @@ public class JCConsts { public static final byte MessageDigest_LENGTH_SHA_256 = 32; public static final byte MessageDigest_LENGTH_SHA_384 = 48; public static final byte MessageDigest_LENGTH_SHA_512 = 64; + // JC3.0.5 + public static final byte MessageDigest_ALG_SHA3_224 = 8; + public static final byte MessageDigest_ALG_SHA3_256 = 9; + public static final byte MessageDigest_ALG_SHA3_384 = 10; + public static final byte MessageDigest_ALG_SHA3_512 = 11; + // javacard.security.MessageDigest Methods: public static final short MessageDigest_getLength = 1; diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index c4dd0841..2bf6acb8 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -208,7 +208,10 @@ public class SingleModeTest { //2.2.2 "ALG_SHA_256#2.2.2", "ALG_SHA_384#2.2.2", "ALG_SHA_512#2.2.2", //3.0.1 - "ALG_SHA_224#3.0.1" + "ALG_SHA_224#3.0.1", + //3.0.5 + "ALG_SHA3_224#3.0.5", "ALG_SHA3_256#3.0.5", "ALG_SHA3_384#3.0.5", "ALG_SHA3_512#3.0.5" + }; public static final String RANDOMDATA_STR[] = {"javacard.security.RandomData", From 7565d25acf6c3f563d4cbce2a84be838ee85312e Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:52:18 +0200 Subject: [PATCH 06/14] fixed incorrect test for suport of EC --- AlgTest_JClient/src/algtest/AlgSupportTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AlgTest_JClient/src/algtest/AlgSupportTest.java b/AlgTest_JClient/src/algtest/AlgSupportTest.java index 67261adc..73cd4ad0 100644 --- a/AlgTest_JClient/src/algtest/AlgSupportTest.java +++ b/AlgTest_JClient/src/algtest/AlgSupportTest.java @@ -179,7 +179,7 @@ void TestSupportedModeSingle(APDU apdu) { break; } case (byte) 0x13: { - try {offset++;m_object = KeyAgreement.getInstance(ALG_EC_SVDP_DH, false); apdubuf[(short) (ISO7816.OFFSET_CDATA + offset)] = SUPP_ALG_SUPPORTED;} + try {offset++;m_object = KeyAgreement.getInstance(algorithmClass, false); apdubuf[(short) (ISO7816.OFFSET_CDATA + offset)] = SUPP_ALG_SUPPORTED;} catch (CryptoException e) { apdubuf[(short) (ISO7816.OFFSET_CDATA + offset)] = (e.getReason() == CryptoException.NO_SUCH_ALGORITHM) ? (byte) 0 : (byte) 2; } break; } From 4145ac49fbcded5f6cdc606aa892f49f81b3f41a Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:53:00 +0200 Subject: [PATCH 07/14] added new Cipher constants from 3.0.5 --- AlgTest_JClient/src/algtest/JCConsts.java | 3 +++ AlgTest_JClient/src/algtestjclient/SingleModeTest.java | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/AlgTest_JClient/src/algtest/JCConsts.java b/AlgTest_JClient/src/algtest/JCConsts.java index cfd0a493..c1d00ca5 100644 --- a/AlgTest_JClient/src/algtest/JCConsts.java +++ b/AlgTest_JClient/src/algtest/JCConsts.java @@ -64,6 +64,9 @@ public class JCConsts { public static final byte Signature_SIG_CIPHER_AES_MAC128 = 6; public static final byte Signature_SIG_CIPHER_HMAC = 7; public static final byte Signature_SIG_CIPHER_KOREAN_SEED_MAC = 8; + // JC3.0.5 + public static final byte Signature_ALG_AES_CMAC_128 = 49; + public static final byte Signature_MODE_SIGN = 1; public static final byte Signature_MODE_VERIFY = 2; diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index 2bf6acb8..2b8d13d5 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -105,8 +105,12 @@ public class SingleModeTest { "ALG_RSA_SHA_224_PKCS1#3.0.1", "ALG_RSA_SHA_256_PKCS1#3.0.1", "ALG_RSA_SHA_384_PKCS1#3.0.1", "ALG_RSA_SHA_512_PKCS1#3.0.1", "ALG_RSA_SHA_224_PKCS1_PSS#3.0.1", "ALG_RSA_SHA_256_PKCS1_PSS#3.0.1", "ALG_RSA_SHA_384_PKCS1_PSS#3.0.1", "ALG_RSA_SHA_512_PKCS1_PSS#3.0.1", //3.0.4 - "ALG_DES_MAC4_ISO9797_1_M1_ALG3#3.0.4", "ALG_DES_MAC8_ISO9797_1_M1_ALG3#3.0.4" + "ALG_DES_MAC4_ISO9797_1_M1_ALG3#3.0.4", "ALG_DES_MAC8_ISO9797_1_M1_ALG3#3.0.4", + //3.0.5 + "ALG_AES_CMAC_128#3.0.5" }; + public static final int SIGNATURE_STR_LAST_INDEX = JCConsts.Signature_ALG_AES_CMAC_128; + public static final String CIPHER_STR[] = {"javacardx.crypto.Cipher", "ALG_DES_CBC_NOPAD#≤2.1", "ALG_DES_CBC_ISO9797_M1#≤2.1", "ALG_DES_CBC_ISO9797_M2#≤2.1", "ALG_DES_CBC_PKCS5#≤2.1", From a34927e527ce55f663b8b2a1e127455af16dada3 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:53:29 +0200 Subject: [PATCH 08/14] added new KeyAgreement constants from 3.0.5 --- AlgTest_JClient/src/algtest/JCConsts.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AlgTest_JClient/src/algtest/JCConsts.java b/AlgTest_JClient/src/algtest/JCConsts.java index c1d00ca5..fd2acb52 100644 --- a/AlgTest_JClient/src/algtest/JCConsts.java +++ b/AlgTest_JClient/src/algtest/JCConsts.java @@ -156,6 +156,9 @@ public class JCConsts { public static final byte KeyAgreement_ALG_EC_SVDP_DHC_KDF = 2; public static final byte KeyAgreement_ALG_EC_SVDP_DH_PLAIN = 3; public static final byte KeyAgreement_ALG_EC_SVDP_DHC_PLAIN = 4; + public static final byte KeyAgreement_ALG_EC_PACE_GM = 5; + public static final byte KeyAgreement_ALG_EC_SVDP_DH_PLAIN_XY = 6; + public static final byte KeyAgreement_ALG_DH_PLAIN = 7; // javacard.security.KeyAgreement Methods: public static final short KeyAgreement_getInstance = 1; From ad59181ca1433e6d8f0d9610ba9c6a72c8cf317c Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:54:25 +0200 Subject: [PATCH 09/14] added new RandomData constants from 3.0.5 --- AlgTest_JClient/src/algtest/JCConsts.java | 5 +++++ AlgTest_JClient/src/algtestjclient/SingleModeTest.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/AlgTest_JClient/src/algtest/JCConsts.java b/AlgTest_JClient/src/algtest/JCConsts.java index fd2acb52..5d89c335 100644 --- a/AlgTest_JClient/src/algtest/JCConsts.java +++ b/AlgTest_JClient/src/algtest/JCConsts.java @@ -312,6 +312,11 @@ public class JCConsts { // javacard.security.RandomData Fields: public static final byte RandomData_ALG_PSEUDO_RANDOM = 1; public static final byte RandomData_ALG_SECURE_RANDOM = 2; + public static final byte RandomData_ALG_TRNG = 3; + public static final byte RandomData_ALG_ALG_PRESEEDED_DRBG = 4; + public static final byte RandomData_ALG_FAST = 5; + public static final byte RandomData_ALG_KEYGENERATION = 6; + // javacard.security.RandomData Methods: public static final short RandomData_getInstance = 1; diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index 2b8d13d5..f878fe23 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -221,6 +221,10 @@ public class SingleModeTest { public static final String RANDOMDATA_STR[] = {"javacard.security.RandomData", "ALG_PSEUDO_RANDOM#≤2.1", "ALG_SECURE_RANDOM#≤2.1"}; + "ALG_PSEUDO_RANDOM#≤2.1", "ALG_SECURE_RANDOM#≤2.1", + //3.0.5 + "ALG_TRNG#3.0.5", "ALG_ALG_PRESEEDED_DRBG#3.0.5", "ALG_FAST#3.0.5", "ALG_KEYGENERATION#3.0.5" + }; public static final String CHECKSUM_STR[] = {"javacard.security.Checksum", "ALG_ISO3309_CRC16#2.2.1", "ALG_ISO3309_CRC32#2.2.1"}; public static final String JCSYSTEM_STR[] = {"javacard.framework.JCSystem", "JCSystem.getVersion()[Major.Minor]#≤2.1", From 004b72d529fb085bdbebafc97f285ab4f721e350 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 14:55:29 +0200 Subject: [PATCH 10/14] added sanity check for biggest constant used and expected for alg support test --- .../src/algtestjclient/SingleModeTest.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index f878fe23..a5a92b94 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -33,6 +33,7 @@ may be distributed under the terms of the GNU General Public License (GPL), /* Import 'ALGTEST_JCLIENT_VERSION' variable - possibly replace with actual import of those variables later? */ import AlgTest.Consts; +import AlgTest.JCConsts; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays; @@ -126,6 +127,8 @@ public class SingleModeTest { "ALG_AES_BLOCK_192_CBC_NOPAD#3.0.1", "ALG_AES_BLOCK_192_ECB_NOPAD#3.0.1", "ALG_AES_BLOCK_256_CBC_NOPAD#3.0.1", "ALG_AES_BLOCK_256_ECB_NOPAD#3.0.1", "ALG_AES_CBC_ISO9797_M1#3.0.1", "ALG_AES_CBC_ISO9797_M2#3.0.1", "ALG_AES_CBC_PKCS5#3.0.1", "ALG_AES_ECB_ISO9797_M1#3.0.1", "ALG_AES_ECB_ISO9797_M2#3.0.1", "ALG_AES_ECB_PKCS5#3.0.1" }; + public static final int CIPHER_STR_LAST_INDEX = JCConsts.Cipher_ALG_AES_ECB_PKCS5; + public static final String KEYAGREEMENT_STR[] = {"javacard.security.KeyAgreement", //2.2.1 @@ -215,17 +218,19 @@ public class SingleModeTest { "ALG_SHA_224#3.0.1", //3.0.5 "ALG_SHA3_224#3.0.5", "ALG_SHA3_256#3.0.5", "ALG_SHA3_384#3.0.5", "ALG_SHA3_512#3.0.5" - }; - + public static final int MESSAGEDIGEST_STR_LAST_INDEX = JCConsts.MessageDigest_ALG_SHA3_512; + public static final String RANDOMDATA_STR[] = {"javacard.security.RandomData", - "ALG_PSEUDO_RANDOM#≤2.1", "ALG_SECURE_RANDOM#≤2.1"}; - "ALG_PSEUDO_RANDOM#≤2.1", "ALG_SECURE_RANDOM#≤2.1", //3.0.5 "ALG_TRNG#3.0.5", "ALG_ALG_PRESEEDED_DRBG#3.0.5", "ALG_FAST#3.0.5", "ALG_KEYGENERATION#3.0.5" }; + public static final int RANDOMDATA_STR_LAST_INDEX = JCConsts.RandomData_ALG_KEYGENERATION; + public static final String CHECKSUM_STR[] = {"javacard.security.Checksum", "ALG_ISO3309_CRC16#2.2.1", "ALG_ISO3309_CRC32#2.2.1"}; + public static final int CHECKSUM_STR_LAST_INDEX = JCConsts.Checksum_ALG_ISO3309_CRC32; + public static final String JCSYSTEM_STR[] = {"javacard.framework.JCSystem", "JCSystem.getVersion()[Major.Minor]#≤2.1", "JCSystem.isObjectDeletionSupported#2.2.0", "JCSystem.MEMORY_TYPE_PERSISTENT#2.2.1", "JCSystem.MEMORY_TYPE_TRANSIENT_RESET#2.2.1", @@ -693,6 +698,7 @@ public static void TestClassCipher(FileOutputStream file) throws Exception{ m_SystemOutLogger.println(message); file.write(message.getBytes()); + assert (CIPHER_STR_LAST_INDEX == (CIPHER_STR.length - 1)); // Sanity check as we will construct constant value based on position inside string for (int i=1; i< SingleModeTest.CIPHER_STR.length; i++){ // i = 1 because Cipher[0] is class name // Reset applet before call cardManager.sendAPDU(RESET_APDU); @@ -732,11 +738,12 @@ public static void TestClassSignature (FileOutputStream file) throws IOException m_SystemOutLogger.println(message); file.write(message.getBytes()); + assert (SIGNATURE_STR_LAST_INDEX == (SIGNATURE_STR.length - 1)); // Sanity check as we will construct constant value based on position inside string for (int i=1; i Date: Sat, 10 Jun 2017 15:03:52 +0200 Subject: [PATCH 11/14] fixed typo --- AlgTest_JClient/src/algtestjclient/SingleModeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java index a5a92b94..6e69ec93 100644 --- a/AlgTest_JClient/src/algtestjclient/SingleModeTest.java +++ b/AlgTest_JClient/src/algtestjclient/SingleModeTest.java @@ -132,9 +132,9 @@ public class SingleModeTest { public static final String KEYAGREEMENT_STR[] = {"javacard.security.KeyAgreement", //2.2.1 - "ALG_EC_SVDP_DH/ALG_EC_SVDP_DHC_KDF#2.2.1", "ALG_EC_SVDP_DHC/ALG_EC_SVDP_DHC_KDF#2.2.1", + "ALG_EC_SVDP_DH/ALG_EC_SVDP_DH_KDF#2.2.1", "ALG_EC_SVDP_DHC/ALG_EC_SVDP_DHC_KDF#2.2.1", //3.0.1 - //was like this: "ALG_EC_SVDP_DH_KDF#3.0.1", "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_KDF#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1", + //was incorrectly like this: "ALG_EC_SVDP_DH_KDF#3.0.1", "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_KDF#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1", "ALG_EC_SVDP_DH_PLAIN#3.0.1", "ALG_EC_SVDP_DHC_PLAIN#3.0.1", //3.0.5 "ALG_EC_PACE_GM#3.0.5", "ALG_EC_SVDP_DH_PLAIN_XY#3.0.5", "ALG_DH_PLAIN#3.0.5" From 78a4a3368676432e1277aa2d478b544e9c229e57 Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 16:02:28 +0200 Subject: [PATCH 12/14] manual correction of KeyAgreement results - some cards report support for EC KeyAgreement although cannot handle ECC. - bug existed between 1.3. and 1.7.1 version (inclusive) which tested support only for ALG_EC_SVDP_DH/ALG_EC_SVDP_DH_KDF - corrected --- ..._53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv | 4 ---- ...0_05_24_c0_72_7e_00_86_(provided_by_Thotheolh_Tay).csv | 8 ++------ ..._10_04_f2_72_fe_00_01_(provided_by_Kenneth_Benson).csv | 4 ---- ..._00_25_04_00_00_00_00_d6_(provided_by_Josh_Harvey).csv | 4 ---- ..._4a_01_00_35_04_f2_72_fe_00_a1_(provided_by_PetrS).csv | 4 ---- ..._00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv | 8 ++------ ..._00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv | 8 ++------ ..._00_00_00_4e_(provided_by_PetrS_and_Keneth_Benson).csv | 8 ++------ ..._09_44_31_31_43_52_02_00_25_c3_(provided_by_PetrS).csv | 4 ---- ...f_50_32_34_32_52_33_a2_(provided_by_Thotheolh_Tay).csv | 4 ---- ...0_c1_72_fe_e0_fd_(provided_by_Razvan_Dragomirescu).csv | 4 ---- ..._45_00_73_c8_40_13_00_90_00_92_(provided_by_PetrS).csv | 8 ++------ ..._2d_43_44_30_38_31_2d_6e_46_a9_(provided_by_PetrS).csv | 4 ---- ...66_74_65_2d_6e_66_c4_(provided_by_Cosmo_and_PetrS).csv | 8 ++------ ..._90_a5_10_2e_10_83_01_90_00_f2_(provided_by_PetrS).csv | 4 ---- ...47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv | 4 ---- ...0_01_01_(provided_by_JavaCardOS_and_Thotheolh_Tay).csv | 4 ---- ...LGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS).csv | 8 ++------ ..._45_4a_43_4f_50_76_32_34_31_bc_(provided_by_PetrS).csv | 4 ---- ...4_32_52_33_a2_(provided_by_PetrS_and_Lukas_Malina).csv | 4 ---- ..._43_4f_50_31_30_56_32_33_31_93_(provided_by_PetrS).csv | 4 ---- ..._4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS).csv | 4 ---- ..._4a_43_4f_50_32_31_56_32_32_a9_(provided_by_PetrS).csv | 4 ---- ..._4f_50_33_31_33_36_47_44_54_78_(provided_by_PetrS).csv | 4 ---- ...0_33_31_56_32_33_32_7a_(provided_by_Martin_Omacka).csv | 4 ---- ..._45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv | 4 ---- ..._45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv | 4 ---- ...45_4a_43_4f_50_76_32_34_31_bc__(provided_by_PetrS).csv | 4 ---- ...1_5f_50_56_b6_(provided_by_PetrS_and_Paul_Crocker).csv | 4 ---- ...43_4f_50_76_32_34_31_5e_(provided_by_Lukas_Malina).csv | 4 ---- ...32 a3.csv_(provided_by_Martin_Paljak_and_Arnis_UT).csv | 4 ---- ..._31_c0_64_77_e9_10_00_01_90_00_(provided_by_PetrS).csv | 8 ++------ ...f_53_20_54_3d_43_4c_0d_(provided_by_Ahmed_Mamdouh).csv | 4 ---- ..._00_00_00_00_00_00_00_00_00_00_(provided_by_Metro).csv | 4 ---- 34 files changed, 16 insertions(+), 152 deletions(-) diff --git a/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv b/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv index dfb68e53..6cc79c94 100644 --- a/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv +++ b/Profiles/results/ACS_ACOSJ_(Combi)_ALGSUPPORT__3b_69_00_02_41_43_4f_53_4a_76_31_30_31_(provided_by_Alexandre_Bouvier).csv @@ -192,11 +192,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,105000 -ALG_EC_SVDP_DHC;yes;0,100000 ALG_EC_SVDP_DH_KDF;yes;0,105000 -ALG_EC_SVDP_DH_PLAIN;yes;0,105000 -ALG_EC_SVDP_DHC_KDF;yes;0,100000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,100000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,155000 diff --git a/Profiles/results/Feitian_C21C_Samsung_S3FS91J_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_05_24_c0_72_7e_00_86_(provided_by_Thotheolh_Tay).csv b/Profiles/results/Feitian_C21C_Samsung_S3FS91J_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_05_24_c0_72_7e_00_86_(provided_by_Thotheolh_Tay).csv index e5b9d166..8e33e8e8 100644 --- a/Profiles/results/Feitian_C21C_Samsung_S3FS91J_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_05_24_c0_72_7e_00_86_(provided_by_Thotheolh_Tay).csv +++ b/Profiles/results/Feitian_C21C_Samsung_S3FS91J_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_05_24_c0_72_7e_00_86_(provided_by_Thotheolh_Tay).csv @@ -211,12 +211,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0.030000 -ALG_EC_SVDP_DHC;yes;0.040000 -ALG_EC_SVDP_DH_KDF;yes;0.040000 -ALG_EC_SVDP_DH_PLAIN;yes;0.040000 -ALG_EC_SVDP_DHC_KDF;yes;0.040000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.040000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.100000 diff --git a/Profiles/results/Feitian_JavaCOS_A22CR-ECC-SHA-2_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_10_04_f2_72_fe_00_01_(provided_by_Kenneth_Benson).csv b/Profiles/results/Feitian_JavaCOS_A22CR-ECC-SHA-2_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_10_04_f2_72_fe_00_01_(provided_by_Kenneth_Benson).csv index ca0f557a..63b3707b 100644 --- a/Profiles/results/Feitian_JavaCOS_A22CR-ECC-SHA-2_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_10_04_f2_72_fe_00_01_(provided_by_Kenneth_Benson).csv +++ b/Profiles/results/Feitian_JavaCOS_A22CR-ECC-SHA-2_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_10_04_f2_72_fe_00_01_(provided_by_Kenneth_Benson).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.094000 -ALG_EC_SVDP_DHC;yes;0.094000 ALG_EC_SVDP_DH_KDF;yes;0.093000 -ALG_EC_SVDP_DH_PLAIN;yes;0.094000 -ALG_EC_SVDP_DHC_KDF;yes;0.094000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.109000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.062000 diff --git a/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_084_3b_8c_80_01_90_67_46_4a_01_00_25_04_00_00_00_00_d6_(provided_by_Josh_Harvey).csv b/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_084_3b_8c_80_01_90_67_46_4a_01_00_25_04_00_00_00_00_d6_(provided_by_Josh_Harvey).csv index e3b287b2..f1e4320e 100644 --- a/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_084_3b_8c_80_01_90_67_46_4a_01_00_25_04_00_00_00_00_d6_(provided_by_Josh_Harvey).csv +++ b/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_084_3b_8c_80_01_90_67_46_4a_01_00_25_04_00_00_00_00_d6_(provided_by_Josh_Harvey).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.106000 -ALG_EC_SVDP_DHC;yes;0.106000 ALG_EC_SVDP_DH_KDF;yes;0.106000 -ALG_EC_SVDP_DH_PLAIN;yes;0.106000 -ALG_EC_SVDP_DHC_KDF;yes;0.106000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.106000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.065000 diff --git a/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_257_ALGSUPPORT__3b_9c_95_80_81_1f_03_90_67_46_4a_01_00_35_04_f2_72_fe_00_a1_(provided_by_PetrS).csv b/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_257_ALGSUPPORT__3b_9c_95_80_81_1f_03_90_67_46_4a_01_00_35_04_f2_72_fe_00_a1_(provided_by_PetrS).csv index f4098f58..35492508 100644 --- a/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_257_ALGSUPPORT__3b_9c_95_80_81_1f_03_90_67_46_4a_01_00_35_04_f2_72_fe_00_a1_(provided_by_PetrS).csv +++ b/Profiles/results/Feitian_JavaCOS_A22CR_ICFabDate_2016_257_ALGSUPPORT__3b_9c_95_80_81_1f_03_90_67_46_4a_01_00_35_04_f2_72_fe_00_a1_(provided_by_PetrS).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.074000 -ALG_EC_SVDP_DHC;yes;0.075000 ALG_EC_SVDP_DH_KDF;yes;0.075000 -ALG_EC_SVDP_DH_PLAIN;yes;0.075000 -ALG_EC_SVDP_DHC_KDF;yes;0.075000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.074000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.040000 diff --git a/Profiles/results/Feitian_JavaCOS_A22_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv b/Profiles/results/Feitian_JavaCOS_A22_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv index 452d0216..49cd16ea 100644 --- a/Profiles/results/Feitian_JavaCOS_A22_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv +++ b/Profiles/results/Feitian_JavaCOS_A22_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv @@ -190,12 +190,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0.032000 -ALG_EC_SVDP_DHC;yes;0.032000 -ALG_EC_SVDP_DH_KDF;yes;0.032000 -ALG_EC_SVDP_DH_PLAIN;yes;0.032000 -ALG_EC_SVDP_DHC_KDF;yes;0.032000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.032000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.063000 diff --git a/Profiles/results/Feitian_JavaCOS_A22_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv b/Profiles/results/Feitian_JavaCOS_A22_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv index 452d0216..49cd16ea 100644 --- a/Profiles/results/Feitian_JavaCOS_A22_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv +++ b/Profiles/results/Feitian_JavaCOS_A22_ICFabDate_2015_3b_fc_18_00_00_81_31_80_45_90_67_46_4a_00_68_08_04_00_00_00_00_0e_(provided_by_Ivo_Kubjas_and_PetrS).csv @@ -190,12 +190,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0.032000 -ALG_EC_SVDP_DHC;yes;0.032000 -ALG_EC_SVDP_DH_KDF;yes;0.032000 -ALG_EC_SVDP_DH_PLAIN;yes;0.032000 -ALG_EC_SVDP_DHC_KDF;yes;0.032000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.032000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.063000 diff --git a/Profiles/results/Feitian_JavaCOS_A40_ICFabDate_2016_201_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_20_05_00_00_00_00_4e_(provided_by_PetrS_and_Keneth_Benson).csv b/Profiles/results/Feitian_JavaCOS_A40_ICFabDate_2016_201_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_20_05_00_00_00_00_4e_(provided_by_PetrS_and_Keneth_Benson).csv index 79dc6090..15ffd029 100644 --- a/Profiles/results/Feitian_JavaCOS_A40_ICFabDate_2016_201_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_20_05_00_00_00_00_4e_(provided_by_PetrS_and_Keneth_Benson).csv +++ b/Profiles/results/Feitian_JavaCOS_A40_ICFabDate_2016_201_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_00_20_05_00_00_00_00_4e_(provided_by_PetrS_and_Keneth_Benson).csv @@ -211,12 +211,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0,009000 -ALG_EC_SVDP_DHC;yes;0,009000 -ALG_EC_SVDP_DH_KDF;yes;0,010000 -ALG_EC_SVDP_DH_PLAIN;yes;0,009000 -ALG_EC_SVDP_DHC_KDF;yes;0,009000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,010000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,041000 diff --git a/Profiles/results/Feitian_Java_Card_D11CR_ALGSUPPORT__3b_6a_00_00_09_44_31_31_43_52_02_00_25_c3_(provided_by_PetrS).csv b/Profiles/results/Feitian_Java_Card_D11CR_ALGSUPPORT__3b_6a_00_00_09_44_31_31_43_52_02_00_25_c3_(provided_by_PetrS).csv index 638258c7..7402e800 100644 --- a/Profiles/results/Feitian_Java_Card_D11CR_ALGSUPPORT__3b_6a_00_00_09_44_31_31_43_52_02_00_25_c3_(provided_by_PetrS).csv +++ b/Profiles/results/Feitian_Java_Card_D11CR_ALGSUPPORT__3b_6a_00_00_09_44_31_31_43_52_02_00_25_c3_(provided_by_PetrS).csv @@ -191,11 +191,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.335000 -ALG_EC_SVDP_DHC;yes;0.336000 ALG_EC_SVDP_DH_KDF;yes;0.325000 -ALG_EC_SVDP_DH_PLAIN;yes;0.326000 -ALG_EC_SVDP_DHC_KDF;yes;0.326000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.325000 javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/Feitian_K9_NXPJ3E081_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_Thotheolh_Tay).csv b/Profiles/results/Feitian_K9_NXPJ3E081_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_Thotheolh_Tay).csv index 8179fd71..c8218bd2 100644 --- a/Profiles/results/Feitian_K9_NXPJ3E081_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_Thotheolh_Tay).csv +++ b/Profiles/results/Feitian_K9_NXPJ3E081_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_Thotheolh_Tay).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.110000 -ALG_EC_SVDP_DHC;yes;0.110000 ALG_EC_SVDP_DH_KDF;yes;0.100000 -ALG_EC_SVDP_DH_PLAIN;yes;0.110000 -ALG_EC_SVDP_DHC_KDF;yes;0.100000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.110000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.060000 diff --git a/Profiles/results/Feitian_eJava_Token_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_64_2f_70_c1_72_fe_e0_fd_(provided_by_Razvan_Dragomirescu).csv b/Profiles/results/Feitian_eJava_Token_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_64_2f_70_c1_72_fe_e0_fd_(provided_by_Razvan_Dragomirescu).csv index 83b5dcee..f36edf5a 100644 --- a/Profiles/results/Feitian_eJava_Token_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_64_2f_70_c1_72_fe_e0_fd_(provided_by_Razvan_Dragomirescu).csv +++ b/Profiles/results/Feitian_eJava_Token_ALGSUPPORT__3b_fc_18_00_00_81_31_80_45_90_67_46_4a_01_64_2f_70_c1_72_fe_e0_fd_(provided_by_Razvan_Dragomirescu).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.234000 -ALG_EC_SVDP_DHC;yes;0.219000 ALG_EC_SVDP_DH_KDF;yes;0.234000 -ALG_EC_SVDP_DH_PLAIN;yes;0.218000 -ALG_EC_SVDP_DHC_KDF;yes;0.220000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.219000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.140000 diff --git a/Profiles/results/G+D_Smart_Cafe_Expert_4.x_V2_ICFabDate_2007_079_ALGSUPPORT__3b_f8_18_00_00_80_31_fe_45_00_73_c8_40_13_00_90_00_92_(provided_by_PetrS).csv b/Profiles/results/G+D_Smart_Cafe_Expert_4.x_V2_ICFabDate_2007_079_ALGSUPPORT__3b_f8_18_00_00_80_31_fe_45_00_73_c8_40_13_00_90_00_92_(provided_by_PetrS).csv index e3302dab..7ee81dc9 100644 --- a/Profiles/results/G+D_Smart_Cafe_Expert_4.x_V2_ICFabDate_2007_079_ALGSUPPORT__3b_f8_18_00_00_80_31_fe_45_00_73_c8_40_13_00_90_00_92_(provided_by_PetrS).csv +++ b/Profiles/results/G+D_Smart_Cafe_Expert_4.x_V2_ICFabDate_2007_079_ALGSUPPORT__3b_f8_18_00_00_80_31_fe_45_00_73_c8_40_13_00_90_00_92_(provided_by_PetrS).csv @@ -213,12 +213,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0,033000 -ALG_EC_SVDP_DHC;yes;0,033000 -ALG_EC_SVDP_DH_KDF;yes;0,032000 -ALG_EC_SVDP_DH_PLAIN;yes;0,032000 -ALG_EC_SVDP_DHC_KDF;yes;0,032000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,032000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/G+D_Smartcafe_6.0_80K_ICFabDate_2015_024_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_53_43_45_36_30_2d_43_44_30_38_31_2d_6e_46_a9_(provided_by_PetrS).csv b/Profiles/results/G+D_Smartcafe_6.0_80K_ICFabDate_2015_024_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_53_43_45_36_30_2d_43_44_30_38_31_2d_6e_46_a9_(provided_by_PetrS).csv index 676b537b..2db4b1a0 100644 --- a/Profiles/results/G+D_Smartcafe_6.0_80K_ICFabDate_2015_024_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_53_43_45_36_30_2d_43_44_30_38_31_2d_6e_46_a9_(provided_by_PetrS).csv +++ b/Profiles/results/G+D_Smartcafe_6.0_80K_ICFabDate_2015_024_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_53_43_45_36_30_2d_43_44_30_38_31_2d_6e_46_a9_(provided_by_PetrS).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,031000 -ALG_EC_SVDP_DHC;yes;0,030000 ALG_EC_SVDP_DH_KDF;yes;0,030000 -ALG_EC_SVDP_DH_PLAIN;yes;0,018000 -ALG_EC_SVDP_DHC_KDF;yes;0,030000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,030000 javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/G+D_Smartcafe_Expert_3.2_72K_ICFabDate_2003_126_3b_f7_18_00_00_80_31_fe_45_73_66_74_65_2d_6e_66_c4_(provided_by_Cosmo_and_PetrS).csv b/Profiles/results/G+D_Smartcafe_Expert_3.2_72K_ICFabDate_2003_126_3b_f7_18_00_00_80_31_fe_45_73_66_74_65_2d_6e_66_c4_(provided_by_Cosmo_and_PetrS).csv index ee2e16c9..c454d758 100644 --- a/Profiles/results/G+D_Smartcafe_Expert_3.2_72K_ICFabDate_2003_126_3b_f7_18_00_00_80_31_fe_45_73_66_74_65_2d_6e_66_c4_(provided_by_Cosmo_and_PetrS).csv +++ b/Profiles/results/G+D_Smartcafe_Expert_3.2_72K_ICFabDate_2003_126_3b_f7_18_00_00_80_31_fe_45_73_66_74_65_2d_6e_66_c4_(provided_by_Cosmo_and_PetrS).csv @@ -211,12 +211,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0.039000 -ALG_EC_SVDP_DHC;yes;0.038000 -ALG_EC_SVDP_DH_KDF;yes;0.038000 -ALG_EC_SVDP_DH_PLAIN;yes;0.039000 -ALG_EC_SVDP_DHC_KDF;yes;0.037000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.038000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/Infineon_CJTOP_80K_INF_SLJ_52GLA080AL_M8.4_ICFabDate_2012_001_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_80_31_80_66_40_90_a5_10_2e_10_83_01_90_00_f2_(provided_by_PetrS).csv b/Profiles/results/Infineon_CJTOP_80K_INF_SLJ_52GLA080AL_M8.4_ICFabDate_2012_001_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_80_31_80_66_40_90_a5_10_2e_10_83_01_90_00_f2_(provided_by_PetrS).csv index a8100502..afd69aa0 100644 --- a/Profiles/results/Infineon_CJTOP_80K_INF_SLJ_52GLA080AL_M8.4_ICFabDate_2012_001_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_80_31_80_66_40_90_a5_10_2e_10_83_01_90_00_f2_(provided_by_PetrS).csv +++ b/Profiles/results/Infineon_CJTOP_80K_INF_SLJ_52GLA080AL_M8.4_ICFabDate_2012_001_ALGSUPPORT__3b_fe_18_00_00_80_31_fe_45_80_31_80_66_40_90_a5_10_2e_10_83_01_90_00_f2_(provided_by_PetrS).csv @@ -214,11 +214,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,090000 -ALG_EC_SVDP_DHC;yes;0,090000 ALG_EC_SVDP_DH_KDF;yes;0,080000 -ALG_EC_SVDP_DH_PLAIN;yes;0,090000 -ALG_EC_SVDP_DHC_KDF;yes;0,080000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,100000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,080000 diff --git a/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv b/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv index f6f9bb2c..b47e34aa 100644 --- a/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv +++ b/Profiles/results/Infineon_SLE78_Universal_JCard_ALGSUPPORT__3b_fd_96_00_00_81_31_fe_45_53_4c_4a_35_32_47_44_4c_31_32_38_43_52_57_(provided_by_Till_Mass).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,070000 -ALG_EC_SVDP_DHC;yes;0,068000 ALG_EC_SVDP_DH_KDF;yes;0,090000 -ALG_EC_SVDP_DH_PLAIN;yes;0,089000 -ALG_EC_SVDP_DHC_KDF;yes;0,091000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,088000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,180000 diff --git a/Profiles/results/JavaCardOS_Infineon_JC30M48CR_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS_and_Thotheolh_Tay).csv b/Profiles/results/JavaCardOS_Infineon_JC30M48CR_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS_and_Thotheolh_Tay).csv index 0090fa63..c1fe9958 100644 --- a/Profiles/results/JavaCardOS_Infineon_JC30M48CR_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS_and_Thotheolh_Tay).csv +++ b/Profiles/results/JavaCardOS_Infineon_JC30M48CR_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS_and_Thotheolh_Tay).csv @@ -191,11 +191,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.201000 -ALG_EC_SVDP_DHC;yes;0.255000 ALG_EC_SVDP_DH_KDF;yes;0.255000 -ALG_EC_SVDP_DH_PLAIN;yes;0.252000 -ALG_EC_SVDP_DHC_KDF;yes;0.253000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.256000 javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/JavaCardOS_JC10M24R_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS).csv b/Profiles/results/JavaCardOS_JC10M24R_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS).csv index 06c23a62..2c7aefc2 100644 --- a/Profiles/results/JavaCardOS_JC10M24R_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS).csv +++ b/Profiles/results/JavaCardOS_JC10M24R_ALGSUPPORT__3b_80_80_01_01_(provided_by_JavaCardOS).csv @@ -190,12 +190,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no;, TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no;, , javacard.security.KeyAgreement, -ALG_EC_SVDP_DH;yes;0.228000, -ALG_EC_SVDP_DHC;yes;0.229000, -ALG_EC_SVDP_DH_KDF;yes;0.224000, -ALG_EC_SVDP_DH_PLAIN;yes;0.235000, -ALG_EC_SVDP_DHC_KDF;yes;0.217000, -ALG_EC_SVDP_DHC_PLAIN;yes;0.228000, +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; , javacard.security.Checksum, ALG_ISO3309_CRC16;no;, diff --git a/Profiles/results/NXP JCOP J2A080 80K_ICFabDate_2011_070_ALGSUPPORT___3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc_(provided_by_PetrS).csv b/Profiles/results/NXP JCOP J2A080 80K_ICFabDate_2011_070_ALGSUPPORT___3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc_(provided_by_PetrS).csv index 9cd5cb9b..0c26c33b 100644 --- a/Profiles/results/NXP JCOP J2A080 80K_ICFabDate_2011_070_ALGSUPPORT___3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc_(provided_by_PetrS).csv +++ b/Profiles/results/NXP JCOP J2A080 80K_ICFabDate_2011_070_ALGSUPPORT___3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc_(provided_by_PetrS).csv @@ -214,11 +214,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,033000 -ALG_EC_SVDP_DHC;yes;0,032000 ALG_EC_SVDP_DH_KDF;yes;0,031000 -ALG_EC_SVDP_DH_PLAIN;yes;0,032000 -ALG_EC_SVDP_DHC_KDF;yes;0,033000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,033000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,031000 diff --git a/Profiles/results/NXP_J2E145G_ICFabDate_2013_025_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS_and_Lukas_Malina).csv b/Profiles/results/NXP_J2E145G_ICFabDate_2013_025_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS_and_Lukas_Malina).csv index be23efec..82ab2f1f 100644 --- a/Profiles/results/NXP_J2E145G_ICFabDate_2013_025_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS_and_Lukas_Malina).csv +++ b/Profiles/results/NXP_J2E145G_ICFabDate_2013_025_ALGSUPPORT__3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS_and_Lukas_Malina).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,125000 -ALG_EC_SVDP_DHC;yes;0,109000 ALG_EC_SVDP_DH_KDF;yes;0,125000 -ALG_EC_SVDP_DH_PLAIN;yes;0,125000 -ALG_EC_SVDP_DHC_KDF;yes;0,110000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,101000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,079000 diff --git a/Profiles/results/NXP_JCOP_10.18_v2.3.1_ICFabDate_2008_163_ALGSUPPORT__3b_fa_13_00_00_81_31_fe_45_4a_43_4f_50_31_30_56_32_33_31_93_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_10.18_v2.3.1_ICFabDate_2008_163_ALGSUPPORT__3b_fa_13_00_00_81_31_fe_45_4a_43_4f_50_31_30_56_32_33_31_93_(provided_by_PetrS).csv index 8a7e0eb2..a6a14f74 100644 --- a/Profiles/results/NXP_JCOP_10.18_v2.3.1_ICFabDate_2008_163_ALGSUPPORT__3b_fa_13_00_00_81_31_fe_45_4a_43_4f_50_31_30_56_32_33_31_93_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_10.18_v2.3.1_ICFabDate_2008_163_ALGSUPPORT__3b_fa_13_00_00_81_31_fe_45_4a_43_4f_50_31_30_56_32_33_31_93_(provided_by_PetrS).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.014000 -ALG_EC_SVDP_DHC;yes;0.014000 ALG_EC_SVDP_DH_KDF;yes;0.014000 -ALG_EC_SVDP_DH_PLAIN;yes;0.014000 -ALG_EC_SVDP_DHC_KDF;yes;0.014000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.014000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.081000 diff --git a/Profiles/results/NXP_JCOP_21 v2.4.2R3_ICFabDate_2013_025_ALGSUPPORT___3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_21 v2.4.2R3_ICFabDate_2013_025_ALGSUPPORT___3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS).csv index 3c0eb90f..9c112182 100644 --- a/Profiles/results/NXP_JCOP_21 v2.4.2R3_ICFabDate_2013_025_ALGSUPPORT___3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_21 v2.4.2R3_ICFabDate_2013_025_ALGSUPPORT___3b_f9_13_00_00_81_31_fe_45_4a_43_4f_50_32_34_32_52_33_a2_(provided_by_PetrS).csv @@ -215,11 +215,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,120000 -ALG_EC_SVDP_DHC;yes;0,110000 ALG_EC_SVDP_DH_KDF;yes;0,120000 -ALG_EC_SVDP_DH_PLAIN;yes;0,120000 -ALG_EC_SVDP_DHC_KDF;yes;0,130000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,120000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,080000 diff --git a/Profiles/results/NXP_JCOP_21_V2.2_36K_ICFabDate_2008_015_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_43_4f_50_32_31_56_32_32_a9_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_21_V2.2_36K_ICFabDate_2008_015_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_43_4f_50_32_31_56_32_32_a9_(provided_by_PetrS).csv index 48c1ce01..5531c13c 100644 --- a/Profiles/results/NXP_JCOP_21_V2.2_36K_ICFabDate_2008_015_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_43_4f_50_32_31_56_32_32_a9_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_21_V2.2_36K_ICFabDate_2008_015_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_43_4f_50_32_31_56_32_32_a9_(provided_by_PetrS).csv @@ -215,11 +215,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,166000 -ALG_EC_SVDP_DHC;yes;0,166000 ALG_EC_SVDP_DH_KDF;yes;0,167000 -ALG_EC_SVDP_DH_PLAIN;yes;0,166000 -ALG_EC_SVDP_DHC_KDF;yes;0,168000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,167000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,116000 diff --git a/Profiles/results/NXP_JCOP_31_V2.2_36K_ICFabDate_2006_306_ALGSUPPORT__3b_eb_00_00_81_31_20_45_4a_43_4f_50_33_31_33_36_47_44_54_78_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_31_V2.2_36K_ICFabDate_2006_306_ALGSUPPORT__3b_eb_00_00_81_31_20_45_4a_43_4f_50_33_31_33_36_47_44_54_78_(provided_by_PetrS).csv index 613de15c..604e1286 100644 --- a/Profiles/results/NXP_JCOP_31_V2.2_36K_ICFabDate_2006_306_ALGSUPPORT__3b_eb_00_00_81_31_20_45_4a_43_4f_50_33_31_33_36_47_44_54_78_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_31_V2.2_36K_ICFabDate_2006_306_ALGSUPPORT__3b_eb_00_00_81_31_20_45_4a_43_4f_50_33_31_33_36_47_44_54_78_(provided_by_PetrS).csv @@ -215,11 +215,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,431000 -ALG_EC_SVDP_DHC;yes;0,435000 ALG_EC_SVDP_DH_KDF;yes;0,434000 -ALG_EC_SVDP_DH_PLAIN;yes;0,433000 -ALG_EC_SVDP_DHC_KDF;yes;0,434000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,435000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,384000 diff --git a/Profiles/results/NXP_JCOP_31_V2.3.2_ICFabDate_2011_016_ALGSUPPORT__3b_8a_80_01_4a_43_4f_50_33_31_56_32_33_32_7a_(provided_by_Martin_Omacka).csv b/Profiles/results/NXP_JCOP_31_V2.3.2_ICFabDate_2011_016_ALGSUPPORT__3b_8a_80_01_4a_43_4f_50_33_31_56_32_33_32_7a_(provided_by_Martin_Omacka).csv index a27fc6e5..110d9da7 100644 --- a/Profiles/results/NXP_JCOP_31_V2.3.2_ICFabDate_2011_016_ALGSUPPORT__3b_8a_80_01_4a_43_4f_50_33_31_56_32_33_32_7a_(provided_by_Martin_Omacka).csv +++ b/Profiles/results/NXP_JCOP_31_V2.3.2_ICFabDate_2011_016_ALGSUPPORT__3b_8a_80_01_4a_43_4f_50_33_31_56_32_33_32_7a_(provided_by_Martin_Omacka).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,170000 -ALG_EC_SVDP_DHC;yes;0,170000 ALG_EC_SVDP_DH_KDF;yes;0,170000 -ALG_EC_SVDP_DH_PLAIN;yes;0,180000 -ALG_EC_SVDP_DHC_KDF;yes;0,170000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,170000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,129000 diff --git a/Profiles/results/NXP_JCOP_31_V2.4.1_72K_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_31_V2.4.1_72K_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv index fe764841..fd8d23d0 100644 --- a/Profiles/results/NXP_JCOP_31_V2.4.1_72K_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_31_V2.4.1_72K_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv @@ -215,11 +215,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,098000 -ALG_EC_SVDP_DHC;yes;0,100000 ALG_EC_SVDP_DH_KDF;yes;0,100000 -ALG_EC_SVDP_DH_PLAIN;yes;0,100000 -ALG_EC_SVDP_DHC_KDF;yes;0,100000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,101000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,070000 diff --git a/Profiles/results/NXP_JCOP_CJ2A081_JC222_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_CJ2A081_JC222_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv index 1ab5591d..11407cad 100644 --- a/Profiles/results/NXP_JCOP_CJ2A081_JC222_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_CJ2A081_JC222_ICFabDate_2012_240_3b_f8_13_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_b7_(provided_by_PetrS).csv @@ -215,11 +215,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,100000 -ALG_EC_SVDP_DHC;yes;0,100000 ALG_EC_SVDP_DH_KDF;yes;0,100000 -ALG_EC_SVDP_DH_PLAIN;yes;0,100000 -ALG_EC_SVDP_DHC_KDF;yes;0,100000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,100000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,060000 diff --git a/Profiles/results/NXP_JCOP_J2A080_80K_ICFabDate_2011_070_ALGSUPPORT__3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc__(provided_by_PetrS).csv b/Profiles/results/NXP_JCOP_J2A080_80K_ICFabDate_2011_070_ALGSUPPORT__3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc__(provided_by_PetrS).csv index aaf140f2..de1a1a0e 100644 --- a/Profiles/results/NXP_JCOP_J2A080_80K_ICFabDate_2011_070_ALGSUPPORT__3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc__(provided_by_PetrS).csv +++ b/Profiles/results/NXP_JCOP_J2A080_80K_ICFabDate_2011_070_ALGSUPPORT__3b_f8_18_00_00_81_31_fe_45_4a_43_4f_50_76_32_34_31_bc__(provided_by_PetrS).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,103000 -ALG_EC_SVDP_DHC;yes;0,105000 ALG_EC_SVDP_DH_KDF;yes;0,105000 -ALG_EC_SVDP_DH_PLAIN;yes;0,105000 -ALG_EC_SVDP_DHC_KDF;yes;0,105000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,104000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,068000 diff --git a/Profiles/results/NXP_JCOP_J2D081_80K_ICFabDate_2014_126_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_32_44_30_38_31_5f_50_56_b6_(provided_by_PetrS_and_Paul_Crocker).csv b/Profiles/results/NXP_JCOP_J2D081_80K_ICFabDate_2014_126_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_32_44_30_38_31_5f_50_56_b6_(provided_by_PetrS_and_Paul_Crocker).csv index ac419cb1..096d3074 100644 --- a/Profiles/results/NXP_JCOP_J2D081_80K_ICFabDate_2014_126_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_32_44_30_38_31_5f_50_56_b6_(provided_by_PetrS_and_Paul_Crocker).csv +++ b/Profiles/results/NXP_JCOP_J2D081_80K_ICFabDate_2014_126_ALGSUPPORT__3b_f9_18_00_00_81_31_fe_45_4a_32_44_30_38_31_5f_50_56_b6_(provided_by_PetrS_and_Paul_Crocker).csv @@ -214,11 +214,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,110000 -ALG_EC_SVDP_DHC;yes;0,120000 ALG_EC_SVDP_DH_KDF;yes;0,110000 -ALG_EC_SVDP_DH_PLAIN;yes;0,120000 -ALG_EC_SVDP_DHC_KDF;yes;0,120000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,110000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,080000 diff --git a/Profiles/results/NXP_JCOP_J3A040_ICFabDate_2010_071_ALGSUPPORT__3b_88_80_01_4a_43_4f_50_76_32_34_31_5e_(provided_by_Lukas_Malina).csv b/Profiles/results/NXP_JCOP_J3A040_ICFabDate_2010_071_ALGSUPPORT__3b_88_80_01_4a_43_4f_50_76_32_34_31_5e_(provided_by_Lukas_Malina).csv index 390e6a55..ebf6fcc5 100644 --- a/Profiles/results/NXP_JCOP_J3A040_ICFabDate_2010_071_ALGSUPPORT__3b_88_80_01_4a_43_4f_50_76_32_34_31_5e_(provided_by_Lukas_Malina).csv +++ b/Profiles/results/NXP_JCOP_J3A040_ICFabDate_2010_071_ALGSUPPORT__3b_88_80_01_4a_43_4f_50_76_32_34_31_5e_(provided_by_Lukas_Malina).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0,125000 -ALG_EC_SVDP_DHC;yes;0,109000 ALG_EC_SVDP_DH_KDF;yes;0,125000 -ALG_EC_SVDP_DH_PLAIN;yes;0,125000 -ALG_EC_SVDP_DHC_KDF;yes;0,110000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,125000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0,072000 diff --git a/Profiles/results/NXP_JCOP_J3D081_v242r2_ICFabDate_2012_334_3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3.csv_(provided_by_Martin_Paljak_and_Arnis_UT).csv b/Profiles/results/NXP_JCOP_J3D081_v242r2_ICFabDate_2012_334_3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3.csv_(provided_by_Martin_Paljak_and_Arnis_UT).csv index 8ba81446..077731d2 100644 --- a/Profiles/results/NXP_JCOP_J3D081_v242r2_ICFabDate_2012_334_3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3.csv_(provided_by_Martin_Paljak_and_Arnis_UT).csv +++ b/Profiles/results/NXP_JCOP_J3D081_v242r2_ICFabDate_2012_334_3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3.csv_(provided_by_Martin_Paljak_and_Arnis_UT).csv @@ -212,11 +212,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.183000 -ALG_EC_SVDP_DHC;yes;0.185000 ALG_EC_SVDP_DH_KDF;yes;0.186000 -ALG_EC_SVDP_DH_PLAIN;yes;0.185000 -ALG_EC_SVDP_DHC_KDF;yes;0.185000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.185000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.146000 diff --git a/Profiles/results/Oberthur_ID-ONE_Cosmo_64_RSA_v5.4_ICFabDate_2007_031_ALGSUPPORT__3b_7b_18_00_00_00_31_c0_64_77_e9_10_00_01_90_00_(provided_by_PetrS).csv b/Profiles/results/Oberthur_ID-ONE_Cosmo_64_RSA_v5.4_ICFabDate_2007_031_ALGSUPPORT__3b_7b_18_00_00_00_31_c0_64_77_e9_10_00_01_90_00_(provided_by_PetrS).csv index e1723df1..031175f1 100644 --- a/Profiles/results/Oberthur_ID-ONE_Cosmo_64_RSA_v5.4_ICFabDate_2007_031_ALGSUPPORT__3b_7b_18_00_00_00_31_c0_64_77_e9_10_00_01_90_00_(provided_by_PetrS).csv +++ b/Profiles/results/Oberthur_ID-ONE_Cosmo_64_RSA_v5.4_ICFabDate_2007_031_ALGSUPPORT__3b_7b_18_00_00_00_31_c0_64_77_e9_10_00_01_90_00_(provided_by_PetrS).csv @@ -213,12 +213,8 @@ TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_64;no; TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;no; javacard.security.KeyAgreement -ALG_EC_SVDP_DH;yes;0,019000 -ALG_EC_SVDP_DHC;yes;0,019000 -ALG_EC_SVDP_DH_KDF;yes;0,020000 -ALG_EC_SVDP_DH_PLAIN;yes;0,020000 -ALG_EC_SVDP_DHC_KDF;yes;0,020000 -ALG_EC_SVDP_DHC_PLAIN;yes;0,020000 +ALG_EC_SVDP_DH;no; +ALG_EC_SVDP_DH_KDF;no; javacard.security.Checksum ALG_ISO3309_CRC16;no; diff --git a/Profiles/results/Softlock_SLCOS_InfineonSLE78_ALGSUPPORT__3b_8a_80_01_53_4c_43_4f_53_20_54_3d_43_4c_0d_(provided_by_Ahmed_Mamdouh).csv b/Profiles/results/Softlock_SLCOS_InfineonSLE78_ALGSUPPORT__3b_8a_80_01_53_4c_43_4f_53_20_54_3d_43_4c_0d_(provided_by_Ahmed_Mamdouh).csv index 87ab56e7..2a4e2b29 100644 --- a/Profiles/results/Softlock_SLCOS_InfineonSLE78_ALGSUPPORT__3b_8a_80_01_53_4c_43_4f_53_20_54_3d_43_4c_0d_(provided_by_Ahmed_Mamdouh).csv +++ b/Profiles/results/Softlock_SLCOS_InfineonSLE78_ALGSUPPORT__3b_8a_80_01_53_4c_43_4f_53_20_54_3d_43_4c_0d_(provided_by_Ahmed_Mamdouh).csv @@ -191,11 +191,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;yes;0.122000 javacard.security.KeyAgreement ALG_EC_SVDP_DH;yes;0.085000 -ALG_EC_SVDP_DHC;yes;0.063000 ALG_EC_SVDP_DH_KDF;yes;0.070000 -ALG_EC_SVDP_DH_PLAIN;yes;0.076000 -ALG_EC_SVDP_DHC_KDF;yes;0.072000 -ALG_EC_SVDP_DHC_PLAIN;yes;0.073000 javacard.security.Checksum ALG_ISO3309_CRC16;yes;0.076000 diff --git a/Profiles/results/[undisclosed5]_3b_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_(provided_by_Metro).csv b/Profiles/results/[undisclosed5]_3b_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_(provided_by_Metro).csv index 363124f8..f4ab51c2 100644 --- a/Profiles/results/[undisclosed5]_3b_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_(provided_by_Metro).csv +++ b/Profiles/results/[undisclosed5]_3b_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_(provided_by_Metro).csv @@ -195,11 +195,7 @@ TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_64;yes;0,946 ;; javacard.security.KeyAgreement;; ALG_EC_SVDP_DH;yes;0,962 -ALG_EC_SVDP_DHC;yes;0,976 ALG_EC_SVDP_DH_KDF;yes;0,972 -ALG_EC_SVDP_DH_PLAIN;yes;1,024 -ALG_EC_SVDP_DHC_KDF;yes;0,972 -ALG_EC_SVDP_DHC_PLAIN;yes;1,033 ;; javacard.security.Checksum;; ALG_ISO3309_CRC16;yes;0,996 From 088288ef4293d6864df9d947bdce9dcecfc3851c Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 16:03:31 +0200 Subject: [PATCH 13/14] generated fresh table with supported algs --- Profiles/AlgTest_html_table.html | 18912 +++++++++++++++-------------- 1 file changed, 10042 insertions(+), 8870 deletions(-) diff --git a/Profiles/AlgTest_html_table.html b/Profiles/AlgTest_html_table.html index 0308da04..1a7d94e1 100644 --- a/Profiles/AlgTest_html_table.html +++ b/Profiles/AlgTest_html_table.html @@ -60,70 +60,72 @@

The table provides a list of algorithms defined in JavaCard API and supporte

Tested cards abbreviations

-c0 Athena IDprotect , ATR=3B D5 18 FF 80 91 FE 1F C3 80 73 C8 21 13 08 (provided by Cosmo),
-c1 Axalto Cyberflex32 , ATR=3B 75 94 00 00 62 02 02 02 01 (provided by PetrS),
-c2 Axalto Cyberflex PalmeraV5 , ATR=3B E6 00 00 81 21 45 32 4B 01 01 01 01 7A (provided by PetrS),
-c3 Feitian C21C Samsung S3FS91J , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 05 24 c0 72 7e 00 86 (provided by Thotheolh Tay),
-c4 Feitian eJava Token , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 64 2f 70 c1 72 fe e0 fd (provided by Razvan Dragomirescu),
-c5 Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 10 04 f2 72 fe 00 01 (provided by Kenneth Benson),
-c6 Feitian JavaCOS A22CR ICFabDate 2016 084 , ATR=3b 8c 80 01 90 67 46 4a 01 00 25 04 00 00 00 00 d6 (provided by Josh Harvey),
-c7 Feitian JavaCOS A22CR ICFabDate 2016 257 , ATR=3b 9c 95 80 81 1f 03 90 67 46 4a 01 00 35 04 f2 72 fe 00 a1 (provided by PetrS),
-c8 Feitian JavaCOS A22 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
-c9 Feitian JavaCOS A22 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
-c10 Feitian JavaCOS A40 ICFabDate 2016 201 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 20 05 00 00 00 00 4e (provided by PetrS and Keneth Benson),
-c11 Feitian Java Card D11CR , ATR=3b 6a 00 00 09 44 31 31 43 52 02 00 25 c3 (provided by PetrS),
-c12 Feitian K9 NXPJ3E081 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Thotheolh Tay),
-c13 G+D Smartcafe 6.0 80K ICFabDate 2015 024 , ATR=3b fe 18 00 00 80 31 fe 45 53 43 45 36 30 2d 43 44 30 38 31 2d 6e 46 a9 (provided by PetrS),
-c14 G+D SmartCafe Expert 144k Dual , ATR=3b fd 18 00 00 80 31 fe 45 73 66 74 65 20 63 64 31 34 34 2d 6e 66 d8 (provided by Diego NdK),
-c15 G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126 , ATR=3b f7 18 00 00 80 31 fe 45 73 66 74 65 2d 6e 66 c4 (provided by Cosmo and PetrS),
-c16 G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079 , ATR=3b f8 18 00 00 80 31 fe 45 00 73 c8 40 13 00 90 00 92 (provided by PetrS), PerformanceGraphs
-c17 Gemalto IDCore 10 , ATR=3b 7d 96 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by Martin Paljak),
-c18 Gemalto IDCore 3010 CC , ATR=3b 7d 96 00 00 80 31 80 65 b0 85 02 00 cf 83 01 90 00 (provided by Martin Paljak),
-c19 Gemalto TOP IM GXP4 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by PetrS),
-c20 Gemalto TwinGCX4 72k PK , ATR=3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43 (provided by PetrS),
-c21 Gemplus GXPE64PK , ATR=3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 21 00 01 08 (provided by PetrS),
-c22 Gemplus GXPLiteGeneric , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
-c23 Gemplus GXPR3r32 , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
-c24 Gemplus GXPR3 , ATR=3B 7B 94 00 00 80 65 B0 83 01 01 74 83 00 90 00 (provided by PetrS),
-c25 Gemplus GXP R4 72K ICFabDate 2007 291 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 c0 a9 83 00 90 00 (provided by PetrS), PerformanceGraphs
-c26 Gemplus unknown jc2.1.2 ICFabDate 2006 005 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 11 ac 83 00 90 00 (provided by PetrS),
-c27 Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001 , ATR=3b fe 18 00 00 80 31 fe 45 80 31 80 66 40 90 a5 10 2e 10 83 01 90 00 f2 (provided by PetrS), PerformanceGraphs
-c28 Infineon JTOPV2 16K , ATR=3B 6D 00 00 80 31 80 65 40 90 86 01 51 83 07 90 00 (provided by PetrS),
-c29 JavaCardOS JC10M24R , ATR=3b 80 80 01 01 (provided by JavaCardOS),
-c30 JavaCardOS JC30M48CR , ATR=3b 80 80 01 01 (provided by JavaCardOS),
-c31 Nokia 6131 , ATR=3B 88 80 01 00 73 C8 40 13 00 90 00 71 (provided by Hakan Karahan),
-c32 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
-c33 NXP J2E145G ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS and Lukas Malina),
-c34 NXP JCOP10 (DES only version) , ATR=3b e9 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 32 a3 (provided by Henrik),
-c35 NXP JCOP31 , ATR=3B EB 00 00 81 31 20 45 4A 43 4F 50 33 31 33 36 47 44 54 78 (provided by PetrS),
-c36 NXP JCOP41 v221 , ATR=3b fa 18 00 00 81 31 fe 45 4a 43 4f 50 34 31 56 32 32 31 9d (provided by PetrS), PerformanceGraphs
-c37 NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163 , ATR=3b fa 13 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 33 31 93 (provided by PetrS),
-c38 NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS), PerformanceGraphs
-c39 NXP JCOP 21 V2.2 36K ICFabDate 2008 015 , ATR=3b f9 18 00 00 81 31 fe 45 4a 43 4f 50 32 31 56 32 32 a9 (provided by PetrS), PerformanceGraphs
-c40 NXP JCOP 31 V2.2 36K ICFabDate 2006 306 , ATR=3b eb 00 00 81 31 20 45 4a 43 4f 50 33 31 33 36 47 44 54 78 (provided by PetrS), PerformanceGraphs
-c41 NXP JCOP 31 V2.3.2 ICFabDate 2011 016 , ATR=3b 8a 80 01 4a 43 4f 50 33 31 56 32 33 32 7a (provided by Martin Omacka),
-c42 NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
-c43 NXP JCOP CJ2A081 JC222 ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
-c44 NXP JCOP CJ3A080v241 , ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 31 B7 (provided by Lazuardi Nasution), PerformanceGraphs
-c45 NXP JCOP CJ3A081 JC222 , ATR=3b fa 18 00 00 81 31 fe 45 4a 33 41 30 38 31 56 32 34 31 89 (provided by PetrS), PerformanceGraphs
-c46 NXP JCOP J2A080 , ATR=3b f6 18 00 ff 81 31 fe 45 4a 32 41 30 38 30 1b (provided by Pierre-d), PerformanceGraphs
-c47 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
-c48 NXP JCOP J2D081 80K ICFabDate 2014 126 , ATR=3b f9 18 00 00 81 31 fe 45 4a 32 44 30 38 31 5f 50 56 b6 (provided by PetrS and Paul Crocker), PerformanceGraphs
-c49 NXP JCOP J3A040 ICFabDate 2010 071 , ATR=3b 88 80 01 4a 43 4f 50 76 32 34 31 5e (provided by Lukas Malina),
-c50 NXP JCOP J3D081 v242r2 ICFabDate 2012 334 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3 (provided by Martin Paljak and Arnis UT),
-c51 NXP JCOP NXP250A v242r3 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Amir Digar Nemikhandad),
-c52 Oberthur CosmoDual72K , ATR=3B 7B 18 00 00 00 31 C0 64 77 E3 03 00 82 90 00 (provided by PetrS),
-c53 Oberthur Cosmo V7 64K Dual 128K , ATR=3B DB 18 00 80 B1 FE 45 1F 83 00 31 C0 64 C7 FC 10 00 01 90 00 FA (provided by Cosmo),
-c54 Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031 , ATR=3b 7b 18 00 00 00 31 c0 64 77 e9 10 00 01 90 00 (provided by PetrS), PerformanceGraphs
-c55 Softlock SLCOS InfineonSLE78 , ATR=3b 8a 80 01 53 4c 43 4f 53 20 54 3d 43 4c 0d (provided by Ahmed Mamdouh),
-c56 Unknown , ATR=3b 68 00 00 00 73 c8 40 12 00 90 00 (provided by Amir Digar Nemikhandad),
-c57 Yubikey Neo (Warning not open JavaCard) , ATR=3b fa 13 00 00 81 31 fe 15 59 75 62 69 6b 65 79 4e 45 4f a6 (provided by Pierre-d and Cosmo),
-c58 [undisclosed1] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
-c59 [undisclosed2] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
-c60 [undisclosed3] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
-c61 [undisclosed4] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
-c62 [undisclosed5] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),
-c63 [undisclosed6] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),
+c0 ACS ACOSJ (Combi) , ATR=3b 69 00 02 41 43 4f 53 4a 76 31 30 31 (provided by Alexandre Bouvier),
+c1 Athena IDprotect , ATR=3B D5 18 FF 80 91 FE 1F C3 80 73 C8 21 13 08 (provided by Cosmo),
+c2 Axalto Cyberflex32 , ATR=3B 75 94 00 00 62 02 02 02 01 (provided by PetrS),
+c3 Axalto Cyberflex PalmeraV5 , ATR=3B E6 00 00 81 21 45 32 4B 01 01 01 01 7A (provided by PetrS),
+c4 Feitian C21C Samsung S3FS91J , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 05 24 c0 72 7e 00 86 (provided by Thotheolh Tay),
+c5 Feitian eJava Token , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 64 2f 70 c1 72 fe e0 fd (provided by Razvan Dragomirescu),
+c6 Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 10 04 f2 72 fe 00 01 (provided by Kenneth Benson),
+c7 Feitian JavaCOS A22CR ICFabDate 2016 084 , ATR=3b 8c 80 01 90 67 46 4a 01 00 25 04 00 00 00 00 d6 (provided by Josh Harvey),
+c8 Feitian JavaCOS A22CR ICFabDate 2016 257 , ATR=3b 9c 95 80 81 1f 03 90 67 46 4a 01 00 35 04 f2 72 fe 00 a1 (provided by PetrS),
+c9 Feitian JavaCOS A22 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
+c10 Feitian JavaCOS A22 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
+c11 Feitian JavaCOS A40 ICFabDate 2016 201 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 20 05 00 00 00 00 4e (provided by PetrS and Keneth Benson),
+c12 Feitian Java Card D11CR , ATR=3b 6a 00 00 09 44 31 31 43 52 02 00 25 c3 (provided by PetrS),
+c13 Feitian K9 NXPJ3E081 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Thotheolh Tay),
+c14 G+D Smartcafe 6.0 80K ICFabDate 2015 024 , ATR=3b fe 18 00 00 80 31 fe 45 53 43 45 36 30 2d 43 44 30 38 31 2d 6e 46 a9 (provided by PetrS),
+c15 G+D SmartCafe Expert 144k Dual , ATR=3b fd 18 00 00 80 31 fe 45 73 66 74 65 20 63 64 31 34 34 2d 6e 66 d8 (provided by Diego NdK),
+c16 G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126 , ATR=3b f7 18 00 00 80 31 fe 45 73 66 74 65 2d 6e 66 c4 (provided by Cosmo and PetrS),
+c17 G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079 , ATR=3b f8 18 00 00 80 31 fe 45 00 73 c8 40 13 00 90 00 92 (provided by PetrS), PerformanceGraphs
+c18 Gemalto IDCore 10 , ATR=3b 7d 96 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by Martin Paljak),
+c19 Gemalto IDCore 3010 CC , ATR=3b 7d 96 00 00 80 31 80 65 b0 85 02 00 cf 83 01 90 00 (provided by Martin Paljak),
+c20 Gemalto TOP IM GXP4 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by PetrS),
+c21 Gemalto TwinGCX4 72k PK , ATR=3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43 (provided by PetrS),
+c22 Gemplus GXPE64PK , ATR=3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 21 00 01 08 (provided by PetrS),
+c23 Gemplus GXPLiteGeneric , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
+c24 Gemplus GXPR3r32 , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
+c25 Gemplus GXPR3 , ATR=3B 7B 94 00 00 80 65 B0 83 01 01 74 83 00 90 00 (provided by PetrS),
+c26 Gemplus GXP R4 72K ICFabDate 2007 291 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 c0 a9 83 00 90 00 (provided by PetrS), PerformanceGraphs
+c27 Gemplus unknown jc2.1.2 ICFabDate 2006 005 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 11 ac 83 00 90 00 (provided by PetrS),
+c28 Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001 , ATR=3b fe 18 00 00 80 31 fe 45 80 31 80 66 40 90 a5 10 2e 10 83 01 90 00 f2 (provided by PetrS), PerformanceGraphs
+c29 Infineon JTOPV2 16K , ATR=3B 6D 00 00 80 31 80 65 40 90 86 01 51 83 07 90 00 (provided by PetrS),
+c30 Infineon SLE78 Universal JCard , ATR=3b fd 96 00 00 81 31 fe 45 53 4c 4a 35 32 47 44 4c 31 32 38 43 52 57 (provided by Till Mass),
+c31 JavaCardOS Infineon JC30M48CR , ATR=3b 80 80 01 01 (provided by JavaCardOS and Thotheolh Tay),
+c32 JavaCardOS JC10M24R , ATR=3b 80 80 01 01 (provided by JavaCardOS),
+c33 Nokia 6131 , ATR=3B 88 80 01 00 73 C8 40 13 00 90 00 71 (provided by Hakan Karahan),
+c34 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
+c35 NXP J2E145G ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS and Lukas Malina),
+c36 NXP JCOP10 (DES only version) , ATR=3b e9 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 32 a3 (provided by Henrik),
+c37 NXP JCOP31 , ATR=3B EB 00 00 81 31 20 45 4A 43 4F 50 33 31 33 36 47 44 54 78 (provided by PetrS),
+c38 NXP JCOP41 v221 , ATR=3b fa 18 00 00 81 31 fe 45 4a 43 4f 50 34 31 56 32 32 31 9d (provided by PetrS), PerformanceGraphs
+c39 NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163 , ATR=3b fa 13 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 33 31 93 (provided by PetrS),
+c40 NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS), PerformanceGraphs
+c41 NXP JCOP 21 V2.2 36K ICFabDate 2008 015 , ATR=3b f9 18 00 00 81 31 fe 45 4a 43 4f 50 32 31 56 32 32 a9 (provided by PetrS), PerformanceGraphs
+c42 NXP JCOP 31 V2.2 36K ICFabDate 2006 306 , ATR=3b eb 00 00 81 31 20 45 4a 43 4f 50 33 31 33 36 47 44 54 78 (provided by PetrS), PerformanceGraphs
+c43 NXP JCOP 31 V2.3.2 ICFabDate 2011 016 , ATR=3b 8a 80 01 4a 43 4f 50 33 31 56 32 33 32 7a (provided by Martin Omacka),
+c44 NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
+c45 NXP JCOP CJ2A081 JC222 ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
+c46 NXP JCOP CJ3A080v241 , ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 31 B7 (provided by Lazuardi Nasution), PerformanceGraphs
+c47 NXP JCOP CJ3A081 JC222 , ATR=3b fa 18 00 00 81 31 fe 45 4a 33 41 30 38 31 56 32 34 31 89 (provided by PetrS), PerformanceGraphs
+c48 NXP JCOP J2A080 , ATR=3b f6 18 00 ff 81 31 fe 45 4a 32 41 30 38 30 1b (provided by Pierre-d), PerformanceGraphs
+c49 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
+c50 NXP JCOP J2D081 80K ICFabDate 2014 126 , ATR=3b f9 18 00 00 81 31 fe 45 4a 32 44 30 38 31 5f 50 56 b6 (provided by PetrS and Paul Crocker), PerformanceGraphs
+c51 NXP JCOP J3A040 ICFabDate 2010 071 , ATR=3b 88 80 01 4a 43 4f 50 76 32 34 31 5e (provided by Lukas Malina),
+c52 NXP JCOP J3D081 v242r2 ICFabDate 2012 334 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3 (provided by Martin Paljak and Arnis UT),
+c53 NXP JCOP NXP250A v242r3 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Amir Digar Nemikhandad),
+c54 Oberthur CosmoDual72K , ATR=3B 7B 18 00 00 00 31 C0 64 77 E3 03 00 82 90 00 (provided by PetrS),
+c55 Oberthur Cosmo V7 64K Dual 128K , ATR=3B DB 18 00 80 B1 FE 45 1F 83 00 31 C0 64 C7 FC 10 00 01 90 00 FA (provided by Cosmo),
+c56 Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031 , ATR=3b 7b 18 00 00 00 31 c0 64 77 e9 10 00 01 90 00 (provided by PetrS), PerformanceGraphs
+c57 Softlock SLCOS InfineonSLE78 , ATR=3b 8a 80 01 53 4c 43 4f 53 20 54 3d 43 4c 0d (provided by Ahmed Mamdouh),
+c58 Unknown , ATR=3b 68 00 00 00 73 c8 40 12 00 90 00 (provided by Amir Digar Nemikhandad),
+c59 Yubikey Neo (Warning not open JavaCard) , ATR=3b fa 13 00 00 81 31 fe 15 59 75 62 69 6b 65 79 4e 45 4f a6 (provided by Pierre-d and Cosmo),
+c60 [undisclosed1] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c61 [undisclosed2] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c62 [undisclosed3] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c63 [undisclosed4] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c64 [undisclosed5] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),
+c65 [undisclosed6] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),

Note: Some cards in the table come without full identification and ATR ('undisclosed') as submitters prefered not to disclose it at the momment. I'm publishing it anyway as the information that some card supporting particular algorithm exists is still interesting. Full identification might be added in future.

@@ -163,74 +165,76 @@

Tested cards abbreviations

Click on each checkbox to show/hide corresponding column (card)

-

c0 - Athena IDprotect

-

c1 - Axalto Cyberflex32

-

c2 - Axalto Cyberflex PalmeraV5

-

c3 - Feitian C21C Samsung S3FS91J

-

c4 - Feitian eJava Token

-

c5 - Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015

-

c6 - Feitian JavaCOS A22CR ICFabDate 2016 084

-

c7 - Feitian JavaCOS A22CR ICFabDate 2016 257

-

c8 - Feitian JavaCOS A22

-

c9 - Feitian JavaCOS A22 ICFabDate 2015

-

c10 - Feitian JavaCOS A40 ICFabDate 2016 201

-

c11 - Feitian Java Card D11CR

-

c12 - Feitian K9 NXPJ3E081

-

c13 - G+D Smartcafe 6.0 80K ICFabDate 2015 024

-

c14 - G+D SmartCafe Expert 144k Dual

-

c15 - G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126

-

c16 - G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079

-

c17 - Gemalto IDCore 10

-

c18 - Gemalto IDCore 3010 CC

-

c19 - Gemalto TOP IM GXP4

-

c20 - Gemalto TwinGCX4 72k PK

-

c21 - Gemplus GXPE64PK

+

c0 - ACS ACOSJ (Combi)

+

c1 - Athena IDprotect

+

c2 - Axalto Cyberflex32

+

c3 - Axalto Cyberflex PalmeraV5

+

c4 - Feitian C21C Samsung S3FS91J

+

c5 - Feitian eJava Token

+

c6 - Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015

+

c7 - Feitian JavaCOS A22CR ICFabDate 2016 084

+

c8 - Feitian JavaCOS A22CR ICFabDate 2016 257

+

c9 - Feitian JavaCOS A22

+

c10 - Feitian JavaCOS A22 ICFabDate 2015

+

c11 - Feitian JavaCOS A40 ICFabDate 2016 201

+

c12 - Feitian Java Card D11CR

+

c13 - Feitian K9 NXPJ3E081

+

c14 - G+D Smartcafe 6.0 80K ICFabDate 2015 024

+

c15 - G+D SmartCafe Expert 144k Dual

+

c16 - G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126

+

c17 - G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079

+

c18 - Gemalto IDCore 10

+

c19 - Gemalto IDCore 3010 CC

+

c20 - Gemalto TOP IM GXP4

+

c21 - Gemalto TwinGCX4 72k PK

+

c22 - Gemplus GXPE64PK

-

c22 - Gemplus GXPLiteGeneric

-

c23 - Gemplus GXPR3r32

-

c24 - Gemplus GXPR3

-

c25 - Gemplus GXP R4 72K ICFabDate 2007 291

-

c26 - Gemplus unknown jc2.1.2 ICFabDate 2006 005

-

c27 - Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001

-

c28 - Infineon JTOPV2 16K

-

c29 - JavaCardOS JC10M24R

-

c30 - JavaCardOS JC30M48CR

-

c31 - Nokia 6131

-

c32 - NXP JCOP J2A080 80K ICFabDate 2011 070

-

c33 - NXP J2E145G ICFabDate 2013 025

-

c34 - NXP JCOP10 (DES only version)

-

c35 - NXP JCOP31

-

c36 - NXP JCOP41 v221

-

c37 - NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163

-

c38 - NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025

-

c39 - NXP JCOP 21 V2.2 36K ICFabDate 2008 015

-

c40 - NXP JCOP 31 V2.2 36K ICFabDate 2006 306

-

c41 - NXP JCOP 31 V2.3.2 ICFabDate 2011 016

-

c42 - NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240

-

c43 - NXP JCOP CJ2A081 JC222 ICFabDate 2012 240

+

c23 - Gemplus GXPLiteGeneric

+

c24 - Gemplus GXPR3r32

+

c25 - Gemplus GXPR3

+

c26 - Gemplus GXP R4 72K ICFabDate 2007 291

+

c27 - Gemplus unknown jc2.1.2 ICFabDate 2006 005

+

c28 - Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001

+

c29 - Infineon JTOPV2 16K

+

c30 - Infineon SLE78 Universal JCard

+

c31 - JavaCardOS Infineon JC30M48CR

+

c32 - JavaCardOS JC10M24R

+

c33 - Nokia 6131

+

c34 - NXP JCOP J2A080 80K ICFabDate 2011 070

+

c35 - NXP J2E145G ICFabDate 2013 025

+

c36 - NXP JCOP10 (DES only version)

+

c37 - NXP JCOP31

+

c38 - NXP JCOP41 v221

+

c39 - NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163

+

c40 - NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025

+

c41 - NXP JCOP 21 V2.2 36K ICFabDate 2008 015

+

c42 - NXP JCOP 31 V2.2 36K ICFabDate 2006 306

+

c43 - NXP JCOP 31 V2.3.2 ICFabDate 2011 016

+

c44 - NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240

+

c45 - NXP JCOP CJ2A081 JC222 ICFabDate 2012 240

-

c44 - NXP JCOP CJ3A080v241

-

c45 - NXP JCOP CJ3A081 JC222

-

c46 - NXP JCOP J2A080

-

c47 - NXP JCOP J2A080 80K ICFabDate 2011 070

-

c48 - NXP JCOP J2D081 80K ICFabDate 2014 126

-

c49 - NXP JCOP J3A040 ICFabDate 2010 071

-

c50 - NXP JCOP J3D081 v242r2 ICFabDate 2012 334

-

c51 - NXP JCOP NXP250A v242r3

-

c52 - Oberthur CosmoDual72K

-

c53 - Oberthur Cosmo V7 64K Dual 128K

-

c54 - Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031

-

c55 - Softlock SLCOS InfineonSLE78

-

c56 - Unknown

-

c57 - Yubikey Neo (Warning not open JavaCard)

-

c58 - [undisclosed1]

-

c59 - [undisclosed2]

-

c60 - [undisclosed3]

-

c61 - [undisclosed4]

-

c62 - [undisclosed5]

-

c63 - [undisclosed6]

+

c46 - NXP JCOP CJ3A080v241

+

c47 - NXP JCOP CJ3A081 JC222

+

c48 - NXP JCOP J2A080

+

c49 - NXP JCOP J2A080 80K ICFabDate 2011 070

+

c50 - NXP JCOP J2D081 80K ICFabDate 2014 126

+

c51 - NXP JCOP J3A040 ICFabDate 2010 071

+

c52 - NXP JCOP J3D081 v242r2 ICFabDate 2012 334

+

c53 - NXP JCOP NXP250A v242r3

+

c54 - Oberthur CosmoDual72K

+

c55 - Oberthur Cosmo V7 64K Dual 128K

+

c56 - Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031

+

c57 - Softlock SLCOS InfineonSLE78

+

c58 - Unknown

+

c59 - Yubikey Neo (Warning not open JavaCard)

+

c60 - [undisclosed1]

+

c61 - [undisclosed2]

+

c62 - [undisclosed3]

+

c63 - [undisclosed4]

+

c64 - [undisclosed5]

+

c65 - [undisclosed6]


@@ -240,78 +244,81 @@

Click on each checkbox to show/hide corresponding column (card)



- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -341,8 +348,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -380,6 +388,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -411,6 +420,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -448,74 +458,77 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -545,8 +558,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -584,6 +598,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -613,8 +628,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -652,6 +668,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -681,8 +698,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -720,6 +738,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -749,8 +768,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -788,6 +808,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -817,8 +838,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -920,79 +942,84 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1023,6 +1050,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1060,74 +1088,77 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1157,8 +1188,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1196,6 +1228,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1225,8 +1258,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1264,6 +1298,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1293,8 +1328,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1332,6 +1368,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1361,8 +1398,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1400,6 +1438,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1429,8 +1468,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1468,6 +1508,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1497,8 +1538,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1536,6 +1578,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1565,8 +1608,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1604,6 +1648,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1633,8 +1678,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1672,6 +1718,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1701,8 +1748,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1740,6 +1788,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1769,8 +1818,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1808,6 +1858,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1837,8 +1888,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1876,6 +1928,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1905,8 +1958,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -1944,6 +1998,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -1973,8 +2028,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2012,6 +2068,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2041,8 +2098,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2080,6 +2138,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2109,8 +2168,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2148,6 +2208,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2177,8 +2238,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2216,6 +2278,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2245,8 +2308,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2284,6 +2348,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2313,8 +2378,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2352,6 +2418,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2381,8 +2448,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2420,6 +2488,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2449,8 +2518,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2488,6 +2558,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2517,8 +2588,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2556,6 +2628,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2585,8 +2658,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2624,6 +2698,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2653,8 +2728,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2692,6 +2768,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2721,8 +2798,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2760,6 +2838,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2789,8 +2868,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2828,6 +2908,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2857,8 +2938,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2896,6 +2978,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -2925,8 +3008,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -2964,74 +3048,77 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3061,8 +3148,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3100,6 +3188,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3129,8 +3218,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3168,6 +3258,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3197,8 +3288,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3236,6 +3328,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3265,8 +3358,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3304,6 +3398,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3333,8 +3428,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3372,6 +3468,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3401,8 +3498,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3440,6 +3538,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3469,8 +3568,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3508,6 +3608,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3537,8 +3638,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3576,6 +3678,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3605,8 +3708,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3644,6 +3748,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3673,8 +3778,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3712,6 +3818,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3741,8 +3848,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3780,6 +3888,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3809,8 +3918,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3848,6 +3958,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3877,8 +3988,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3916,6 +4028,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -3945,8 +4058,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -3984,6 +4098,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4013,8 +4128,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4052,6 +4168,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4081,8 +4198,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4120,6 +4238,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4149,8 +4268,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4188,6 +4308,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4217,8 +4338,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4256,6 +4378,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4285,8 +4408,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4324,6 +4448,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4353,8 +4478,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4392,6 +4518,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4421,8 +4548,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4460,6 +4588,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4489,8 +4618,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4528,6 +4658,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4557,8 +4688,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4596,6 +4728,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4625,8 +4758,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4664,6 +4798,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4693,8 +4828,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4732,6 +4868,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4761,8 +4898,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4800,6 +4938,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4829,8 +4968,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4868,6 +5008,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4897,8 +5038,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -4936,6 +5078,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -4965,8 +5108,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5004,6 +5148,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5033,8 +5178,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5072,6 +5218,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5101,8 +5248,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5140,6 +5288,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5169,8 +5318,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5208,6 +5358,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5237,8 +5388,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5276,6 +5428,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5305,8 +5458,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5344,6 +5498,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5373,8 +5528,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5412,6 +5568,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5441,8 +5598,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5480,6 +5638,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5509,8 +5668,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5548,6 +5708,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5577,8 +5738,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5616,6 +5778,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5645,8 +5808,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5684,6 +5848,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5713,8 +5878,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5752,6 +5918,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5781,8 +5948,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5820,6 +5988,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5849,8 +6018,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5888,6 +6058,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5917,8 +6088,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -5956,6 +6128,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -5985,8 +6158,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6024,6 +6198,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6053,8 +6228,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6092,6 +6268,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6121,8 +6298,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6160,6 +6338,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6189,8 +6368,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6228,6 +6408,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6257,8 +6438,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6293,77 +6475,150 @@

Click on each checkbox to show/hide corresponding column (card)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6393,8 +6648,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6432,6 +6688,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6461,8 +6718,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6500,6 +6758,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6529,8 +6788,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6568,6 +6828,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6597,8 +6858,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6636,6 +6898,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6665,8 +6928,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6704,6 +6968,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6733,8 +6998,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6772,6 +7038,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -6801,8 +7068,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -6838,6992 +7106,7758 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + + - - + + - - - - - - - + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - + - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + + - - + + - - - - - - - + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + + - - + + - - - - - - - + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + - - + + + + + - - - - - - - - + + + + + + + - - - - - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + - - - + + + - - + + + - - + + - - - - - - - + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - + - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + + - - + + - - - - - - - + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13842,1776 +14876,1899 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15641,8 +16798,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -15680,6 +16838,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -15709,8 +16868,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -15748,74 +16908,77 @@

Click on each checkbox to show/hide corresponding column (card)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15845,8 +17008,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -15884,6 +17048,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -15913,8 +17078,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -15952,6 +17118,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -15981,8 +17148,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -16020,6 +17188,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -16049,8 +17218,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - @@ -16088,6 +17258,7 @@

Click on each checkbox to show/hide corresponding column (card)

+ @@ -16117,8 +17288,9 @@

Click on each checkbox to show/hide corresponding column (card)

+ + - From f08051bcaedcc771ac22ee79dad906560201581c Mon Sep 17 00:00:00 2001 From: petrs Date: Sat, 10 Jun 2017 16:17:35 +0200 Subject: [PATCH 14/14] release 1.7.3 --- AlgTest_JClient/dist/AlgTestJClient.jar | Bin 381001 -> 384646 bytes .../src/algtest/JCAlgTestApplet.java | 15 +- .../src/algtestjclient/AlgTestJClient.java | 27 +- AlgTest_JavaCard/AlgTest_v1.7.3_jc222.cap | Bin 0 -> 26458 bytes .../src/AlgTest/AlgSupportTest.java | 2 +- .../src/AlgTest/JCAlgTestApplet.java | 15 +- AlgTest_JavaCard/src/AlgTest/JCConsts.java | 17 + AlgTest_dist_1.7.3.zip | Bin 0 -> 156265 bytes Profiles/AlgTest_html_table_20170610.html | 17426 ++++++++++++++++ 9 files changed, 17485 insertions(+), 17 deletions(-) create mode 100644 AlgTest_JavaCard/AlgTest_v1.7.3_jc222.cap create mode 100644 AlgTest_dist_1.7.3.zip create mode 100644 Profiles/AlgTest_html_table_20170610.html diff --git a/AlgTest_JClient/dist/AlgTestJClient.jar b/AlgTest_JClient/dist/AlgTestJClient.jar index e16d30de6f3776d4cec2aed3737f211f8a529193..89ef365b16d067ee5a8ae98e608f0e65b852eebb 100644 GIT binary patch delta 45181 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%0D}9DKI)y`hMT%u4Y7Ik^X?My1UoFL=H1Khm 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

;?T%TZI^A1U{rd} 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

<9%c+E- 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

Basic info introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
AlgTest applet version 1.7.1 1.2 0.1 0.1 error 1.7.0 1.11.7.11.6.0 1.6.01.6.0 0.1 1.6.0 1.7.1
JavaCard support version - 2.2.2 2.1.2 2.1.2 2.1.2 - -- 2.2.0 2.2.2 -
javacard.framework.JCSystem introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
JCSystem.getVersion()[Major.Minor] ≤2.13.0 2.2 - - - 3.0 -3.03.0 3.03.0 - 2.2 3.0
JCSystem.isObjectDeletionSupported 2.2.0yes yes - - - yes -yesyes yesyes - no yes
JCSystem.MEMORY_TYPE_PERSISTENT 2.2.120340B >32767B - - - >32767B ->32767B>32767B 6380B>32767B - -1B 23776B
JCSystem.MEMORY_TYPE_TRANSIENT_RESET 2.2.11154B 4878B - - - 2119B -2228B997B 2471B997B - -1B 2573B
JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT 2.2.13624B 4878B - - - 1152B -1022B384B 512B384B - -1B 512B - - ---
javacardx.apdu.ExtendedLength introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
Extended APDU 2.2.2 -- no no - no - -- no - -
javacardx.crypto.Cipher introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DES_CBC_NOPAD ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_CBC_ISO9797_M1 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_CBC_ISO9797_M2 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_CBC_PKCS5 ≤2.1yes no no no no no noyesyes yesyes yes yes no
ALG_DES_ECB_NOPAD ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_ECB_ISO9797_M1 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_ECB_ISO9797_M2 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_ECB_PKCS5 ≤2.1yes no no no no no noyesyes yesyes yes no no
ALG_RSA_ISO14888 ≤2.1no no no no no no nonono nono yes no no
ALG_RSA_PKCS1 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_RSA_ISO9796 ≤2.1no no no no no yes yesnono nono yes no no
ALG_RSA_NOPAD 2.1.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_AES_BLOCK_128_CBC_NOPAD 2.2.0yes yes no suspicious yes suspicious yes yes noyesyes yesyes no yes yes
ALG_AES_BLOCK_128_ECB_NOPAD 2.2.0yes yes no suspicious yes suspicious yes yes noyesyes yesyes no yes yes
ALG_RSA_PKCS1_OAEP 2.2.0no no no no no no nonono nono no no no
ALG_KOREAN_SEED_ECB_NOPAD 2.2.2yes yes no no no no nonono nono no yes yes
ALG_KOREAN_SEED_CBC_NOPAD 2.2.2yes yes no no no no nonono nono no yes yes
ALG_AES_BLOCK_192_CBC_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_AES_BLOCK_192_ECB_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_AES_BLOCK_256_CBC_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_AES_BLOCK_256_ECB_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_AES_CBC_ISO9797_M1 3.0.1yes no - - no no -yesyes yesyes - no no
ALG_AES_CBC_ISO9797_M2 3.0.1yes no - - no no -yesyes yesyes - no no
ALG_AES_CBC_PKCS5 3.0.1yes no - - no no -yesyes yesyes - no no
ALG_AES_ECB_ISO9797_M1 3.0.1yes no - - no no -yesyes yesyes - no no
ALG_AES_ECB_ISO9797_M2 3.0.1yes no - - no no -yesyes yesyes - no no
ALG_AES_ECB_PKCS5 3.0.1yes no - - no no -yesyes yesyes - no no
javacard.crypto.Signature introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DES_MAC4_NOPAD ≤2.1yes no no yes yes yes noyesyes yesyes yes no no
ALG_DES_MAC8_NOPAD ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_MAC4_ISO9797_M1 ≤2.1yes no no yes yes yes noyesyes yesyes yes no no
ALG_DES_MAC8_ISO9797_M1 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_MAC4_ISO9797_M2 ≤2.1yes no no yes yes yes noyesyes yesyes yes no no
ALG_DES_MAC8_ISO9797_M2 ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_DES_MAC4_PKCS5 ≤2.1yes no no no no no nonoyes yesyes yes no no
ALG_DES_MAC8_PKCS5 ≤2.1yes no no no no no noyesyes yesyes yes no no
ALG_RSA_SHA_ISO9796 ≤2.1no yes no yes yes yes yesyesyes yesyes yes yes yes
ALG_RSA_SHA_PKCS1 ≤2.1no yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_RSA_MD5_PKCS1 ≤2.1no no yes yes yes yes yesnoyes noyes yes yes yes
ALG_RSA_RIPEMD160_ISO9796 ≤2.1no no no no no no nonono nono yes no no
ALG_RSA_RIPEMD160_PKCS1 ≤2.1no no no no no no nonono nono yes no no
ALG_DSA_SHA ≤2.1no no no no no no nonono nono no no no
ALG_RSA_SHA_RFC2409 ≤2.1no no no no no no nonono nono yes no no
ALG_RSA_MD5_RFC2409 ≤2.1no no no no no no nonono nono yes no no
ALG_ECDSA_SHA 2.2.0yes no no no no yes noyesyes noyes no yes yes
ALG_AES_MAC_128_NOPAD 2.2.0no yes no suspicious yes suspicious yes yes noyesyes yesyes no yes yes
ALG_DES_MAC4_ISO9797_1_M2_ALG3 2.2.0yes no no no suspicious yes yes nonoyes yesyes yes no no
ALG_DES_MAC8_ISO9797_1_M2_ALG3 2.2.0yes no no no suspicious yes yes noyesyes yesyes yes yes yes
ALG_RSA_SHA_PKCS1_PSS 2.2.0no no no no no no noyesno nono no no yes
ALG_RSA_MD5_PKCS1_PSS 2.2.0no no no no no no nonono nono no no no
ALG_RSA_RIPEMD160_PKCS1_PSS 2.2.0no no no no no no nonono nono no no no
ALG_HMAC_SHA1 2.2.2no no no no no no nonono nono no no no
ALG_HMAC_SHA_256 2.2.2no no no no no no nonono nono no no no
ALG_HMAC_SHA_384 2.2.2no no no no no no nonono nono no no no
ALG_HMAC_SHA_512 2.2.2no no no no no no nonono nono no no no
ALG_HMAC_MD5 2.2.2no no no no no no nonono nono no no no
ALG_HMAC_RIPEMD160 2.2.2no no no no no no nonono nono no no no
ALG_RSA_SHA_ISO9796_MR 2.2.2no no no no no no noyesyes yesyes no no no
ALG_RSA_RIPEMD160_ISO9796_MR 2.2.2no no no no no no nonono nono no no no
ALG_SEED_MAC_NOPAD 2.2.2no yes no no no no nonono nono no yes yes
ALG_ECDSA_SHA_256 3.0.1yes no - - no suspicious yes -yesyes noyes - no yes
ALG_ECDSA_SHA_384 3.0.1yes no - - no suspicious yes -yesyes noyes - no no
ALG_AES_MAC_192_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_AES_MAC_256_NOPAD 3.0.1no no - - no no -nono nono - no no
ALG_ECDSA_SHA_224 3.0.1yes no - - no suspicious yes -yesyes noyes - no yes
ALG_ECDSA_SHA_512 3.0.1yes no - - no suspicious yes -yesyes noyes - no no
ALG_RSA_SHA_224_PKCS1 3.0.1no no - - no no -yesyes noyes - no no
ALG_RSA_SHA_256_PKCS1 3.0.1no no - - no no -yesyes noyes - no yes
ALG_RSA_SHA_384_PKCS1 3.0.1no no - - no no -yesyes noyes - no no
ALG_RSA_SHA_512_PKCS1 3.0.1no no - - no no -yesyes noyes - no no
ALG_RSA_SHA_224_PKCS1_PSS 3.0.1no no - - no no -nono nono - no yes
ALG_RSA_SHA_256_PKCS1_PSS 3.0.1no no - - no no -yesno nono - no yes
ALG_RSA_SHA_384_PKCS1_PSS 3.0.1no no - - no no -nono nono - no no
ALG_RSA_SHA_512_PKCS1_PSS 3.0.1no no - - no no -nono nono - no no
ALG_DES_MAC4_ISO9797_1_M1_ALG3 3.0.4yes no - - no no -nono nono - no no
ALG_DES_MAC8_ISO9797_1_M1_ALG3 3.0.4yes no - - no no -nono nono - no no no no
ALG_AES_CMAC_1283.0.5------------------------------------------------------------------
javacard.security.MessageDigest introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_SHA ≤2.1yes yes yes yes yes yes yesyesyes yesyes yes yes yes
ALG_MD5 ≤2.1yes no yes yes yes yes yesnoyes noyes yes yes yes
ALG_RIPEMD160 ≤2.1no no no no no no nonono nono yes no no
ALG_SHA_256 2.2.2yes yes no no no yes noyesyes noyes no yes yes
ALG_SHA_384 2.2.2yes no no no no yes noyesyes noyes no no no
ALG_SHA_512 2.2.2yes no no no no yes noyesyes noyes no no no
ALG_SHA_224 3.0.1yes no - - no suspicious yes -yesyes noyes - no yes yes
javacard.security.RandomDataintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63
ALG_PSEUDO_RANDOM≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesALG_SHA3_2243.0.5------------------------------------------------------------------
ALG_SECURE_RANDOM≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
javacard.security.KeyBuilderintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63ALG_SHA3_2563.0.5------------------------------------------------------------------
TYPE_DES_TRANSIENT_RESET≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesALG_SHA3_3843.0.5----------------------------------------------------------------- -yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES_TRANSIENT_DESELECT≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesALG_SHA3_5123.0.5---------------------------------------------------------------- -yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES LENGTH_DES≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES LENGTH_DES3_2KEY≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesjavacard.security.RandomDataintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
TYPE_DES LENGTH_DES3_3KEYALG_PSEUDO_RANDOM ≤2.1yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_AES_TRANSIENT_RESET2.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyesALG_SECURE_RANDOM≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_AES_TRANSIENT_DESELECT2.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesALG_TRNG3.0.5----------------------------------------------------------------- -yesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_AES LENGTH_AES_1282.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesALG_ALG_PRESEEDED_DRBG3.0.5----------------------------------------------------------------- -yesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_AES LENGTH_AES_1922.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesALG_FAST3.0.5----------------------------------------------------------------- -yesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_AES LENGTH_AES_2562.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesALG_KEYGENERATION3.0.5----------------------------------------------------------------- -yesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_512javacard.security.KeyBuilderintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
TYPE_DES_TRANSIENT_RESET ≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_7362.2.0yesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesTYPE_DES_TRANSIENT_DESELECT≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -nonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_7682.2.0yessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyesTYPE_DES LENGTH_DES≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_8962.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesTYPE_DES LENGTH_DES3_2KEY≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_1024TYPE_DES LENGTH_DES3_3KEY ≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_1280TYPE_AES_TRANSIENT_RESET 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyesyesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_1536TYPE_AES_TRANSIENT_DESELECT 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyesyesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_1984TYPE_AES LENGTH_AES_128 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesyesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_2048≤2.1yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesTYPE_AES LENGTH_AES_1922.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_40963.0.1nononononononononononononononononononononononononononono-nononononoTYPE_AES LENGTH_AES_2562.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes -nonononononononononononononononononononoyesnonononononononoyesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_512TYPE_RSA_PUBLIC LENGTH_RSA_512 ≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_736TYPE_RSA_PUBLIC LENGTH_RSA_736 2.2.0yesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesyesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -nonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesnonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_768TYPE_RSA_PUBLIC LENGTH_RSA_768 2.2.0yessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_896TYPE_RSA_PUBLIC LENGTH_RSA_896 2.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesyesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_1024TYPE_RSA_PUBLIC LENGTH_RSA_1024 ≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_1280TYPE_RSA_PUBLIC LENGTH_RSA_1280 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_1536TYPE_RSA_PUBLIC LENGTH_RSA_1536 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_1984TYPE_RSA_PUBLIC LENGTH_RSA_1984 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyessuspicious yesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_2048TYPE_RSA_PUBLIC LENGTH_RSA_2048 ≤2.1yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyesyesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_4096TYPE_RSA_PUBLIC LENGTH_RSA_4096 3.0.1nonononononononononononononononononononononononononononononononononononononononononononononononononononononononono -nononononoyesnonononono -nononononononononononononononononononononononononononononononononononononononononononononononononoyesnononononononono
TYPE_RSA_PRIVATE_TRANSIENT_RESET3.0.1no-TYPE_RSA_PRIVATE LENGTH_RSA_512≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesnoyesyesyesyesyesyesnonono-nononono------nonosuspicious yes-yesyes-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE_TRANSIENT_DESELECT3.0.1no--yesnoyesyesyesyesyesyesnonono-nononono------nonosuspicious yes-yesyes-nono---nonononononono-no-nononononoTYPE_RSA_PRIVATE LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -nonoyesnononoyesnonoyesyesyesnonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_512≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_736TYPE_RSA_PRIVATE LENGTH_RSA_768 2.2.0yesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesyesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes -nonoyesnoyesnonononoyesnononononononononoyesnoyesyesyesyesnoyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_768TYPE_RSA_PRIVATE LENGTH_RSA_896 2.2.0yessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyesyesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_8962.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1024TYPE_RSA_PRIVATE LENGTH_RSA_1024 ≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1280TYPE_RSA_PRIVATE LENGTH_RSA_1280 2.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1536TYPE_RSA_PRIVATE LENGTH_RSA_1536 2.2.0yesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1984TYPE_RSA_PRIVATE LENGTH_RSA_1984 2.2.0yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_2048TYPE_RSA_PRIVATE LENGTH_RSA_2048 ≤2.1yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyesyesyes -yesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_4096TYPE_RSA_PRIVATE LENGTH_RSA_4096 3.0.1nononononononononononononononononononononononononononono-nonononono-nonononononononononononononononononononoyesnonononononononononononononononononononononononononononononononononononono-yesnonononono-nonononononononononononononononononononononononononononono
TYPE_RSA_CRT_PRIVATE_TRANSIENT_RESETTYPE_RSA_PRIVATE_TRANSIENT_RESET 3.0.1noyesno - -yesnoyesyesyesyesyesyesnononoyesnoyesyesyesyesyesyesnonono -nononononononono - - - - - -nonosuspicious yesnonosuspicious yes -yesyesyesyesyes -nononono - - -nononononononononononononono -nono -nononononononononono -nonoyesnononoyesnonoyesyesnonoyesnononoyesnonoyesyes
TYPE_RSA_CRT_PRIVATE_TRANSIENT_DESELECTTYPE_RSA_PRIVATE_TRANSIENT_DESELECT 3.0.1noyesno - -yesnoerror(0x6f00)error(0x6f00)yesyesyesyesnononoyesnoyesyesyesyesyesyesnonono -nononononononono - - - - - -nonosuspicious yesnonosuspicious yes -yesyesyesyesyes -nononono - - -nononononononononononononono -nono -nononononononononono -nonoyesnononoyesnonoyesyesnonoyesnononoyesnonoyesyes
TYPE_DSA_PRIVATE LENGTH_DSA_512TYPE_RSA_CRT_PRIVATE LENGTH_RSA_512 ≤2.1nononononononononononononoyesyesyesnonononononononononononoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -nonononononononononononononononononononononononononoyesnonoyesnononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_DSA_PRIVATE LENGTH_DSA_768≤2.1nononononononononononononoyesyesyesnonononononononononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes -nonononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PRIVATE LENGTH_DSA_1024≤2.1nononononononononononononoyesyesyesnononononononononononono-nonononononononononononononononononononononononononoyesnonoyesnononononoyesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesyesyesnoyesyesyesyesyesyesnoyesyes
TYPE_DSA_PRIVATE_TRANSIENT_RESET3.0.1no--nonononononononononono-nononono------nonono-nono-nono---nonononononono-no-nononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_7682.2.0yesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes -nonoyesnonononononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_DSA_PRIVATE_TRANSIENT_DESELECT3.0.1no--nonononononononononono-nonononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_8962.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes ------nonono-nono-nono---nonononononono-no-nonononono-nonoyesnonononononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_DSA_PUBLIC LENGTH_DSA_512TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1024 ≤2.1nononononononononononononoyesyesyesnonononononononononononoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -nonononononononononononononononononononononononononoyesnonoyesnononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DSA_PUBLIC LENGTH_DSA_768≤2.1nononononononononononononoyesyesyesnononononononononononono-nonononononononononononononononononononononononononoyesnonoyesnononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_12802.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DSA_PUBLIC LENGTH_DSA_1024≤2.1nononononononononononononoyesyesyesnonononononononononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_15362.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes -nonononononononononononononononononononononononononoyesnonoyesnononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_113TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1984 2.2.0nononononoyesyesyesnononononononononononononononononononono-nonononononoyesyesnonoyesyesyesnononononononononononononoyesnonononononononoyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1312.2.0nononononoyesyesyesnonononononononononononononononononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_2048≤2.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyes -nonononononoyesyesnonoyesyesyesnononononononononononononoyesnonononononononoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1632.2.0nononononoyesyesyesnononononononononononononononononononono-nonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1932.2.0nononononoyesyesyesnonononononononononononononononononononoTYPE_RSA_CRT_PRIVATE LENGTH_RSA_40963.0.1nonononononononononononononononononononononononononononono -nonononononoyesyesnonoyesyesyesnononononononononononononoyesnonononononononoyesnonononono-nonononononononononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE_TRANSIENT_RESETTYPE_RSA_CRT_PRIVATE_TRANSIENT_RESET 3.0.1noyesno - -nonoyesyesyesnonononononoyesnoyesyesyesyesyesyesnonono -nononononononono - - - - - -nononononosuspicious yes -nonoyesyesyes -nononono - - -nononononononononononononono -nono -nononononononononono -nonoyesnonononononononononoyesnononoyesnonoyesyes
TYPE_EC_F2M_PRIVATE_TRANSIENT_DESELECTTYPE_RSA_CRT_PRIVATE_TRANSIENT_DESELECT 3.0.1no-yesno -nonoyesyesyesnononononono -nonononoyesnoerror(0x6f00)error(0x6f00)yesyesyesyesnonono -nononono - - - - -nonono -nonononosuspicious yes -nonoyesyesyes -nono - -nonononononono -nononononononono -nononononono -nonoyesnonononononononononononono-nonoyesnononoyesnonoyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1122.2.0nononononoyesyesyesnononononoyesnonononononononononononononoTYPE_DSA_PRIVATE LENGTH_DSA_512≤2.1nonononononononononononononoyesyesyesnononononononononononono -nonononononononononononononononononononononononononoyesnonoyesnonononoyesnononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1282.2.0nononononoyesyesyesnononoyesyesyesnononononononononononononono-nononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnononoyesnoyesyesnonoyesnoyesTYPE_DSA_PRIVATE LENGTH_DSA_768≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1602.2.0nononononoyesyesyesnononoyesyesyesnonononoyesnonononononononoyesTYPE_DSA_PRIVATE LENGTH_DSA_1024≤2.1nonononononononononononononoyesyesyesnononononononononononono -nononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesnoyesyesyesyesyesyesyesnononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1922.2.0nonononoyesyesyesyesnononoyesyesyesnonononoyesnonononononononoyesTYPE_DSA_PRIVATE_TRANSIENT_RESET3.0.1nono -noyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesyesyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_2243.0.1no -nonononononononononono -nonoyesyesyesnonononoyesyes-nononosuspicious yesnononono - - - - - -nonosuspicious yesnonono -nonononono -suspicious yesyesnono - - -noyesnononosuspicious yessuspicious yesnonononononono -suspicious yesno -yesyesyesyesyesnonononono -yesnoyesnoyesyesyesyesyesyesyesnonoyesnononononononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_256TYPE_DSA_PRIVATE_TRANSIENT_DESELECT 3.0.1nonono - -noyesyesyesyesnononoyesyesyesnonononononononononono -nononosuspicious yesnononono - - - - - -nonosuspicious yesnonono -noyesnonono -suspicious yesyesnono - - -noyesnononosuspicious yessuspicious yesnonononononono -suspicious yesno -yesyesyesyesyesnonononono -yesnoyesnoyesyesyesyesyesyesyesnonoyesnononononononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_3843.0.1no--noyesyesyesyesnonononononoTYPE_DSA_PUBLIC LENGTH_DSA_512≤2.1nonononononononononononononoyesyesyesnononononononononononono -nononosuspicious yes------nonosuspicious yes-noyes-nono---nonononononono-no-nonononono-yesnoyesnononoyesnonoyesyesnononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_5213.0.4no--nonoyesyesyesnononononono-nononosuspicious yes------nonono-nono-nono---nonononononono-no-nononononoTYPE_DSA_PUBLIC LENGTH_DSA_768≤2.1nonononononononononononononoyesyesyesnononononononononononono -yesnoyesnononononononoyesnononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE_TRANSIENT_RESET3.0.1no--nonoyesyesyesnonononononoTYPE_DSA_PUBLIC LENGTH_DSA_1024≤2.1nonononononononononononononoyesyesyesnononononononononononono -nononono------nonono-nono-nono---nonononononono-no-nonononono-nonoyesnononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_FP_PRIVATE_TRANSIENT_DESELECT3.0.1no--nononoyesyesnononononono-nononono------nonono-nono-nono---nonononononono-no-nononononoTYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1132.2.0nonononononoyesyesyesnononononononononononononononononononono -nonoyesnonononononononoyesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_KOREAN_SEED_TRANSIENT_RESET2.2.2yesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnonoTYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1312.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_KOREAN_SEED_TRANSIENT_DESELECT2.2.2yesnonoyesyesyesyesyesyesyesnonoyesyesnonononononononononononononoTYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1632.2.0nonononononoyesyesyesnononononononononononononononononononono -nononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnonoyesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_KOREAN_SEED LENGTH_KOREAN_SEED_1282.2.2yesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnonoTYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1932.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_HMAC_TRANSIENT_RESET2.2.2nonononononononononononononononononononononononononononoTYPE_EC_F2M_PRIVATE_TRANSIENT_RESET3.0.1nono -nonononononononononononononononononononononononononoyesnonononononoyesyes-nonoyesyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_HMAC_TRANSIENT_DESELECT2.2.2nonononononononononononononononononononononononononononoTYPE_EC_F2M_PRIVATE_TRANSIENT_DESELECT3.0.1nono -nonononononononononononononononononononononononononoyesnonononononoyesyes-nonoyesyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_HMAC LENGTH_HMAC_SHA_1_BLOCK_642.2.2nonononononononononononononononononononononononononononoTYPE_EC_FP_PRIVATE LENGTH_EC_FP_1122.2.0yesnononononoyesyesyesnononononoyesnononononononononononononono -nonononononononononononononononononononononononononoyesnonononononoyesyesyesnonononononononononononononononononononononononononoyesnonoyesnonononoyes
TYPE_HMAC LENGTH_HMAC_SHA_256_BLOCK_642.2.2nononononononononononononononononononononononononononono-nonononononononononononononononononononononononononoyesnonononononoyesyesTYPE_EC_FP_PRIVATE LENGTH_EC_FP_1282.2.0yesnononononoyesyesyesnononoyesyesyesnononononononononononononono-yesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnononoyesnoyesyesnonoyesnoyes
TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_642.2.2nonononononononononononononononononononononononononononoTYPE_EC_FP_PRIVATE LENGTH_EC_FP_1602.2.0yesnononononoyesyesyesnononoyesyesyesnonononoyesnonononononononoyes -nonononononononononononononononononononononononononoyesnonononononoyesyesyesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesnoyesyesyesyesyesyesyes
TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_642.2.2nononononononononononononononononononononononononononono-nonononononononononononononononononononononononononoyesnonononononoyesyes
javacard.security.KeyPair ALG_RSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1922.2.0yesnonononoyesyesyesyesnononoyesyesyesnonononoyesnonononononononoyes-yesyesnonoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesyesyesyes
ALG_RSA LENGTH_RSA_5122.1.1yes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesTYPE_EC_FP_PRIVATE LENGTH_EC_FP_2243.0.1yesno -yesyesyesyesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes -yesnoyesyesnoyesyesnonoyesyesyesnonononoyesyes-nononosuspicious yes------nonosuspicious yes-yesnono-suspicious yesyes---noyesnononosuspicious yessuspicious yes-suspicious yes-yesyesyesyesyes-yesnoyesnoyesyesyesyesyesyesyes
ALG_RSA LENGTH_RSA_7362.2.0yesnosuspicious yesnonononononononoyesyesyesyesyesnoyesyesyesnonoTYPE_EC_FP_PRIVATE LENGTH_EC_FP_2563.0.1yesno -nonoyesnoyesnononoyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes-noyesyesyesyesnononoyesyesyes-nononosuspicious yes------nonosuspicious yes-yesyesno-suspicious yesyes---noyesnononosuspicious yessuspicious yes-suspicious yes-yesyesyesyesyes-yesnoyesnoyesyesyesyesyesyesyes
ALG_RSA LENGTH_RSA_7682.1.1yes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesTYPE_EC_FP_PRIVATE LENGTH_EC_FP_3843.0.1yesno -yesnoyesyesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes -yesnoyesyesnoyesyesnoyesyesyesyesnononononono-nononosuspicious yes------nonosuspicious yes-yesyesno-nono---nonononononono-no-nonononono-yesnoyesnononoyesnonoyesyes
ALG_RSA LENGTH_RSA_8962.2.0yesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnoTYPE_EC_FP_PRIVATE LENGTH_EC_FP_5213.0.4nono -nonoyessuspicious yesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_10242.1.1yes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes -yesyesyesyesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyesnonoyesyesyesnononononono -yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_12802.2.0yesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yesnononosuspicious yes -nonoyessuspicious yesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes -yesnoyesnonoyesyes----nonono-yesnono-nono---nonononononono-no-nonononono-yesnoyesnononononononoyes
ALG_RSA LENGTH_RSA_15362.2.0yesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yesTYPE_EC_FP_PRIVATE_TRANSIENT_RESET3.0.1nono -nonoyessuspicious yesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes -yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_19842.2.0yesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnononoyesyesyesnononononono -nonoyessuspicious yesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnononono -yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_20482.1.1yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes -yesnoyesyesyesnoyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes -yesnoyesnonoyesyes---nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_RSA LENGTH_RSA_4096TYPE_EC_FP_PRIVATE_TRANSIENT_DESELECT 3.0.1nononononononononononononononononononononononono -nonononononononononono -nonononononononononononononononononononononononononononono
javacard.security.KeyPair ALG_RSA_CRT on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63
ALG_RSA_CRT LENGTH_RSA_5122.1.1yes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnononoyesyesnononononono -yesyesyesyesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesnononono -yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_7362.2.0yesnoerrornonononononononoyesyesyesyesyesyesyesyesyesnono -nonoyesnoyesnononoyesnoyesnonononoyesnononononononononoyesnoyesyesyesnonoyesnoyesyesyesyesnoyesyes
ALG_RSA_CRT LENGTH_RSA_7682.1.1yes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesnoyesyesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes -yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_8962.2.0yesnoerroryeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesno -nonoyessuspicious yesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesnoyesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_10242.1.1yes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes -yesyesyesyesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonono -yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_12802.2.0yesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesyesnono -nonoyessuspicious yesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnono -yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_15362.2.0yesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yes -nonoyessuspicious yesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyeserror(0x6300)yesyesyesyesyesyes -yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_19842.2.0yesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnononononononono -nonoyessuspicious yesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesno -yesyesyesyesyesyesyesnonononono-nonoyesnononononononono
ALG_RSA_CRT LENGTH_RSA_20482.1.1yesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesTYPE_KOREAN_SEED_TRANSIENT_RESET2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono -yesyesyesyesyeserror(ILLEGAL_VALUE)yesnonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
ALG_RSA_CRT LENGTH_RSA_40963.0.1nononononononononononononononononononononono-nonononononononononono-nononononononononononononoTYPE_KOREAN_SEED_TRANSIENT_DESELECT2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
TYPE_KOREAN_SEED LENGTH_KOREAN_SEED_1282.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
TYPE_HMAC_TRANSIENT_RESET2.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC_TRANSIENT_DESELECT2.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_1_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_256_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
javacard.security.KeyPair ALG_RSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_RSA LENGTH_RSA_5122.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesnoyesyesyesnono-nonoyesnoyesnoyesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_7682.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_8962.2.0yesyesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_10242.1.1yesyes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_12802.2.0yesyesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_15362.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_19842.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_20482.1.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_40963.0.1nonononononononononononononononononononononono-nononononononononononono-nonononononononononononononononononononononononononononono
javacard.security.KeyPair ALG_RSA_CRT on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_RSA_CRT LENGTH_RSA_5122.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_7362.2.0yesyesnoerrornonononononononoyesyesyesyesyesyesyesyesyesnono-nonoyesnoyesnoyesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesyesnonoyesnoyesyesyesyesnoyesyes
ALG_RSA_CRT LENGTH_RSA_7682.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_8962.2.0yesyesnoerroryeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesnoyesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_10242.1.1yesyes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_12802.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_15362.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyeserror(0x6300)yesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_19842.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_20482.1.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyeserror(ILLEGAL_VALUE)yes
ALG_RSA_CRT LENGTH_RSA_40963.0.1nonononononononononononononononononononononono-nononononononononononono-nonononononononononononono no no no no
javacard.security.KeyPair ALG_DSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63javacard.security.KeyPair ALG_DSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DSA LENGTH_DSA_5122.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
ALG_DSA LENGTH_DSA_7682.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
ALG_DSA LENGTH_DSA_10242.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
javacard.security.KeyPair ALG_EC_F2M on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_EC_F2M LENGTH_EC_F2M_1132.2.1nonononononoyesyesyesnononononononononononononononononononononoerror(ILLEGAL_VALUE)nonononononoyesyesnonoyesyesyesnononononononononononononononononononononono
ALG_EC_F2M LENGTH_EC_F2M_1312.2.1nonononononoyesyesyesnononononononononononononononononononononoerror(ILLEGAL_VALUE)nonononononoyesyesnonoyesyesyesnononononononononononononononononononononono
ALG_DSA LENGTH_DSA_5122.1.1nononononononononononononoyesyesyesnononononononononononononononononononononononononononononononononononononononoyesnonoyesnononononoALG_EC_F2M LENGTH_EC_F2M_1632.2.1nononononononononononononononononononononononononononononononononononononoyesyesnonononononononononononononononononononononononononono
ALG_EC_F2M LENGTH_EC_F2M_1932.2.1nononononononononononononononononononononononononononononononononononononoyesyesnonononononononononononononononononononononononononono
ALG_DSA LENGTH_DSA_7682.1.1nononononononononononononoyesyesyesnononononononononononononononononononononononononononononononononononononononoyesnonoyesnononononojavacard.security.KeyPair ALG_EC_FP on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DSA LENGTH_DSA_10242.1.1nononononononononononononoyesyesyesnononononononononononononononononononononononononononononononononononononononoyesnonoyesnononononoALG_EC_FP LENGTH_EC_FP_1122.2.1yesnononononoyesyesyesnononononoerror(0x6a81)nononononononononononononononoerror(ILLEGAL_VALUE)nonononononononononononononononononononononononononoerror(ILLEGAL_VALUE)nonoerror(ILLEGAL_VALUE)nonononoerror(ILLEGAL_VALUE)
javacard.security.KeyPair ALG_EC_F2M on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63ALG_EC_FP LENGTH_EC_FP_1282.2.1yesnononononoyesyesyesnononoyesyesyesnononononononononononononononoyesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)nonoyesnoerror(ILLEGAL_VALUE)
ALG_EC_F2M LENGTH_EC_F2M_113ALG_EC_FP LENGTH_EC_FP_160 2.2.1nononononoyesyesyesnononononononononononononononononononononononononononoyesyesnonoyesyesyesnonononononononononononononononononononononoyesnononononoyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnoyesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)
ALG_EC_F2M LENGTH_EC_F2M_131ALG_EC_FP LENGTH_EC_FP_192 2.2.1nononononoyesyesyesnononononononononononononononononononononononononononoyesyesnonoyesyesyesnonononononononononononononononononononononoyesnonononoyesyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnoyeserror(ILLEGAL_VALUE)nonoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)
ALG_EC_F2M LENGTH_EC_F2M_1632.2.1nononononononononononononononononononononononononononononononononononoyesyesnononononononononononononononononononononononononononoALG_EC_FP LENGTH_EC_FP_2243.0.1yesno--nonoyesyesyesnonononoyesyes-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yesnono-error(ILLEGAL_VALUE)yes---noyesnononosuspicious yessuspicious yes-error(ILLEGAL_VALUE)-yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)-nonoyesno-error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
ALG_EC_F2M LENGTH_EC_F2M_1932.2.1nononononononononononononononononononononononononononononononononononoyesyesnononononononononononononononononononononononononononoALG_EC_FP LENGTH_EC_FP_2563.0.1yesno--noyesyesyesyesnononoyesyesyes-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yeserror(ILLEGAL_VALUE)no-error(ILLEGAL_VALUE)yes---noyesnononosuspicious yessuspicious yes-error(ILLEGAL_VALUE)-yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)-nonoyesno-error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
javacard.security.KeyPair ALG_EC_FP on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63ALG_EC_FP LENGTH_EC_FP_3843.0.1yesno--noyesyesyesyesnononononono-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yeserror(ILLEGAL_VALUE)no-nono---nonononononono-no-nonononono-nonoyesno-noyesnonoyeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_1122.2.1nononononoyesyesyesnononononoerror(0x6a81)nononononononononononononononononononononononononononononononononononononononononoerror(ILLEGAL_VALUE)nonoerror(ILLEGAL_VALUE)nonononoerror(ILLEGAL_VALUE)ALG_EC_FP LENGTH_EC_FP_5213.0.4nono--nonoyesyesyesnononononono-nononoerror(ILLEGAL_VALUE)------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesno-nononononoerror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_128javacard.security.KeyAgreementintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_EC_SVDP_DH/ALG_EC_SVDP_DHC_KDF 2.2.1nononononoyesyesyesnononoyesyesyesnonononononononononononononononononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)nonoyesnoerror(ILLEGAL_VALUE)------------------------------------------------------------------
ALG_EC_FP LENGTH_EC_FP_160ALG_EC_SVDP_DHC/ALG_EC_SVDP_DHC_KDF 2.2.1nononononoyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnonononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)------------------------------------------------------------------
ALG_EC_FP LENGTH_EC_FP_1922.2.1nonononoyesyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnonoerror(ILLEGAL_VALUE)noyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)ALG_EC_SVDP_DH_PLAIN3.0.1-no----------------nono------suspicious yessuspicious yes-------------------no-----yes-no--noyesnoyesnono-yes
ALG_EC_FP LENGTH_EC_FP_224ALG_EC_SVDP_DHC_PLAIN 3.0.1no-no----------------nono------suspicious yessuspicious yes-------------------no-----no-no--nononoyesnono-yes
ALG_EC_PACE_GM3.0.5------------------------------------------------ - -nonoyesyesyesnonononoyesyes -nononoerror(ILLEGAL_VALUE) - - - - - -nonosuspicious yes -nono -error(ILLEGAL_VALUE)yes - - -noyesnononosuspicious yessuspicious yes -error(ILLEGAL_VALUE) -yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE) -nonoyesno -error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_2563.0.1noALG_EC_SVDP_DH_PLAIN_XY3.0.5------------ - -noyesyesyesyesnononoyesyesyes -nononoerror(ILLEGAL_VALUE) - - - - - -nonosuspicious yes -noerror(ILLEGAL_VALUE) -error(ILLEGAL_VALUE)yes - - -noyesnononosuspicious yessuspicious yes -error(ILLEGAL_VALUE) -yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE) -nonoyesno -error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_3843.0.1no - -noyesyesyesyesnononononono -nononoerror(ILLEGAL_VALUE) - - - - - -nonosuspicious yes -noerror(ILLEGAL_VALUE) -nono - - -nonononononono -no -nonononono -nonoyesno -noyesnonoyeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_5213.0.4no - -nonoyesyesyesnononononono -nononoerror(ILLEGAL_VALUE) - - - - - -nonono -nono -nono - - -nonononononono -no -nonononono -nonoyesno -nononononoerror(ILLEGAL_VALUE)
javacard.security.KeyAgreementintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63
ALG_EC_SVDP_DH2.2.1yesnonoyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyes??nonononoyessuspicious yesyesnoyesyesnoyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyes
ALG_EC_SVDP_DHC2.2.1nononoyesyesyesyesyesyesyesyesyesyesyesnoyesyesnono??nonononoyessuspicious yesyesnoyesyesnoyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesyesyesnononoyesyesyesyesyes
ALG_EC_SVDP_DH_KDF3.0.1noALG_DH_PLAIN3.0.5 - -yesyesyesyesyesyesyesyesyesyesyes -yessuspicious yesnosuspicious yes - - - - - -suspicious yessuspicious yessuspicious yes -yesyes -suspicious yesyes - - -yesyessuspicious yessuspicious yesyessuspicious yessuspicious yes -suspicious yes -yesyesyesyesyes -yessuspicious yesyesnoyesyesyesyesyesyesyes
ALG_EC_SVDP_DH_PLAIN3.0.1no - -yesyesyesyesyesyesyesyesyesyesyes-yessuspicious yesnono - - - - - -suspicious yessuspicious yessuspicious yes -yesyes -suspicious yesyes - - -yesyessuspicious yessuspicious yesyessuspicious yessuspicious yes -no -yesyesyesyesyes -nosuspicious yesyesnoyesnoyesnonoyesyes
ALG_EC_SVDP_DHC_KDF3.0.1no - -yesyesyesyesyesyesyesyesyesyesyes -yessuspicious yesnono - - - - - -suspicious yessuspicious yessuspicious yes -yesyes -suspicious yesyes - - -yesyessuspicious yessuspicious yesyessuspicious yessuspicious yes -suspicious yes -yesyesyesyesno -yessuspicious yesyesnononoyesyesyesyesyes
ALG_EC_SVDP_DHC_PLAIN3.0.1no - -yesyesyesyesyesyesyesyesyesyesyes-yessuspicious yesnono - - - - - -suspicious yessuspicious yessuspicious yes -yesyes -suspicious yesyes - - -yesyessuspicious yessuspicious yesyessuspicious yessuspicious yes -no -yesyesyesyesno -nosuspicious yesyesnononoyesnonoyesyes
javacard.security.Checksum introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_ISO3309_CRC16 2.2.1yes no no no suspicious yes yes noyesno nono no yes yes
ALG_ISO3309_CRC32 2.2.1yes no no no suspicious yes yes noyesno nono no yes no
Variable RSA 1024 - support for variable public exponent. If supported, user-defined fast modular exponentiation can be executed on the smart card via cryptographic coprocessor. This is very specific feature and you will probably not need it introduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
Allocate RSA 1024 objects yes yes yes - yes yes -yesyes yesyes - yes yes
Set random modulus yes yes no - yes yes -yesyes yesyes - yes yes
Set random public exponent yes yes no - no no -yesno nono - yes yes
Initialize cipher with public key with random exponent yes yes no - no no -yesno nono - yes yes
Use random public exponent no yes no - no no -yesno nono - yes yes!1_bg&@!-@PoZwXp#}AD?FJ; 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 GDE|jxu@eOV literal 0 HcmV?d00001 diff --git a/Profiles/AlgTest_html_table_20170610.html b/Profiles/AlgTest_html_table_20170610.html new file mode 100644 index 00000000..1a7d94e1 --- /dev/null +++ b/Profiles/AlgTest_html_table_20170610.html @@ -0,0 +1,17426 @@ + + + + + + + + + + + List of supported JavaCard algorithms + + + + + + + + + + + + + + + + + + + +

List of supported JavaCard algorithms

+ + logo + +

The table provides a list of algorithms defined in JavaCard API and supported by the particular smart card. The supported lengths of cryptographic keys, information about available RAM and EEPROM memory and garbage collection capabilities are also included.

+ +
+ +

+ The set of cryptographic algorithms supported by the particular Java smart card is sometimes hard to obtain from vendor's specifications. Moreover, supported algorithms may change in more recent revisions of the firmware of given type of smart card. Typically, basic primitives like block cipher or asymmetric cryptography algorithm remain same as they are often implemented in hardware, but cryptographic constructions like particular MAC algorithm or supported key sizes may be added later. +

+ +

+ JCAlgTest tool allows you to enumerate the supported cryptographic algorithms specified in JavaCard 3.0.5 and earlier. This page summarizes results obtained for cards available in our CRoCS laboratory and also results contributed by the community (many thanks, folks!). +

+ +

+ The basic idea is simple - if the particular algorithm/key size is supported, then algorithm instance creation should succeed. Otherwise, CryptoException.NO_SUCH_ALGORITHM is thrown. Such a behavior can be employed for a quick test of supported algorithms. AlgTest applet tries to create an instance of an algorithm for all possible constants defined in JavaCard specification and eventually catch the exception. JCAlgTest tool also tests additional tweaks like the possibility to use raw RSA for fast modular multiplication (which is usable to implement classical Diffie-Hellman key exchange) or manufacturer pre-set default ECC curve for ECC key pair. +

+ +
+ + + + + +
+

Tested cards abbreviations

+c0 ACS ACOSJ (Combi) , ATR=3b 69 00 02 41 43 4f 53 4a 76 31 30 31 (provided by Alexandre Bouvier),
+c1 Athena IDprotect , ATR=3B D5 18 FF 80 91 FE 1F C3 80 73 C8 21 13 08 (provided by Cosmo),
+c2 Axalto Cyberflex32 , ATR=3B 75 94 00 00 62 02 02 02 01 (provided by PetrS),
+c3 Axalto Cyberflex PalmeraV5 , ATR=3B E6 00 00 81 21 45 32 4B 01 01 01 01 7A (provided by PetrS),
+c4 Feitian C21C Samsung S3FS91J , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 05 24 c0 72 7e 00 86 (provided by Thotheolh Tay),
+c5 Feitian eJava Token , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 64 2f 70 c1 72 fe e0 fd (provided by Razvan Dragomirescu),
+c6 Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 10 04 f2 72 fe 00 01 (provided by Kenneth Benson),
+c7 Feitian JavaCOS A22CR ICFabDate 2016 084 , ATR=3b 8c 80 01 90 67 46 4a 01 00 25 04 00 00 00 00 d6 (provided by Josh Harvey),
+c8 Feitian JavaCOS A22CR ICFabDate 2016 257 , ATR=3b 9c 95 80 81 1f 03 90 67 46 4a 01 00 35 04 f2 72 fe 00 a1 (provided by PetrS),
+c9 Feitian JavaCOS A22 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
+c10 Feitian JavaCOS A22 ICFabDate 2015 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 00 68 08 04 00 00 00 00 0e (provided by Ivo Kubjas and PetrS),
+c11 Feitian JavaCOS A40 ICFabDate 2016 201 , ATR=3b fc 18 00 00 81 31 80 45 90 67 46 4a 01 00 20 05 00 00 00 00 4e (provided by PetrS and Keneth Benson),
+c12 Feitian Java Card D11CR , ATR=3b 6a 00 00 09 44 31 31 43 52 02 00 25 c3 (provided by PetrS),
+c13 Feitian K9 NXPJ3E081 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Thotheolh Tay),
+c14 G+D Smartcafe 6.0 80K ICFabDate 2015 024 , ATR=3b fe 18 00 00 80 31 fe 45 53 43 45 36 30 2d 43 44 30 38 31 2d 6e 46 a9 (provided by PetrS),
+c15 G+D SmartCafe Expert 144k Dual , ATR=3b fd 18 00 00 80 31 fe 45 73 66 74 65 20 63 64 31 34 34 2d 6e 66 d8 (provided by Diego NdK),
+c16 G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126 , ATR=3b f7 18 00 00 80 31 fe 45 73 66 74 65 2d 6e 66 c4 (provided by Cosmo and PetrS),
+c17 G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079 , ATR=3b f8 18 00 00 80 31 fe 45 00 73 c8 40 13 00 90 00 92 (provided by PetrS), PerformanceGraphs
+c18 Gemalto IDCore 10 , ATR=3b 7d 96 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by Martin Paljak),
+c19 Gemalto IDCore 3010 CC , ATR=3b 7d 96 00 00 80 31 80 65 b0 85 02 00 cf 83 01 90 00 (provided by Martin Paljak),
+c20 Gemalto TOP IM GXP4 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 d0 a9 83 00 90 00 (provided by PetrS),
+c21 Gemalto TwinGCX4 72k PK , ATR=3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43 (provided by PetrS),
+c22 Gemplus GXPE64PK , ATR=3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 21 00 01 08 (provided by PetrS),
+c23 Gemplus GXPLiteGeneric , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
+c24 Gemplus GXPR3r32 , ATR=3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 (provided by PetrS),
+c25 Gemplus GXPR3 , ATR=3B 7B 94 00 00 80 65 B0 83 01 01 74 83 00 90 00 (provided by PetrS),
+c26 Gemplus GXP R4 72K ICFabDate 2007 291 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 c0 a9 83 00 90 00 (provided by PetrS), PerformanceGraphs
+c27 Gemplus unknown jc2.1.2 ICFabDate 2006 005 , ATR=3b 7d 94 00 00 80 31 80 65 b0 83 11 11 ac 83 00 90 00 (provided by PetrS),
+c28 Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001 , ATR=3b fe 18 00 00 80 31 fe 45 80 31 80 66 40 90 a5 10 2e 10 83 01 90 00 f2 (provided by PetrS), PerformanceGraphs
+c29 Infineon JTOPV2 16K , ATR=3B 6D 00 00 80 31 80 65 40 90 86 01 51 83 07 90 00 (provided by PetrS),
+c30 Infineon SLE78 Universal JCard , ATR=3b fd 96 00 00 81 31 fe 45 53 4c 4a 35 32 47 44 4c 31 32 38 43 52 57 (provided by Till Mass),
+c31 JavaCardOS Infineon JC30M48CR , ATR=3b 80 80 01 01 (provided by JavaCardOS and Thotheolh Tay),
+c32 JavaCardOS JC10M24R , ATR=3b 80 80 01 01 (provided by JavaCardOS),
+c33 Nokia 6131 , ATR=3B 88 80 01 00 73 C8 40 13 00 90 00 71 (provided by Hakan Karahan),
+c34 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
+c35 NXP J2E145G ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS and Lukas Malina),
+c36 NXP JCOP10 (DES only version) , ATR=3b e9 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 32 a3 (provided by Henrik),
+c37 NXP JCOP31 , ATR=3B EB 00 00 81 31 20 45 4A 43 4F 50 33 31 33 36 47 44 54 78 (provided by PetrS),
+c38 NXP JCOP41 v221 , ATR=3b fa 18 00 00 81 31 fe 45 4a 43 4f 50 34 31 56 32 32 31 9d (provided by PetrS), PerformanceGraphs
+c39 NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163 , ATR=3b fa 13 00 00 81 31 fe 45 4a 43 4f 50 31 30 56 32 33 31 93 (provided by PetrS),
+c40 NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by PetrS), PerformanceGraphs
+c41 NXP JCOP 21 V2.2 36K ICFabDate 2008 015 , ATR=3b f9 18 00 00 81 31 fe 45 4a 43 4f 50 32 31 56 32 32 a9 (provided by PetrS), PerformanceGraphs
+c42 NXP JCOP 31 V2.2 36K ICFabDate 2006 306 , ATR=3b eb 00 00 81 31 20 45 4a 43 4f 50 33 31 33 36 47 44 54 78 (provided by PetrS), PerformanceGraphs
+c43 NXP JCOP 31 V2.3.2 ICFabDate 2011 016 , ATR=3b 8a 80 01 4a 43 4f 50 33 31 56 32 33 32 7a (provided by Martin Omacka),
+c44 NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
+c45 NXP JCOP CJ2A081 JC222 ICFabDate 2012 240 , ATR=3b f8 13 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 b7 (provided by PetrS), PerformanceGraphs
+c46 NXP JCOP CJ3A080v241 , ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 31 B7 (provided by Lazuardi Nasution), PerformanceGraphs
+c47 NXP JCOP CJ3A081 JC222 , ATR=3b fa 18 00 00 81 31 fe 45 4a 33 41 30 38 31 56 32 34 31 89 (provided by PetrS), PerformanceGraphs
+c48 NXP JCOP J2A080 , ATR=3b f6 18 00 ff 81 31 fe 45 4a 32 41 30 38 30 1b (provided by Pierre-d), PerformanceGraphs
+c49 NXP JCOP J2A080 80K ICFabDate 2011 070 , ATR=3b f8 18 00 00 81 31 fe 45 4a 43 4f 50 76 32 34 31 bc (provided by PetrS),
+c50 NXP JCOP J2D081 80K ICFabDate 2014 126 , ATR=3b f9 18 00 00 81 31 fe 45 4a 32 44 30 38 31 5f 50 56 b6 (provided by PetrS and Paul Crocker), PerformanceGraphs
+c51 NXP JCOP J3A040 ICFabDate 2010 071 , ATR=3b 88 80 01 4a 43 4f 50 76 32 34 31 5e (provided by Lukas Malina),
+c52 NXP JCOP J3D081 v242r2 ICFabDate 2012 334 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 32 a3 (provided by Martin Paljak and Arnis UT),
+c53 NXP JCOP NXP250A v242r3 , ATR=3b f9 13 00 00 81 31 fe 45 4a 43 4f 50 32 34 32 52 33 a2 (provided by Amir Digar Nemikhandad),
+c54 Oberthur CosmoDual72K , ATR=3B 7B 18 00 00 00 31 C0 64 77 E3 03 00 82 90 00 (provided by PetrS),
+c55 Oberthur Cosmo V7 64K Dual 128K , ATR=3B DB 18 00 80 B1 FE 45 1F 83 00 31 C0 64 C7 FC 10 00 01 90 00 FA (provided by Cosmo),
+c56 Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031 , ATR=3b 7b 18 00 00 00 31 c0 64 77 e9 10 00 01 90 00 (provided by PetrS), PerformanceGraphs
+c57 Softlock SLCOS InfineonSLE78 , ATR=3b 8a 80 01 53 4c 43 4f 53 20 54 3d 43 4c 0d (provided by Ahmed Mamdouh),
+c58 Unknown , ATR=3b 68 00 00 00 73 c8 40 12 00 90 00 (provided by Amir Digar Nemikhandad),
+c59 Yubikey Neo (Warning not open JavaCard) , ATR=3b fa 13 00 00 81 31 fe 15 59 75 62 69 6b 65 79 4e 45 4f a6 (provided by Pierre-d and Cosmo),
+c60 [undisclosed1] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c61 [undisclosed2] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c62 [undisclosed3] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c63 [undisclosed4] , ATR=3b xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (provided by Cosmo),
+c64 [undisclosed5] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),
+c65 [undisclosed6] , ATR=3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (provided by Metro),
+
+Note: Some cards in the table come without full identification and ATR ('undisclosed') as submitters prefered not to disclose it at the momment. I'm publishing it anyway as the information that some card supporting particular algorithm exists is still interesting. Full identification might be added in future.

+ +Note: If you have card of unknown type, try to obtain ATR and take a look at smartcard list available here: http://smartcard-atr.appspot.com/

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SymbolMeaning
yesThis particular algorithm was tested and IS supported by given card.
noThis particular algorithm was tested and is NOT supported by given card.
suspicious yesThis particular algorithm was tested and is REPORTED as supported by given card. However, given algorithm was introduced in later version of JavaCard specification than version declared by the card as supported one. Mostly, algorithm is really supported. But it might be possible, that given algorithm is NOT actually supported by card as some cards may create object for requested algorithm and fail only later when object is actually used. Future version of the JCAlgTest will make more thorough tests regarding this behaviour.
error(ERROR_CODE)Card returned specific error other then raising CryptoException.NO_SUCH_ALGORITHM. Most probably, algorithm is NOT supported by given card.
?Card returned unspecific error. Most probably, algorithm is NOT supported by given card.
-This particular algorithm was NOT tested. Usually, this equals to unsupported algorithm. Typical example is the addition of new constants introduced by the newer version of JavaCard standard, which are not supported by cards tested before apperance of of new version of specification. The exceptions to this rule are classes that have to be tested manually (at the moment, following information: JavaCard support version, javacardx.apdu.ExtendedLength Extended APDU) where not tested doesn't automatically means not supported. Automated upload and testing of these features will solve this in future.
+

+

Click on each checkbox to show/hide corresponding column (card)

+
+
+

c0 - ACS ACOSJ (Combi)

+

c1 - Athena IDprotect

+

c2 - Axalto Cyberflex32

+

c3 - Axalto Cyberflex PalmeraV5

+

c4 - Feitian C21C Samsung S3FS91J

+

c5 - Feitian eJava Token

+

c6 - Feitian JavaCOS A22CR-ECC-SHA-2 ICFabDate 2015

+

c7 - Feitian JavaCOS A22CR ICFabDate 2016 084

+

c8 - Feitian JavaCOS A22CR ICFabDate 2016 257

+

c9 - Feitian JavaCOS A22

+

c10 - Feitian JavaCOS A22 ICFabDate 2015

+

c11 - Feitian JavaCOS A40 ICFabDate 2016 201

+

c12 - Feitian Java Card D11CR

+

c13 - Feitian K9 NXPJ3E081

+

c14 - G+D Smartcafe 6.0 80K ICFabDate 2015 024

+

c15 - G+D SmartCafe Expert 144k Dual

+

c16 - G+D Smartcafe Expert 3.2 72K ICFabDate 2003 126

+

c17 - G+D Smart Cafe Expert 4.x V2 ICFabDate 2007 079

+

c18 - Gemalto IDCore 10

+

c19 - Gemalto IDCore 3010 CC

+

c20 - Gemalto TOP IM GXP4

+

c21 - Gemalto TwinGCX4 72k PK

+

c22 - Gemplus GXPE64PK

+
+
+

c23 - Gemplus GXPLiteGeneric

+

c24 - Gemplus GXPR3r32

+

c25 - Gemplus GXPR3

+

c26 - Gemplus GXP R4 72K ICFabDate 2007 291

+

c27 - Gemplus unknown jc2.1.2 ICFabDate 2006 005

+

c28 - Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4 ICFabDate 2012 001

+

c29 - Infineon JTOPV2 16K

+

c30 - Infineon SLE78 Universal JCard

+

c31 - JavaCardOS Infineon JC30M48CR

+

c32 - JavaCardOS JC10M24R

+

c33 - Nokia 6131

+

c34 - NXP JCOP J2A080 80K ICFabDate 2011 070

+

c35 - NXP J2E145G ICFabDate 2013 025

+

c36 - NXP JCOP10 (DES only version)

+

c37 - NXP JCOP31

+

c38 - NXP JCOP41 v221

+

c39 - NXP JCOP 10.18 v2.3.1 ICFabDate 2008 163

+

c40 - NXP JCOP 21 v2.4.2R3 ICFabDate 2013 025

+

c41 - NXP JCOP 21 V2.2 36K ICFabDate 2008 015

+

c42 - NXP JCOP 31 V2.2 36K ICFabDate 2006 306

+

c43 - NXP JCOP 31 V2.3.2 ICFabDate 2011 016

+

c44 - NXP JCOP 31 V2.4.1 72K ICFabDate 2012 240

+

c45 - NXP JCOP CJ2A081 JC222 ICFabDate 2012 240

+
+
+

c46 - NXP JCOP CJ3A080v241

+

c47 - NXP JCOP CJ3A081 JC222

+

c48 - NXP JCOP J2A080

+

c49 - NXP JCOP J2A080 80K ICFabDate 2011 070

+

c50 - NXP JCOP J2D081 80K ICFabDate 2014 126

+

c51 - NXP JCOP J3A040 ICFabDate 2010 071

+

c52 - NXP JCOP J3D081 v242r2 ICFabDate 2012 334

+

c53 - NXP JCOP NXP250A v242r3

+

c54 - Oberthur CosmoDual72K

+

c55 - Oberthur Cosmo V7 64K Dual 128K

+

c56 - Oberthur ID-ONE Cosmo 64 RSA v5.4 ICFabDate 2007 031

+

c57 - Softlock SLCOS InfineonSLE78

+

c58 - Unknown

+

c59 - Yubikey Neo (Warning not open JavaCard)

+

c60 - [undisclosed1]

+

c61 - [undisclosed2]

+

c62 - [undisclosed3]

+

c63 - [undisclosed4]

+

c64 - [undisclosed5]

+

c65 - [undisclosed6]

+
+
+
+ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Basic infointroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
AlgTest applet version1.7.11.20.10.11.6.01.6.01.6.01.6.01.7.11.6.01.6.01.7.01.6.01.7.01.7.00.11.6.01.6.01.21.21.11.10.11.11.11.1errorerror1.7.01.11.7.11.6.01.6.00.11.6.01.7.11.11.21.11.7.01.7.01.6.01.6.01.6.01.7.01.7.01.21.21.11.7.01.7.01.7.11.6.01.31.11.21.7.01.6.0error1.11.21.21.21.21.6.0error
JavaCard support version-2.2.22.1.22.1.2-----------2.2.1-2.2.12.2.12.2.22.2.12.2.12.1.22.1.22.1.22.1.22.2.12.1.22.2.22.1.2---2.2.02.2.2--2.2.12.2.1-3.0.?2.2.12.2.1-2.2.22.2.22.2.12.2.2-----3.0.22.2.0-2.2.1---?????????-2.2.22.2.1
javacard.framework.JCSystemintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
JCSystem.getVersion()[Major.Minor]≤2.13.02.2--3.02.23.03.03.03.03.03.02.23.03.02.22.22.22.22.2--------3.0-3.03.03.0-2.23.02. 2-2.22.23.02.22.22.22.22.22.22.22.22.23.02.23.03.0-2.22.23.42.23.02.23.02.22.23.03.0
JCSystem.isObjectDeletionSupported2.2.0yesyes--yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes--------yes-yesyesyes-noyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyes
JCSystem.MEMORY_TYPE_PERSISTENT2.2.120340B>32767B-->32767B>32767B>32767B>32767B>32767B>32767B>32767B>32767B16406B>32767B>32767B>32767B>32767B>32767B>32767B>32767B-------->32767B->32767B>32767B6380B--1B23776B5752B->32767B11168B>32767B23432B30224B29480B>32767B>32767B>32767B>32767B>32767B>32767B>32767B4064B>32767B>32767B->32767B>32767B>32767B>32767B>32767B>32767B>32767B>32767B>32767B>32767B>32767B
JCSystem.MEMORY_TYPE_TRANSIENT_RESET2.2.11154B4878B--3940B1337B1051B1071B1373B2795B2795B1765B1236B3107B2808B2040B2040B2728B5098B1799B--------2119B-2228B997B2471B--1B2573B1087B-1975B1062B3277B1982B1983B1974B3480B3480B2208B3477B2336B2336B3279B2267B1875B3069B-1458B758B13347B1679B2915B1454B1903B1724B3480B12891B9390B
JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT2.2.13624B4878B--1024B512B2795B512B512B512B512B384B9984B512B755B2335B819B819B5098B2023B--------1152B-1022B384B512B--1B512B1087B-1975B512B512B512B512B512B512B512B2208B3477B2336B512B512B512B512B3069B-1458B511B2037B800B2915B1750B1903B1724B3480B32767B29440B
JCSystem.getMaxCommitCapacity()2.1------------------------------------------------------------------
javacardx.apdu.ExtendedLengthintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
Extended APDU2.2.2--nono-----------no----nononononono---no---no--nonono-------noyes------no-----------
javacardx.crypto.Cipherintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DES_CBC_NOPAD≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_CBC_ISO9797_M1≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_CBC_ISO9797_M2≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_CBC_PKCS5≤2.1yesnononoyesyesyesyesyesyesyesyesnonoyesyesyesyesnoyesnonononononononononoyesyesyesyesyesnononononononononoyesyesyesyesyesyesnoyesnononononoyesnonoyesnonoyesyesyes
ALG_DES_ECB_NOPAD≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_ECB_ISO9797_M1≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_ECB_ISO9797_M2≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_ECB_PKCS5≤2.1yesnononoyesyesyesyesyesyesyesyesnonoyesyesyesyesnoyesnonononononononononoyesyesyesyesnononononononononononononononononononononononoyesnonoyesnononoyesyes
ALG_RSA_ISO14888≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnonononoyes
ALG_RSA_PKCS1≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_RSA_ISO9796≤2.1nonononononononononononononononononononononononononononoyesyesnononoyesnononononononononononononononononononononononononononoyesyesnonono
ALG_RSA_NOPAD2.1.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_AES_BLOCK_128_CBC_NOPAD2.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesnoyesyesyesnoyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
ALG_AES_BLOCK_128_ECB_NOPAD2.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesnoyesyesyesnoyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
ALG_RSA_PKCS1_OAEP2.2.0nonononononononononononononoyesyesyesyesnoyesnonononononononononononononononononononononononononononononononononoyesyesyesyesnonoyesnononoyesno
ALG_KOREAN_SEED_ECB_NOPAD2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononononononononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
ALG_KOREAN_SEED_CBC_NOPAD2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononononononononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
ALG_AES_BLOCK_192_CBC_NOPAD3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_AES_BLOCK_192_ECB_NOPAD3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_AES_BLOCK_256_CBC_NOPAD3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_AES_BLOCK_256_ECB_NOPAD3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_AES_CBC_ISO9797_M13.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_AES_CBC_ISO9797_M23.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_AES_CBC_PKCS53.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_AES_ECB_ISO9797_M13.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_AES_ECB_ISO9797_M23.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_AES_ECB_PKCS53.0.1yesno--yesnoyesyesyesyesyesyesnonoyes-nononono------nonono-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
javacard.crypto.Signatureintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DES_MAC4_NOPAD≤2.1yesnonoyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononononononononononononononononononoyesyesyesyesnonoyesyesyesnoyesyes
ALG_DES_MAC8_NOPAD≤2.1yesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_MAC4_ISO9797_M1≤2.1yesnonoyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesnonononononononononononononononononononoyesyesyesyesnonoyesyesyesnoyesyes
ALG_DES_MAC8_ISO9797_M1≤2.1yesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_MAC4_ISO9797_M2≤2.1yesnonoyesyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesnonononononononononononononononononononoyesyesyesyesnonoyesyesyesnoyesyes
ALG_DES_MAC8_ISO9797_M2≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_DES_MAC4_PKCS5≤2.1yesnononoyesyesyesyesyesyesyesyesnonoyesyesyesyesnoyesnononononononononononoyesyesyesnononononononononononononononononononononononoyesnonoyesnononoyesyes
ALG_DES_MAC8_PKCS5≤2.1yesnononoyesyesyesyesyesyesyesyesnonoyesyesyesyesnoyesnonononononononononoyesyesyesyesnononononononononononononononononononononononoyesnonoyesnononoyesyes
ALG_RSA_SHA_ISO9796≤2.1noyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyes
ALG_RSA_SHA_PKCS1≤2.1noyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_RSA_MD5_PKCS1≤2.1nonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesnoyesyesyesyesnoyesnoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyesyesyesyesyesyesyes
ALG_RSA_RIPEMD160_ISO9796≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnoyesnonono
ALG_RSA_RIPEMD160_PKCS1≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnoyesnonono
ALG_DSA_SHA≤2.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
ALG_RSA_SHA_RFC2409≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnononoyesyes
ALG_RSA_MD5_RFC2409≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnononoyesyes
ALG_ECDSA_SHA2.2.0yesnonononoyesyesyesyesnononoyesyesyesnonononoyesnonononononononoyesnoyesyesnonoyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesyesyesno
ALG_AES_MAC_128_NOPAD2.2.0noyesnosuspicious yesyesyesyesyesyesyesyesyesnoyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyesnoyesyesyesnoyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
ALG_DES_MAC4_ISO9797_1_M2_ALG32.2.0yesnononoyesyesyesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesnonoyesyesyesnonononononononononononononononononononoyesyesyesyesnonoyesyesyesnoyesyes
ALG_DES_MAC8_ISO9797_1_M2_ALG32.2.0yesnononoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_RSA_SHA_PKCS1_PSS2.2.0nononononononononononononoyesnononononoyesnonononononononononoyesnonononoyesnonononoyesnononononononononoyesnoyesyesyesyesyesyesnoyesnonononoyesyes
ALG_RSA_MD5_PKCS1_PSS2.2.0nonononononononononononononononononononononononononononononononononononononononononononononononononononononoyesnononononononononoyesyes
ALG_RSA_RIPEMD160_PKCS1_PSS2.2.0nononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononono
ALG_HMAC_SHA12.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononoyesnonononononoyesyes
ALG_HMAC_SHA_2562.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononoyesnonononononoyesyes
ALG_HMAC_SHA_3842.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononoyesnonononononoyesyes
ALG_HMAC_SHA_5122.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononoyesnonononononoyesyes
ALG_HMAC_MD52.2.2nonononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononoyesyes
ALG_HMAC_RIPEMD1602.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononono
ALG_RSA_SHA_ISO9796_MR2.2.2nonononoyesyesyesyesyesyesyesyesnonononononononononononononononononoyesyesyesnononononononononononononononononononononononononononononononoyesno
ALG_RSA_RIPEMD160_ISO9796_MR2.2.2nononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononononono
ALG_SEED_MAC_NOPAD2.2.2noyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononononononononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesyesnononononoyesyesnoyesyesnono
ALG_ECDSA_SHA_2563.0.1yesno--nonoyesyesyesnonononoyesyes-nononosuspicious yes------nonosuspicious yes-yesyesno-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnoyesnoyesnonoyesyes
ALG_ECDSA_SHA_3843.0.1yesno--nonoyesyesyesnononononoyes-nononosuspicious yes------nonosuspicious yes-yesyesno-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
ALG_AES_MAC_192_NOPAD3.0.1nono--nonononononononononono-nononosuspicious yes------nonono-nonono-nono---nonononononono-no-nonononono-nononononononononoyesno
ALG_AES_MAC_256_NOPAD3.0.1nono--nonononononononononono-nononosuspicious yes------nonono-nonono-nono---nonononononono-no-nonononono-nononononononononoyesno
ALG_ECDSA_SHA_2243.0.1yesno--nononoyesyesnonononoyesyes-nononono------nonosuspicious yes-yesyesno-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnoyesnoyesnonoyesyes
ALG_ECDSA_SHA_5123.0.1yesno--nonoyesyesyesnononononoyes-nononosuspicious yes------nonosuspicious yes-yesyesno-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
ALG_RSA_SHA_224_PKCS13.0.1nono--nonononoyesnononononoyes-nononono------nonono-yesyesno-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_RSA_SHA_256_PKCS13.0.1nono--nonononoyesnonononoyesyes-nononono------nonono-yesyesno-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnonononononoyesyes
ALG_RSA_SHA_384_PKCS13.0.1nono--nonononoyesnononononoyes-nononono------nonono-yesyesno-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_RSA_SHA_512_PKCS13.0.1nono--nonononoyesnononononoyes-nononono------nonono-yesyesno-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_RSA_SHA_224_PKCS1_PSS3.0.1nono--nononononononononoyesno-nononono------nonono-nonono-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnoyesnonononoyesyes
ALG_RSA_SHA_256_PKCS1_PSS3.0.1nono--nononononononononoyesno-nononono------nonono-yesnono-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnoyesnonononoyesyes
ALG_RSA_SHA_384_PKCS1_PSS3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_RSA_SHA_512_PKCS1_PSS3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnonononononoyesyes
ALG_DES_MAC4_ISO9797_1_M1_ALG33.0.4yesno--nonononoyesnononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_DES_MAC8_ISO9797_1_M1_ALG33.0.4yesno--nonononoyesnononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
ALG_AES_CMAC_1283.0.5------------------------------------------------------------------
javacard.security.MessageDigestintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_SHA≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_MD5≤2.1yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnononoyesyesyesyesyesyesyesyes
ALG_RIPEMD160≤2.1nonononononononononononononoyesyesyesyesnononononononononononononononoyesnonononononononononononononononononononononononononoyesnoyesnonono
ALG_SHA_2562.2.2yesyesnonoyesyesyesyesyesyesyesyesyesyesyessuspicious yesyesnonoyesnonononononononoyesnoyesyesnonoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesyesnoyesnoyesnoyesyesyesyesyesyesyes
ALG_SHA_3842.2.2yesnononoyesyesyesyesyesyesyesyesnonoyesnonononoyesnonononononononoyesnoyesyesnononononononononononononononononononononononoyesnoyesnononoyesnonoyesyes
ALG_SHA_5122.2.2yesnononoyesyesyesyesyesyesyesyesnonoyesnonononoyesnonononononononoyesnoyesyesnononononononononononononononononononononononoyesnoyesnononoyesnonoyesyes
ALG_SHA_2243.0.1yesno--noyesnoyesyesnonoyesyesyesyes-nononono------nonosuspicious yes-yesyesno-noyes---noyesnonononono-no-noyesnoyesyes-nonoyesnoyesnoyesnonoyesyes
ALG_SHA3_2243.0.5------------------------------------------------------------------
ALG_SHA3_2563.0.5------------------------------------------------------------------
ALG_SHA3_3843.0.5------------------------------------------------------------------
ALG_SHA3_5123.0.5------------------------------------------------------------------
javacard.security.RandomDataintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_PSEUDO_RANDOM≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_SECURE_RANDOM≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
ALG_TRNG3.0.5------------------------------------------------------------------
ALG_ALG_PRESEEDED_DRBG3.0.5------------------------------------------------------------------
ALG_FAST3.0.5------------------------------------------------------------------
ALG_KEYGENERATION3.0.5------------------------------------------------------------------
javacard.security.KeyBuilderintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
TYPE_DES_TRANSIENT_RESET≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES_TRANSIENT_DESELECT≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES LENGTH_DES≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES LENGTH_DES3_2KEY≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_DES LENGTH_DES3_3KEY≤2.1yesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_AES_TRANSIENT_RESET2.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_AES_TRANSIENT_DESELECT2.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_AES LENGTH_AES_1282.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesyesyesyesyes
TYPE_AES LENGTH_AES_1922.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_AES LENGTH_AES_2562.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesnonononoyessuspicious yesyes-yesyesyesnoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesyesyesyesnoyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_512≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesnonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_7682.2.0yesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_8962.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_1024≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_12802.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_15362.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_19842.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_2048≤2.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PUBLIC LENGTH_RSA_40963.0.1nonononononononononononononononononononononononononononono-yesnonononono-nonononononononononononononononononononoyesnononononononono
TYPE_RSA_PRIVATE LENGTH_RSA_512≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesnonoyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_7682.2.0yesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_8962.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_1024≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_12802.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_15362.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_19842.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_2048≤2.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesnoyesyesnonononoyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_PRIVATE LENGTH_RSA_40963.0.1nonononononononononononononononononononononononononononono-yesnonononono-nonononononononononononononononononononononononononononono
TYPE_RSA_PRIVATE_TRANSIENT_RESET3.0.1yesno--yesnoyesyesyesyesyesyesnonono-nononono------nonosuspicious yes-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
TYPE_RSA_PRIVATE_TRANSIENT_DESELECT3.0.1yesno--yesnoyesyesyesyesyesyesnonono-nononono------nonosuspicious yes-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_512≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesyesyesnoyesyesyesyesyesyesnoyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_7682.2.0yesyessuspicious yessuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yessuspicious yessuspicious yessuspicious yesyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_8962.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_1024≤2.1yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_12802.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_15362.2.0yesyesnosuspicious yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yesnononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_19842.2.0yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonononoyessuspicious yesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_2048≤2.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyes-yesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
TYPE_RSA_CRT_PRIVATE LENGTH_RSA_40963.0.1nonononononononononononononononononononononononononononono-yesnonononono-nonononononononononononononononononononoyesnononononononono
TYPE_RSA_CRT_PRIVATE_TRANSIENT_RESET3.0.1yesno--yesnoyesyesyesyesyesyesnonono-nononono------nonosuspicious yes-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
TYPE_RSA_CRT_PRIVATE_TRANSIENT_DESELECT3.0.1yesno--yesnoerror(0x6f00)error(0x6f00)yesyesyesyesnonono-nononono------nonosuspicious yes-yesyesyes-nono---nonononononono-no-nonononono-nonoyesnononoyesnonoyesyes
TYPE_DSA_PRIVATE LENGTH_DSA_512≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PRIVATE LENGTH_DSA_768≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PRIVATE LENGTH_DSA_1024≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PRIVATE_TRANSIENT_RESET3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_DSA_PRIVATE_TRANSIENT_DESELECT3.0.1nono--nonononononononononono-nononono------nonono-nonono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_DSA_PUBLIC LENGTH_DSA_512≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PUBLIC LENGTH_DSA_768≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_DSA_PUBLIC LENGTH_DSA_1024≤2.1nonononononononononononononoyesyesyesnononononononononononono-nononononononononononononononononononononononononononoyesnonoyesnonononono
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1132.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1312.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1632.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE LENGTH_EC_F2M_1932.2.0nonononononoyesyesyesnononononononononononononononononononono-yesnonononononoyesyesnonoyesyesyesnononononononononononononoyesnononononononono
TYPE_EC_F2M_PRIVATE_TRANSIENT_RESET3.0.1nono--nonoyesyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_EC_F2M_PRIVATE_TRANSIENT_DESELECT3.0.1nono--nonoyesyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1122.2.0yesnononononoyesyesyesnononononoyesnononononononononononononono-yesnonononononononononononononononononononononononononoyesnonoyesnonononoyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1282.2.0yesnononononoyesyesyesnononoyesyesyesnononononononononononononono-yesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnononoyesnoyesyesnonoyesnoyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1602.2.0yesnononononoyesyesyesnononoyesyesyesnonononoyesnonononononononoyes-yesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesnoyesnoyesyesyesyesyesyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_1922.2.0yesnonononoyesyesyesyesnononoyesyesyesnonononoyesnonononononononoyes-yesyesnonoyesyesnonononoyesnononoyesyesyesyesyesyesyesyesyesyesnoyesyesyesnoyesyesyesyesyesyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_2243.0.1yesno--nonoyesyesyesnonononoyesyes-nononosuspicious yes------nonosuspicious yes-yesnono-suspicious yesyes---noyesnononosuspicious yessuspicious yes-suspicious yes-yesyesyesyesyes-yesnoyesnoyesyesyesyesyesyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_2563.0.1yesno--noyesyesyesyesnononoyesyesyes-nononosuspicious yes------nonosuspicious yes-yesyesno-suspicious yesyes---noyesnononosuspicious yessuspicious yes-suspicious yes-yesyesyesyesyes-yesnoyesnoyesyesyesyesyesyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_3843.0.1yesno--noyesyesyesyesnononononono-nononosuspicious yes------nonosuspicious yes-yesyesno-nono---nonononononono-no-nonononono-yesnoyesnononoyesnonoyesyes
TYPE_EC_FP_PRIVATE LENGTH_EC_FP_5213.0.4nono--nonoyesyesyesnononononono-nononosuspicious yes------nonono-yesnono-nono---nonononononono-no-nonononono-yesnoyesnononononononoyes
TYPE_EC_FP_PRIVATE_TRANSIENT_RESET3.0.1nono--nonoyesyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_EC_FP_PRIVATE_TRANSIENT_DESELECT3.0.1nono--nononoyesyesnononononono-nononono------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesnononononononono
TYPE_KOREAN_SEED_TRANSIENT_RESET2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
TYPE_KOREAN_SEED_TRANSIENT_DESELECT2.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
TYPE_KOREAN_SEED LENGTH_KOREAN_SEED_1282.2.2yesyesnonoyesyesyesyesyesyesyesnonoyesyesnononononononononononononono-nonononoyesyesnonononoyesnononoyesyessuspicious yesyesyesyesyesyesyesnonononononoyesyesnoyesyesnono
TYPE_HMAC_TRANSIENT_RESET2.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC_TRANSIENT_DESELECT2.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_1_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_256_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_384_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
TYPE_HMAC LENGTH_HMAC_SHA_512_BLOCK_642.2.2nonononononononononononononononononononononononononononono-nononononononononononononononononononononononononononoyesnonononononoyesyes
javacard.security.KeyPair ALG_RSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_RSA LENGTH_RSA_5122.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_7362.2.0yesyesnosuspicious yesnonononononononoyesyesyesyesyesnoyesyesyesnono-nonoyesnoyesnoyesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_7682.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_8962.2.0yesyesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyesnoyesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_10242.1.1yesyes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesyesnoyesyes
ALG_RSA LENGTH_RSA_12802.2.0yesyesnosuspicious yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_15362.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_19842.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnononoyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_20482.1.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesnoyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesnoyesnonononoyesnononononononononoyesnoyesyesnoyesyesyes-yesnoyesnonoyesyes
ALG_RSA LENGTH_RSA_40963.0.1nonononononononononononononononononononononono-nononononononononononono-nonononononononononononononononononononononononononononono
javacard.security.KeyPair ALG_RSA_CRT on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_RSA_CRT LENGTH_RSA_5122.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_7362.2.0yesyesnoerrornonononononononoyesyesyesyesyesyesyesyesyesnono-nonoyesnoyesnoyesnonoyesnoyesnonononoyesnononononononononoyesnoyesyesyesnonoyesnoyesyesyesyesnoyesyes
ALG_RSA_CRT LENGTH_RSA_7682.1.1yesyes?yesyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_8962.2.0yesyesnoerroryeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyesnoyesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_10242.1.1yesyes?yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_12802.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_15362.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyessuspicious yes-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyeserror(0x6300)yesyesyesyesyesyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_19842.2.0yesyesnonoyeserror(ILLEGAL_VALUE)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesno-nonoyessuspicious yesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnonoyes-yesyesyesyesyesyesyes
ALG_RSA_CRT LENGTH_RSA_20482.1.1yesyesnonoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesnoyesyesyesnoyesyesyesyesyesyesnoyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyeserror(ILLEGAL_VALUE)yes
ALG_RSA_CRT LENGTH_RSA_40963.0.1nonononononononononononononononononononononono-nononononononononononono-nonononononononononononononononononononononononononononono
javacard.security.KeyPair ALG_DSA on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_DSA LENGTH_DSA_5122.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
ALG_DSA LENGTH_DSA_7682.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
ALG_DSA LENGTH_DSA_10242.1.1nonononononononononononononoyesyesyesnonononononononononononononononononononononononononononononononononononononononoyesnonoyesnonononono
javacard.security.KeyPair ALG_EC_F2M on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_EC_F2M LENGTH_EC_F2M_1132.2.1nonononononoyesyesyesnononononononononononononononononononononoerror(ILLEGAL_VALUE)nonononononoyesyesnonoyesyesyesnononononononononononononononononononononono
ALG_EC_F2M LENGTH_EC_F2M_1312.2.1nonononononoyesyesyesnononononononononononononononononononononoerror(ILLEGAL_VALUE)nonononononoyesyesnonoyesyesyesnononononononononononononononononononononono
ALG_EC_F2M LENGTH_EC_F2M_1632.2.1nononononononononononononononononononononononononononononononononononononoyesyesnonononononononononononononononononononononononononono
ALG_EC_F2M LENGTH_EC_F2M_1932.2.1nononononononononononononononononononononononononononononononononononononoyesyesnonononononononononononononononononononononononononono
javacard.security.KeyPair ALG_EC_FP on-card generationintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_EC_FP LENGTH_EC_FP_1122.2.1yesnononononoyesyesyesnononononoerror(0x6a81)nononononononononononononononoerror(ILLEGAL_VALUE)nonononononononononononononononononononononononononoerror(ILLEGAL_VALUE)nonoerror(ILLEGAL_VALUE)nonononoerror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_1282.2.1yesnononononoyesyesyesnononoyesyesyesnononononononononononononononoyesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)nonoyesnoerror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_1602.2.1yesnononononoyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnoyesnononoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_1922.2.1yesnonononoyesyesyesyesnononoyesyesyesnonononoerror(ILLEGAL_VALUE)nonononononononoyesnoyeserror(ILLEGAL_VALUE)nonoyesyesnonononoyesnononoyesyesyesyesyesyesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)nononoyesnoyeserror(ILLEGAL_VALUE)yesyesyesyeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_2243.0.1yesno--nonoyesyesyesnonononoyesyes-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yesnono-error(ILLEGAL_VALUE)yes---noyesnononosuspicious yessuspicious yes-error(ILLEGAL_VALUE)-yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)-nonoyesno-error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_2563.0.1yesno--noyesyesyesyesnononoyesyesyes-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yeserror(ILLEGAL_VALUE)no-error(ILLEGAL_VALUE)yes---noyesnononosuspicious yessuspicious yes-error(ILLEGAL_VALUE)-yesyesyeserror(ILLEGAL_VALUE)error(ILLEGAL_VALUE)-nonoyesno-error(ILLEGAL_VALUE)yesyeserror(ILLEGAL_VALUE)yeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_3843.0.1yesno--noyesyesyesyesnononononono-nononoerror(ILLEGAL_VALUE)------nonosuspicious yes-yeserror(ILLEGAL_VALUE)no-nono---nonononononono-no-nonononono-nonoyesno-noyesnonoyeserror(ILLEGAL_VALUE)
ALG_EC_FP LENGTH_EC_FP_5213.0.4nono--nonoyesyesyesnononononono-nononoerror(ILLEGAL_VALUE)------nonono-yesnono-nono---nonononononono-no-nonononono-nonoyesno-nononononoerror(ILLEGAL_VALUE)
javacard.security.KeyAgreementintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_EC_SVDP_DH/ALG_EC_SVDP_DHC_KDF2.2.1------------------------------------------------------------------
ALG_EC_SVDP_DHC/ALG_EC_SVDP_DHC_KDF2.2.1------------------------------------------------------------------
ALG_EC_SVDP_DH_PLAIN3.0.1-no----------------nono------suspicious yessuspicious yes-------------------no-----yes-no--noyesnoyesnono-yes
ALG_EC_SVDP_DHC_PLAIN3.0.1-no----------------nono------suspicious yessuspicious yes-------------------no-----no-no--nononoyesnono-yes
ALG_EC_PACE_GM3.0.5------------------------------------------------------------------
ALG_EC_SVDP_DH_PLAIN_XY3.0.5------------------------------------------------------------------
ALG_DH_PLAIN3.0.5------------------------------------------------------------------
javacard.security.Checksumintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
ALG_ISO3309_CRC162.2.1yesnononoyesyesyesyesyesyesyesyesnoyesnonononoyesyes??nonononoyessuspicious yesyesnoyesnononoyesyesyesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesnononoyesyesyesnoyesyesyesyesyes
ALG_ISO3309_CRC322.2.1yesnononoyesyesyesyesyesyesyesyesnonoyesnonononono??nononononosuspicious yesyesnoyesnononoyesnonononononononononononononononononononononoyesnononoyesyesnoyesyes
Variable RSA 1024 - support for variable public exponent. If supported, user-defined fast modular exponentiation can be executed on the smart card via cryptographic coprocessor. This is very specific feature and you will probably not need itintroduced in JC ver.c0c1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18c19c20c21c22c23c24c25c26c27c28c29c30c31c32c33c34c35c36c37c38c39c40c41c42c43c44c45c46c47c48c49c50c51c52c53c54c55c56c57c58c59c60c61c62c63c64c65
Allocate RSA 1024 objectsyesyesyes-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yes---yesyesyes-yesyesyes-yesyesno-yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyes-yesyesyesyesyesyesyesyesyesyesyes
Set random modulusyesyesno-yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes-no---yesyesyes-yesyesyes-yesyesno-yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyes-noyesyesyesyesyesnonoyesyesyes
Set random public exponentyesyesno-nononononononononoyesyesyesyesyesnonono-no---nonono-yesnono-yesyesno-yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyes-noyesyesnoyesyesnonoyesnoyes
Initialize cipher with public key with random exponentyesyesno-nononononononononoyesyesyesyesyesnonono-no---nonono-yesnono-yesyesno-yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyes-noyesyesnoyesyesnonoyesnoyes
Use random public exponentnoyesno-nononononononononoyesyesyesyesyesnonono-no---nonono-yesnono-yesyesno-yesnoyesyesyesyesyesyesyesyesyesyesyesyesyesyes-nonoyesnoyesyesnonoyesnono
+
+ + +
+ +

+Variable RSA 1024 - support for the variable public exponent. If supported, Diffie-Hellman can be implemented via NOPAD RSA (see https://github.com/ASKGLab/DHApplet for example), user-defined fast modular exponentiation can be executed on the smart card accelerated by the cryptographic coprocessor. This is a very specific feature and you will probably not need it. +

+
+

+The results for almost all possible constants defined in JavaCard specification JC2.1 and later are transmitted to PC (JCAlgTestPC application) and saved into CSV file. +

+ +

+ +Please download packed binaries and source codes here: AlgTest GitHub repository (contains source codes, compiled versions, Java and C++ client) + +

+ + + + +
+

If you like to run JCAlgTest by yourself...

+

+Usage:
+

    +
  1. Download prepared version or compile your own modification of AlgTest applet - Download and try compiled and converted applet *.cap from prepared AlgTest suite. If you are unable to upload the package to card or install it, then see Caveats, comment out unsupported classes and compile your own limited version of AlgTest applet (see Applet playground or compilation with NetBeans for step-by-step JavaCard compile & convert instructions).
  2. +
  3. Upload AlgTest package to your smart card and install it - Use uploader supplied by your card vendor (e.g., GPShell, GlobalPlatformPro tool, Gemplus RADIII, IBM JCOP or Cyberflex Access Toolkit). Package AID: 6D 79 70 61 63 6B 61 67 31, Applet AID: 6D 79 70 61 63 30 30 30 31. No special installation parameters are given/required.
  4. +
  5. Run application AlgTestJClient.jar - Choose the target reader for card with uploaded AlgTest applet and let it run. CSV file with values separated by the semicolon is created (AlgTest_ATR.csv).
  6. +
+

+
+

+ Examined classes:
+

    +
  • javacard.security.Cipher - all types
  • +
  • javacard.security.Signature - all types
  • +
  • javacard.security.KeyBuilder - all key types and key lengths
  • +
  • javacard.security.KeyPair - on-card generation test for all key types and key lengths. Note, that generation of key pair may is time expensive operation (up to minute or more), so be patient. A time necessary for generation is measured, but this may differe significantly between repeated runs, so do your own multiple tests, if you are interested in average time (we are generating only ones).
  • +
  • javacard.security.MessageDigest - all types
  • +
  • javacard.security.RandomData - all types
  • +
  • javacard.security.KeyAgreement - all types
  • +
  • javacard.security.Checksum - all types
  • +
  • javacard.framework.JCSystem - selected methods
  • +
  • javacardx.apdu.ExtendedLength - manual compilation of source codes required at the moment
  • +
+

+
+ +

Example of code for ALG_DES_CBC_NOPAD algorithm:

+

+
+try {
+  m_cipher = Cipher.getInstance(ALG_DES_CBC_NOPAD, false);
+  // If this line is reached, than DES in CBC mode with no padding (ALG_DES_CBC_NOPAD) is supported.
+  supported = true;
+}
+catch (CryptoException e) {
+  if (e.getReason() == CryptoException.NO_SUCH_ALGORITHM) {
+	// algorithm is not supported
+	supported = false;
+  }
+  else {
+	// other error occured
+  }
+}
+
+

+ +
+ +

+ Caveats:
+

    +
  • Limited memory/garbage collection of particular smart card - An allocation of objects during the test may lead to memory exhaustion if the smart card does not support automatic garbage collection (often). Further allocation then fails even when the particular algorithm is supported. Try to re-install AlgTest applet if the test execution fails, allocated objects are often freed when applet is removed and installed again.
  • +
  • Smart card must support exception handling - Not an issue on newer cards, but may be missing on older ones (e.g., Gemplus GXP211_PK). The exception handling (try/catch construct) is necessary to correctly process allocation of an instance of unsupported algorithms. If you have card without exception handling, you must try to create instance inside your code one by one and check whether it is possible.
  • +
  • Smart card should have reasonable memory size or garbage collector - We are allocating several instances of algorithm one by one and memory can be exhausted before the last object is allocated. Typical behavior resulting from missing garbage collection is failed allocation of supported algorithms in the second run of AlgTestClient.exe application, even when previous run successfully allocated algorithm object. Gemalto (Gemplus) cards work usually without any problem, but a separate compilation of selected parts of AlgTest applet are necessary for cards like NXP JCOP4.1 or Cyberflex Palmera V5 (typically in KeyBuilder part - the card is not able to support 20+ key objects without memory deallocation). If you encounter this issue, comment out most of the testing code, run only for small uncommented part, then comment it again and uncomment another part - inconvenient, but working.
  • +
+

+ + + + + + + + + + + + + + +