diff options
| author | J08nY | 2017-11-13 22:49:41 +0100 |
|---|---|---|
| committer | J08nY | 2017-11-13 22:49:41 +0100 |
| commit | 35bdac1fff6e98485d5fbef870d6438fdbbd00c3 (patch) | |
| tree | e32a063567fd32e64383e6844477cb42e6cfba00 /src/cz/crcs/ectester/standalone/test/SignatureTestable.java | |
| parent | cccf2c9c382fa63c68a6c3821d587bc2caa72b05 (diff) | |
| download | ECTester-35bdac1fff6e98485d5fbef870d6438fdbbd00c3.tar.gz ECTester-35bdac1fff6e98485d5fbef870d6438fdbbd00c3.tar.zst ECTester-35bdac1fff6e98485d5fbef870d6438fdbbd00c3.zip | |
Implement basic lib tests.
Diffstat (limited to 'src/cz/crcs/ectester/standalone/test/SignatureTestable.java')
| -rw-r--r-- | src/cz/crcs/ectester/standalone/test/SignatureTestable.java | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/standalone/test/SignatureTestable.java b/src/cz/crcs/ectester/standalone/test/SignatureTestable.java new file mode 100644 index 0000000..5f58b4a --- /dev/null +++ b/src/cz/crcs/ectester/standalone/test/SignatureTestable.java @@ -0,0 +1,102 @@ +package cz.crcs.ectester.standalone.test; + +import cz.crcs.ectester.common.test.TestException; +import cz.crcs.ectester.common.test.Testable; + +import java.security.InvalidKeyException; +import java.security.Signature; +import java.security.SignatureException; +import java.security.interfaces.ECPrivateKey; +import java.security.interfaces.ECPublicKey; + +public class SignatureTestable implements Testable { + + private Signature sig; + private ECPrivateKey signKey; + private ECPublicKey verifyKey; + private byte[] data; + private byte[] signature; + private boolean verified; + + private boolean hasRun; + private boolean error; + private boolean ok; + + public SignatureTestable(Signature sig, ECPrivateKey signKey, ECPublicKey verifyKey, byte[] data) { + this.sig = sig; + this.signKey = signKey; + this.verifyKey = verifyKey; + this.data = data; + } + + public byte[] getSignature() { + return signature; + } + + public boolean getVerified() { + return verified; + } + + @Override + public boolean hasRun() { + return hasRun; + } + + @Override + public void run() throws TestException { + try { + sig.initSign(signKey); + } catch (InvalidKeyException e) { + throw new TestException(e); + } + + try { + sig.update(data); + } catch (SignatureException e) { + ok = false; + hasRun = true; + return; + } + + try { + signature = sig.sign(); + } catch (SignatureException e) { + ok = false; + hasRun = true; + return; + } + + try { + sig.initVerify(verifyKey); + } catch (InvalidKeyException e) { + throw new TestException(e); + } + + try { + sig.update(data); + } catch (SignatureException e) { + ok = false; + hasRun = true; + return; + } + + try { + verified = sig.verify(signature); + } catch (SignatureException e) { + ok = false; + hasRun = true; + } + ok = true; + hasRun = true; + } + + @Override + public boolean ok() { + return ok; + } + + @Override + public boolean error() { + return error; + } +} |
