aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-11-29 02:52:22 +0100
committerJ08nY2017-11-29 02:52:22 +0100
commit80fb4a2dcc45ef66bf476e260b1107e0fa96b280 (patch)
tree62408034660473b5304d396ed23ca09f5d7dae20
parent03265f4cf09b7bb59c09af722b8f44445a635d83 (diff)
downloadECTester-80fb4a2dcc45ef66bf476e260b1107e0fa96b280.tar.gz
ECTester-80fb4a2dcc45ef66bf476e260b1107e0fa96b280.tar.zst
ECTester-80fb4a2dcc45ef66bf476e260b1107e0fa96b280.zip
-rw-r--r--src/cz/crcs/ectester/standalone/ECTesterStandalone.java9
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java46
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java31
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java49
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c33
5 files changed, 142 insertions, 26 deletions
diff --git a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java b/src/cz/crcs/ectester/standalone/ECTesterStandalone.java
index 9fca2b6..8125485 100644
--- a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java
+++ b/src/cz/crcs/ectester/standalone/ECTesterStandalone.java
@@ -59,6 +59,9 @@ public class ECTesterStandalone {
return;
}
+ for (ECLibrary lib : libs) {
+ lib.initialize();
+ }
cfg = new Config(libs);
if (!cfg.readOptions(cli)) {
@@ -66,10 +69,6 @@ public class ECTesterStandalone {
}
dataStore = new EC_Store();
- for (ECLibrary lib : libs) {
- lib.initialize();
- }
-
if (cli.isNext("list-libs")) {
listLibraries();
} else if (cli.isNext("list-data")) {
@@ -171,7 +170,7 @@ public class ECTesterStandalone {
System.out.println("\t\t- KeyAgreements: " + String.join(",", eckas.stream().map(KeyAgreementIdent::getName).collect(Collectors.toList())));
}
Set<SignatureIdent> sigs = lib.getSigs();
- if (!eckas.isEmpty()) {
+ if (!sigs.isEmpty()) {
System.out.println("\t\t- Signatures: " + String.join(",", sigs.stream().map(SignatureIdent::getName).collect(Collectors.toList())));
}
Set<String> curves = lib.getCurves();
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java
new file mode 100644
index 0000000..d1b1f42
--- /dev/null
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java
@@ -0,0 +1,46 @@
+package cz.crcs.ectester.standalone.libs.jni;
+
+import javax.crypto.KeyAgreementSpi;
+import javax.crypto.SecretKey;
+import javax.crypto.ShortBufferException;
+import java.security.*;
+import java.security.spec.AlgorithmParameterSpec;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public abstract class NativeKeyAgreementSpi extends KeyAgreementSpi {
+ @Override
+ protected void engineInit(Key key, SecureRandom random) throws InvalidKeyException {
+
+ }
+
+ @Override
+ protected void engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException {
+
+ }
+
+ @Override
+ protected Key engineDoPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException {
+ return null;
+ }
+
+ @Override
+ protected byte[] engineGenerateSecret() throws IllegalStateException {
+ return new byte[0];
+ }
+
+ @Override
+ protected int engineGenerateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException {
+ return 0;
+ }
+
+ @Override
+ protected SecretKey engineGenerateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException {
+ return null;
+ }
+
+ public static class TomCrypt extends NativeKeyAgreementSpi {
+
+ }
+}
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java
new file mode 100644
index 0000000..6b4e5e0
--- /dev/null
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java
@@ -0,0 +1,31 @@
+package cz.crcs.ectester.standalone.libs.jni;
+
+import java.security.InvalidAlgorithmParameterException;
+import java.security.KeyPair;
+import java.security.KeyPairGeneratorSpi;
+import java.security.SecureRandom;
+import java.security.spec.AlgorithmParameterSpec;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public abstract class NativeKeyPairGeneratorSpi extends KeyPairGeneratorSpi {
+ @Override
+ public void initialize(int keysize, SecureRandom random) {
+
+ }
+
+ @Override
+ public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException {
+
+ }
+
+ @Override
+ public KeyPair generateKeyPair() {
+ return null;
+ }
+
+ public static class TomCrypt extends NativeKeyPairGeneratorSpi {
+
+ }
+}
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
new file mode 100644
index 0000000..0c6332e
--- /dev/null
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java
@@ -0,0 +1,49 @@
+package cz.crcs.ectester.standalone.libs.jni;
+
+import java.security.*;
+
+public abstract class NativeSignatureSpi extends SignatureSpi {
+ @Override
+ protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
+
+ }
+
+ @Override
+ protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
+
+ }
+
+ @Override
+ protected void engineUpdate(byte b) throws SignatureException {
+
+ }
+
+ @Override
+ protected void engineUpdate(byte[] b, int off, int len) throws SignatureException {
+
+ }
+
+ @Override
+ protected byte[] engineSign() throws SignatureException {
+ return new byte[0];
+ }
+
+ @Override
+ protected boolean engineVerify(byte[] sigBytes) throws SignatureException {
+ return false;
+ }
+
+ @Override
+ protected void engineSetParameter(String param, Object value) throws InvalidParameterException {
+
+ }
+
+ @Override
+ protected Object engineGetParameter(String param) throws InvalidParameterException {
+ return null;
+ }
+
+ public static class TomCrypt extends NativeSignatureSpi {
+
+ }
+}
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
index 7f8f303..f59c1bd 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
@@ -20,28 +20,19 @@ JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeProvider_
jclass provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeProvider$TomCrypt");
- jmethodID put = (*env)->GetMethodID(env, provider_class, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+ jmethodID provider_put = (*env)->GetMethodID(env, provider_class, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
-/* *//* Just test ecc key generation at this time. *//*
- ecc_key mykey;
- prng_state prng;
- int err;
- *//* register yarrow *//*
- if (register_prng(&yarrow_desc) == -1) {
- printf("Error registering Yarrow\n");
- return;
- }
- *//* setup the PRNG *//*
- if ((err = rng_make_prng(128, find_prng("yarrow"), &prng, NULL)) != CRYPT_OK) {
- printf("Error setting up PRNG, %s\n", error_to_string(err));
- return;
- }
- *//* make a 192-bit ECC key *//*
- if ((err = ecc_make_key(&prng, find_prng("yarrow"), 24, &mykey)) != CRYPT_OK) {
- printf("Error making key: %s\n", error_to_string(err));
- return;
- }
- return;*/
+ jstring ec = (*env)->NewStringUTF(env, "KeyPairGenerator.EC");
+ jstring ec_value = (*env)->NewStringUTF(env, "cz.crcs.ectester.standalone.libs.jni.NativeKeyPairGeneratorSpi$TomCrypt");
+ (*env)->CallObjectMethod(env, this, provider_put, ec, ec_value);
+
+ jstring ecdh = (*env)->NewStringUTF(env, "KeyAgreement.ECDH");
+ jstring ecdh_value = (*env)->NewStringUTF(env, "cz.crcs.ectester.standalone.libs.jni.NativeKeyAgreementSpi$TomCrypt");
+ (*env)->CallObjectMethod(env, this, provider_put, ecdh, ecdh_value);
+
+ jstring ecdsa = (*env)->NewStringUTF(env, "Signature.ECDSA");
+ jstring ecdsa_value = (*env)->NewStringUTF(env, "cz.crcs.ectester.standalone.libs.jni.NativeSignatureSpi$TomCrypt");
+ (*env)->CallObjectMethod(env, this, provider_put, ecdsa, ecdsa_value);
}
JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_getCurves(JNIEnv *env, jobject this) {