From 6ff735e5d88a6b175f5e9ab49e84d9465fc7ee91 Mon Sep 17 00:00:00 2001
From: J08nY
Date: Sun, 8 Mar 2026 12:19:19 +0800
Subject: Point index to repo.
---
index-old.html | 1442 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
index.html | 1467 +-------------------------------------------------------
2 files changed, 1467 insertions(+), 1442 deletions(-)
create mode 100644 index-old.html
diff --git a/index-old.html b/index-old.html
new file mode 100644
index 0000000..a0aa6ef
--- /dev/null
+++ b/index-old.html
@@ -0,0 +1,1442 @@
+---
+---
+
+
ECTester
+
+
+
Tests support and behavior of elliptic curve cryptography implementations on JavaCards (TYPE_EC_FP and TYPE_EC_F2M) and on selected software libraries. See our github for more info.
+The JavaCard API has support for basic Elliptic Curve Cryptography, such as ECDH and ECDSA. However not many cards actually support these algorithms. The table below displays support and performance obtained by ECTester for common curve sizes. For detailed support and implementation tests see test runs.
+
+
+
+
Legend
+
+ ∗ ECDH types
+
+
ALG_EC_SVDP_DH
+
ALG_EC_SVDP_DHC
+
ALG_EC_SVDP_DH_PLAIN
+
ALG_EC_SVDP_DHC_PLAIN
+
ALG_EC_PACE_GM
+
ALG_EC_SVDP_DH_PLAIN_XY
+
+
+
+ † ECDSA types
+
+
ALG_ECDSA_SHA
+
ALG_ECDSA_SHA_224
+
ALG_ECDSA_SHA_256
+
ALG_ECDSA_SHA_384
+
ALG_ECDSA_SHA_512
+
+
+
+ ‡ Colors
+
+
Full support
+
Some support
+
No support
+
Not defined
+
+
+
+
+
Card list
+
+This page contains results for the following cards:
+
+The following table shows performance of tested cards in ECDH and ECDSA over popular $ \mathbb{F}_p $ curve sizes. Key generation
+performance is similar to ECDH performance. ECDSA timings are split for sign+verify operations. Times are in milliseconds.
+
+
+
+The JavaCard API allows cards to specify default curves to be used when generating EC keys using the KeyPair class.
+Grey background shows that no default curve is present and one should be specified after creating
+the keypair, see the implementation guide.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Card
112b
128b
160b
192b
224b
256b
384b
521b
+
+
+
Athena IDProtect
+
+
+
Feitian A22 CR
secp112r1
secp128r1
secp160r1
P-192secp192r1
P-224secp224r1
SMP256V1
+
+
+
FeitianFeitian A22
+
+
+
G&D Smartcafe 6.0
+
+
+
G&D Smartcafe 7.0
+
+
+
Infineon CJTOP 80k
brainpoolP160r1
brainpoolP192r
brainpoolP224r1
brainpoolP256r1
+
+
+
Infineon SLE78
brainpoolP256r1
+
+
+
NXP JCOP31 v2.4.1
secp128r1
secp160r1
P-192secp192r1
+
+
+
NXP JCOP CJ2A081
secp128r1
secp160r1
P-192secp192r1
+
+
+
NXP JCOP v2.4.2 R2
+
+
+
NXP JCOP v2.4.2 R3
+
+
+
NXP JCOP v2.4.2 R3 J2E145G
+
+
+
TaiSYS SIMoME VAULT
secp112r1
secp128r1
secp160r1
secp192r1
secp224r1
secp256r1
+
+
+
+
$ \mathbb{F}_{2^m} $
+Support for binary field curves on cards is very weak, very little cards have any. For more information see JCAlgTest support table.
+
+
+The JavaCard ECC API is quite general in its requirements for implementations, which means different cards can behave
+differently and cause errors.
+
+
No curve is set by default
+KeyPairs allocated with new KeyPair(type, size) might or might not have set some default domain parameters.
+Which means using keypair.genKeyPair() just after allocating a KeyPair object will probably result in an exception.
+Thus, it is always better to explicitly setup custom domain parameters, using a known/standard curve, before trying to generate the KeyPair.
+
+
genKeyPair() required to get key parts
+On some cards a newly allocated KeyPair does not yet contain the individual key parts (the ECPublicKey and ECPrivateKey).
+Thus doing keypair.getPrivate() or keypair.getPublic() will return null. Which makes setting
+custom domain parameters on the key parts harder. This can usually be fixed by calling keypair.genKeyPair(), which however might throw an exception,
+and then setting the custom domain parameters on the now accessible key parts.
+
+
clearKey() behaviour
+The keypair.clearKey() method might clear out the set domain parameters of the keypair as well as the key contents.
+
+
getK() behaviour
+The ECKey.getK() method might throw an exception if the card does not support working with the cofactor value.
+
+
+The results of various test suites, run on a set of cards are available below:
+
+{% assign result_categories = site.results | group_by:"category" %}
+{% assign cards = site.results | group_by_exp:"item", "item.path | split: '/' | shift | shift | sample | split: '.' | pop | join: '.' " %}
+
+
+
Card name
+ {% for cat in result_categories %}
+
{{ cat.name }}
+ {% endfor %}
+
+ {% for card in cards %}
+
+
{{ card.name | replace: '_', ' ' }}
+ {% for cat in result_categories %}
+
+ {% for document in card.items %}
+ {% if document.category == cat.name %}
+
+ {% endif %}
+ {% endfor %}
+
Test suites - Contains a list of implemented test suites and their descriptions.
+
Curve categories - Contains a list of known curve categories and their descriptions.
+
Libraries - Contains a list of software libraries with support for ECC, a brief description of their implementation and whether ECTester supports them.
+
Implementations - Contains information on implementing ECC, curve models, scalar multiplication, coordinates and implementation choices between them.
Tests support and behavior of elliptic curve cryptography implementations on JavaCards (TYPE_EC_FP and TYPE_EC_F2M) and on selected software libraries. See our github for more info.
-The JavaCard API has support for basic Elliptic Curve Cryptography, such as ECDH and ECDSA. However not many cards actually support these algorithms. The table below displays support and performance obtained by ECTester for common curve sizes. For detailed support and implementation tests see test runs.
-
-
-
-
Legend
-
- ∗ ECDH types
-
-
ALG_EC_SVDP_DH
-
ALG_EC_SVDP_DHC
-
ALG_EC_SVDP_DH_PLAIN
-
ALG_EC_SVDP_DHC_PLAIN
-
ALG_EC_PACE_GM
-
ALG_EC_SVDP_DH_PLAIN_XY
-
-
-
- † ECDSA types
-
-
ALG_ECDSA_SHA
-
ALG_ECDSA_SHA_224
-
ALG_ECDSA_SHA_256
-
ALG_ECDSA_SHA_384
-
ALG_ECDSA_SHA_512
-
-
-
- ‡ Colors
-
-
Full support
-
Some support
-
No support
-
Not defined
-
-
-
-
-
Card list
-
-This page contains results for the following cards:
-
-The following table shows performance of tested cards in ECDH and ECDSA over popular $ \mathbb{F}_p $ curve sizes. Key generation
-performance is similar to ECDH performance. ECDSA timings are split for sign+verify operations. Times are in milliseconds.
-
-
-
-The JavaCard API allows cards to specify default curves to be used when generating EC keys using the KeyPair class.
-Grey background shows that no default curve is present and one should be specified after creating
-the keypair, see the implementation guide.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Card
112b
128b
160b
192b
224b
256b
384b
521b
-
-
-
Athena IDProtect
-
-
-
Feitian A22 CR
secp112r1
secp128r1
secp160r1
P-192secp192r1
P-224secp224r1
SMP256V1
-
-
-
FeitianFeitian A22
-
-
-
G&D Smartcafe 6.0
-
-
-
G&D Smartcafe 7.0
-
-
-
Infineon CJTOP 80k
brainpoolP160r1
brainpoolP192r
brainpoolP224r1
brainpoolP256r1
-
-
-
Infineon SLE78
brainpoolP256r1
-
-
-
NXP JCOP31 v2.4.1
secp128r1
secp160r1
P-192secp192r1
-
-
-
NXP JCOP CJ2A081
secp128r1
secp160r1
P-192secp192r1
-
-
-
NXP JCOP v2.4.2 R2
-
-
-
NXP JCOP v2.4.2 R3
-
-
-
NXP JCOP v2.4.2 R3 J2E145G
-
-
-
TaiSYS SIMoME VAULT
secp112r1
secp128r1
secp160r1
secp192r1
secp224r1
secp256r1
-
-
-
-
$ \mathbb{F}_{2^m} $
-Support for binary field curves on cards is very weak, very little cards have any. For more information see JCAlgTest support table.
-
-
-The JavaCard ECC API is quite general in its requirements for implementations, which means different cards can behave
-differently and cause errors.
-
-
No curve is set by default
-KeyPairs allocated with new KeyPair(type, size) might or might not have set some default domain parameters.
-Which means using keypair.genKeyPair() just after allocating a KeyPair object will probably result in an exception.
-Thus, it is always better to explicitly setup custom domain parameters, using a known/standard curve, before trying to generate the KeyPair.
-
-
genKeyPair() required to get key parts
-On some cards a newly allocated KeyPair does not yet contain the individual key parts (the ECPublicKey and ECPrivateKey).
-Thus doing keypair.getPrivate() or keypair.getPublic() will return null. Which makes setting
-custom domain parameters on the key parts harder. This can usually be fixed by calling keypair.genKeyPair(), which however might throw an exception,
-and then setting the custom domain parameters on the now accessible key parts.
-
-
clearKey() behaviour
-The keypair.clearKey() method might clear out the set domain parameters of the keypair as well as the key contents.
-
-
getK() behaviour
-The ECKey.getK() method might throw an exception if the card does not support working with the cofactor value.
-
-
-The results of various test suites, run on a set of cards are available below:
-
-{% assign result_categories = site.results | group_by:"category" %}
-{% assign cards = site.results | group_by_exp:"item", "item.path | split: '/' | shift | shift | sample | split: '.' | pop | join: '.' " %}
-
-
-
Card name
- {% for cat in result_categories %}
-
{{ cat.name }}
- {% endfor %}
-
- {% for card in cards %}
-
-
{{ card.name | replace: '_', ' ' }}
- {% for cat in result_categories %}
-
- {% for document in card.items %}
- {% if document.category == cat.name %}
-
- {% endif %}
- {% endfor %}
-
Test suites - Contains a list of implemented test suites and their descriptions.
-
Curve categories - Contains a list of known curve categories and their descriptions.
-
Libraries - Contains a list of software libraries with support for ECC, a brief description of their implementation and whether ECTester supports them.
-
Implementations - Contains information on implementing ECC, curve models, scalar multiplication, coordinates and implementation choices between them.