aboutsummaryrefslogtreecommitdiff
path: root/reader/src
diff options
context:
space:
mode:
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.");
}
}