diff options
Diffstat (limited to 'src/cz/crcs/ectester/standalone/test/SignatureTestable.java')
| -rw-r--r-- | src/cz/crcs/ectester/standalone/test/SignatureTestable.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cz/crcs/ectester/standalone/test/SignatureTestable.java b/src/cz/crcs/ectester/standalone/test/SignatureTestable.java index 8b6815b..564a6bf 100644 --- a/src/cz/crcs/ectester/standalone/test/SignatureTestable.java +++ b/src/cz/crcs/ectester/standalone/test/SignatureTestable.java @@ -2,9 +2,9 @@ package cz.crcs.ectester.standalone.test; import cz.crcs.ectester.common.test.BaseTestable; import cz.crcs.ectester.common.test.TestException; -import cz.crcs.ectester.common.test.Testable; import java.security.InvalidKeyException; +import java.security.SecureRandom; import java.security.Signature; import java.security.SignatureException; import java.security.interfaces.ECPrivateKey; @@ -14,6 +14,7 @@ public class SignatureTestable extends BaseTestable { private Signature sig; private ECPrivateKey signKey; private ECPublicKey verifyKey; + private KeyGeneratorTestable kgt; private byte[] data; private byte[] signature; private boolean verified; @@ -23,6 +24,20 @@ public class SignatureTestable extends BaseTestable { this.signKey = signKey; this.verifyKey = verifyKey; this.data = data; + if (data == null) { + SecureRandom random = new SecureRandom(); + this.data = new byte[32]; + random.nextBytes(this.data); + } + } + + public SignatureTestable(Signature sig, KeyGeneratorTestable kgt, byte[] data) { + this(sig, null, null, data); + this.kgt = kgt; + } + + public byte[] getData() { + return data; } public byte[] getSignature() { @@ -35,6 +50,11 @@ public class SignatureTestable extends BaseTestable { @Override public void run() throws TestException { + if (kgt != null) { + signKey = (ECPrivateKey) kgt.getKeyPair().getPrivate(); + verifyKey = (ECPublicKey) kgt.getKeyPair().getPublic(); + } + try { sig.initSign(signKey); } catch (InvalidKeyException e) { |
