diff options
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) { |
