aboutsummaryrefslogtreecommitdiff
path: root/reader/src
diff options
context:
space:
mode:
authorJ08nY2025-01-30 16:00:21 +0100
committerJ08nY2025-01-30 16:00:21 +0100
commit08623da26afae75aeeb66a13fd36c173ddcd40ce (patch)
treec2cae1c21f109300300dce3e2068795078fd62fa /reader/src
parent79a611acbc2f22023ebe2ee25372de3ef40c3dbc (diff)
downloadECTester-08623da26afae75aeeb66a13fd36c173ddcd40ce.tar.gz
ECTester-08623da26afae75aeeb66a13fd36c173ddcd40ce.tar.zst
ECTester-08623da26afae75aeeb66a13fd36c173ddcd40ce.zip
Diffstat (limited to 'reader/src')
-rw-r--r--reader/src/main/java/cz/crcs/ectester/reader/command/Command.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java b/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java
index 451dda0..71ba599 100644
--- a/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java
+++ b/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java
@@ -373,13 +373,18 @@ public abstract class Command implements Cloneable {
System.arraycopy(external, 0, data, 2, external.length);
if ((params & EC_Consts.PARAMETER_FP) != 0) {
EC_Params par = new EC_Params(params);
- par.readBytes(external);
+ boolean read = par.inflate(external);
+ if (!read) {
+ throw new IllegalArgumentException("External curve data does not match parameters.");
+ }
byte[][] prime = par.getParam(EC_Consts.PARAMETER_FP);
byte[] p = prime[0];
int bytes = p.length;
if ((params & EC_Consts.PARAMETER_G) != 0) {
byte[][] generator = par.getParam(EC_Consts.PARAMETER_G);
if (generator[0].length != bytes || generator[1].length != bytes) {
+ System.err.println("Generator x length: " + generator[0].length + " vs " + bytes);
+ System.err.println("Generator y length: " + generator[1].length + " vs " + bytes);
throw new IllegalArgumentException("Generator point does not match prime field size.");
}
}