summaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java')
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
index 81c7948..b60f2c6 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
@@ -92,6 +92,23 @@ public abstract class NativeSignatureSpi extends SignatureSpi {
abstract boolean verify(byte[] signature, byte[] data, byte[] pubkey, ECParameterSpec params);
}
+ private abstract static class ExtendedSignatureSpi extends NativeSignatureSpi {
+
+ @Override
+ protected byte[] engineSign() throws SignatureException {
+ return sign(buffer.toByteArray(), signKey, params);
+ }
+
+ @Override
+ protected boolean engineVerify(byte[] sigBytes) throws SignatureException {
+ return verify(sigBytes, buffer.toByteArray(), verifyKey, params);
+ }
+
+ abstract byte[] sign(byte[] data, ECPrivateKey privkey, ECParameterSpec params);
+
+ abstract boolean verify(byte[] signature, byte[] data, ECPublicKey pubkey, ECParameterSpec params);
+ }
+
public static class TomCryptRaw extends SimpleSignatureSpi {
@Override
@@ -311,7 +328,7 @@ public abstract class NativeSignatureSpi extends SignatureSpi {
}
}
- public abstract static class Mscng extends SimpleSignatureSpi {
+ public abstract static class Mscng extends ExtendedSignatureSpi {
private String type;
public Mscng(String type) {
@@ -319,10 +336,10 @@ public abstract class NativeSignatureSpi extends SignatureSpi {
}
@Override
- native byte[] sign(byte[] data, byte[] privkey, ECParameterSpec params);
+ native byte[] sign(byte[] data, ECPrivateKey privkey, ECParameterSpec params);
@Override
- native boolean verify(byte[] signature, byte[] data, byte[] pubkey, ECParameterSpec params);
+ native boolean verify(byte[] signature, byte[] data, ECPublicKey pubkey, ECParameterSpec params);
}
public static class MscngECDSAwithSHA1 extends Mscng {