aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--docs/CURVES.md6
-rw-r--r--docs/TESTS.md15
3 files changed, 23 insertions, 2 deletions
diff --git a/README.md b/README.md
index 71c7042..5ff720d 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,6 @@ Following operations are tested:
- Setting of custom curve and KeyPair generation
- Generation of shared secret via ECDH
- Signature via ECDSA
-- Behavior of card when invalid curves/points are provided (should fail)
See `java -jar ECTesterReader.jar -h` for more.
@@ -39,6 +38,9 @@ See `java -jar ECTesterReader.jar -h` for more.
-t,--test <test_suite> Test ECC support. [test_suite]:
- default:
- invalid:
+ - twist:
+ - degenerate:
+ - cofactor:
- wrong:
- composite:
- test-vectors:
diff --git a/docs/CURVES.md b/docs/CURVES.md
index a815c5c..a0454a3 100644
--- a/docs/CURVES.md
+++ b/docs/CURVES.md
@@ -62,6 +62,12 @@ These points can be used to attack some implementations.
Generated using [ecgen](https://github.com/J08nY/ecgen).
+### degenerate
+Contains pre-generated points on the line `Y: x = 0`. These points are constructed from elements of prime
+order in the multiplicative group F_p given a curve over it.
+
+Generate manually using [PARI/GP](http://pari.math.u-bordeaux.fr/).
+
### cofactor
Contains curves that are composite order, with points not on the subgroup generated by the generator.
diff --git a/docs/TESTS.md b/docs/TESTS.md
index d2eb500..bd70206 100644
--- a/docs/TESTS.md
+++ b/docs/TESTS.md
@@ -6,9 +6,10 @@
- `composite`
- `invalid`
- `twist`
+ - `degenerate`
- `cofactor`
-**NOTE: The `wrong`, `composite`, `invalid`,`twist` and `cofactor` test suites caused temporary/permanent DoS of some cards. These test suites prompt you for
+**NOTE: The `wrong`, `composite`, `invalid`,`twist`, `cofactor` and `degenerate` test suites caused temporary/permanent DoS of some cards. These test suites prompt you for
confirmation before running, be cautious.**
## Default
@@ -103,6 +104,18 @@ For example:
java -jar ECTester.jar -t twist
```
+## Degenerate
+Tests using known named curves froms several categories(SECG/NIST) against pre-generated points on the degenerate line
+`Y: x = 0`. ECDH should fail, a success here might mean the card does not check that the point lies on the correct curve
+and uses a curve model vulnerable to such degenerate points.
+
+See [Degenerate Curve Attachs - Extending Invalid Curve Attacks to Edwards Curves and Other Models](https://eprint.iacr.org/2015/1233.pdf) for more information.
+
+For example:
+```bash
+java -jar ECTester.jar -t degenerate
+```
+
## Cofactor
Tests whether the card correctly rejects points that lie on the curve but not on the subgroup generated by the specified generator
during ECDH.