aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml5
m---------ext/boringssl0
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/Makefile8
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/botan.cpp1
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/ippcp.c41
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c22
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c26
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/nettle.c6
8 files changed, 55 insertions, 54 deletions
diff --git a/.travis.yml b/.travis.yml
index aa377e2..2dcc663 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
+os: linux
dist: xenial
addons:
apt:
@@ -45,7 +46,7 @@ before_deploy:
deploy:
provider: releases
- api_key:
+ token:
secure: q2aJvu32K+nfbMR60nFCEkn+jYCKprlCRlIoPjuRz1HySX233Ccwpx1CAdNzEjY6FDFcoReKAg6r5vdPjJ4FRPAQ23TxffIYZPkykL5K/pUZJbM5xkazJY0Fp8i6Vyl0JfeanVib1PTyOSugplhCttFk5nb9JUFV36Tre66XntOl5y80Trn94F5aTlRjfW26UH65W7Aa6WZ0N4OX/ZsX+vEOJPAu+RLfOq9oBOx/loB8ntYM/e/6bEwJp6EedRQLDsiS4NavP3svH+GXsPLs5p3soyRXYsvvGKVnVjcjZURxDDdxv5YuCWUUfl9PbNB+Mqmx/HQxl50BKoKFqwap1+TnlbuTAiWaXeh3zdXuGB+TPg8KE8h6ueDneHd3Lpivgq79IvPWIH+N4b3Pa952+rD+JKBZ807efB+97OtWrkQL7/sLZESQUdIszE724HHOiArKpNajIX+kN6NJdul5xFCiQQHG+O7iDFQBavCGM9fk63mZRyGPxZQzS06BV2vIIHg0yx3igN+OKKMFCH+P3hYR1zL6o65OlgbL1ifTZ18GDvmVRNdi53/fxQ2n/mQmI4tQpn4ZB7Ddoxx4GlpjFjzdKk/P9nKwng0M9wrp8row/vb5S+1aPwSxp9/4ASP9dkvLcNjTkWhmGPrWe+82Y9JPK47uesx0YeaVI2C7IR0=
file:
- "dist/ECTesterReader-dist.jar"
@@ -55,7 +56,7 @@ deploy:
- "dist/ECTesterStandalone-dist.jar"
- "dist/ECTesterStandalone.jar"
- "dist/ECTester.zip"
- skip_cleanup: true
+ cleanup: false
on:
tags: true
repo: crocs-muni/ECTester
diff --git a/ext/boringssl b/ext/boringssl
-Subproject 974f4dddfb30540a8aed25d1cf9623ecfb2a1c2
+Subproject 74161f485b5d54fe963cbd3d081b718ec84d2e0
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/Makefile b/src/cz/crcs/ectester/standalone/libs/jni/Makefile
index 3cba91c..322c9c5 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/Makefile
+++ b/src/cz/crcs/ectester/standalone/libs/jni/Makefile
@@ -125,13 +125,17 @@ botan.o: botan.cpp
# Crypto++ shim
+CRYPTOPP_NAME := "libcrypto++"
+ifeq ($(shell pkg-config --exists $(CRYPTOPP_NAME); echo $$?),1)
+ CRYPTOPP_NAME := "libcryptopp"
+endif
cryptopp: cryptopp_provider.so
cryptopp_provider.so: cryptopp.o cpp_utils.o | lib_timing.so
- $(CXX) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell pkg-config --libs libcrypto++) -l:lib_timing.so
+ $(CXX) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell pkg-config --libs $(CRYPTOPP_NAME)) -l:lib_timing.so
cryptopp.o: cryptopp.cpp
- $(CXX) $(shell pkg-config --cflags libcrypto++) $(CXXFLAGS) -c $<
+ $(CXX) $(shell pkg-config --cflags $(CRYPTOPP_NAME)) $(CXXFLAGS) -c $<
# mbedTLS shim
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp b/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
index b888229..c0d249c 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
+++ b/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
@@ -1,7 +1,6 @@
#include "native.h"
#include <string>
-#include <botan/botan.h>
#include <botan/version.h>
#include <botan/rng.h>
#include <botan/secmem.h>
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c b/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
index 9846f71..98a4c36 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
@@ -216,7 +216,7 @@ static jobject bn_to_biginteger(JNIEnv *env, const IppsBigNumState *bn) {
bn_size *= sizeof(Ipp32u);
jbyteArray bytes = (*env)->NewByteArray(env, bn_size);
jbyte *data = (*env)->GetByteArrayElements(env, bytes, NULL);
- ippsGetOctString_BN(data, bn_size, bn);
+ ippsGetOctString_BN((Ipp8u *) data, bn_size, bn);
(*env)->ReleaseByteArrayElements(env, bytes, data, 0);
jobject result = (*env)->NewObject(env, biginteger_class, biginteger_init, 1, bytes);
return result;
@@ -229,11 +229,12 @@ static IppsBigNumState *biginteger_to_bn(JNIEnv *env, jobject bigint) {
jsize byte_length = (*env)->GetArrayLength(env, byte_array);
jbyte *byte_data = (*env)->GetByteArrayElements(env, byte_array, NULL);
IppsBigNumState *result = new_bn(byte_length * 8);
- ippsSetOctString_BN(byte_data, byte_length, result);
+ ippsSetOctString_BN((Ipp8u *) byte_data, byte_length, result);
(*env)->ReleaseByteArrayElements(env, byte_array, byte_data, JNI_ABORT);
return result;
}
+/*
static void biginteger_print(JNIEnv *env, jobject bigint) {
jmethodID to_string = (*env)->GetMethodID(env, biginteger_class, "toString", "(I)Ljava/lang/String;");
jstring big_string = (*env)->CallObjectMethod(env, bigint, to_string, (jint) 16);
@@ -245,6 +246,7 @@ static void biginteger_print(JNIEnv *env, jobject bigint) {
printf("%s\n", raw_string);
fflush(stdout);
}
+*/
static IppsECCPState *create_curve(JNIEnv *env, jobject params, int *keysize) {
jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;");
@@ -255,7 +257,6 @@ static IppsECCPState *create_curve(JNIEnv *env, jobject params, int *keysize) {
jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I");
jint bits = (*env)->CallIntMethod(env, field, get_bits);
- jint bytes = (bits + 7) / 8;
jmethodID get_p = (*env)->GetMethodID(env, fp_field_class, "getP", "()Ljava/math/BigInteger;");
jobject p = (*env)->CallObjectMethod(env, field, get_p);
@@ -311,7 +312,7 @@ static jobject create_ec_param_spec(JNIEnv *env, int keysize, IppsECCPState *cur
IppsBigNumState *order_bn = new_bn(ord_bits);
int cofactor;
- IppStatus err = ippsECCPGet(p_bn, a_bn, b_bn, gx_bn, gy_bn, order_bn, &cofactor, curve);
+ ippsECCPGet(p_bn, a_bn, b_bn, gx_bn, gy_bn, order_bn, &cofactor, curve);
jobject p = bn_to_biginteger(env, p_bn);
jmethodID fp_field_init = (*env)->GetMethodID(env, fp_field_class, "<init>", "(Ljava/math/BigInteger;)V");
@@ -377,13 +378,13 @@ static jobject generate_from_curve(JNIEnv *env, int keysize, IppsECCPState *curv
jbyteArray pub_bytes = (*env)->NewByteArray(env, 2 * coord_bytes + 1);
jbyte *pub_data = (*env)->GetByteArrayElements(env, pub_bytes, NULL);
pub_data[0] = 0x04;
- bn_get(x, pub_data + 1, coord_bytes);
- bn_get(y, pub_data + 1 + coord_bytes, coord_bytes);
+ bn_get(x, (uint8_t *) (pub_data + 1), coord_bytes);
+ bn_get(y, (uint8_t *) (pub_data + 1 + coord_bytes), coord_bytes);
(*env)->ReleaseByteArrayElements(env, pub_bytes, pub_data, 0);
jbyteArray priv_bytes = (*env)->NewByteArray(env, ord_bytes);
jbyte *priv_data = (*env)->GetByteArrayElements(env, priv_bytes, NULL);
- bn_get(secret, priv_data, ord_bytes);
+ bn_get(secret, (uint8_t *) priv_data, ord_bytes);
(*env)->ReleaseByteArrayElements(env, priv_bytes, priv_data, 0);
free(point);
@@ -477,8 +478,8 @@ static IppsECCPPointState *bytearray_to_pubkey(JNIEnv *env, jbyteArray pubkey, j
jint coord_size = (keysize + 7) / 8;
jbyte *pub_data = (*env)->GetByteArrayElements(env, pubkey, NULL);
- ippsSetOctString_BN(pub_data + 1, coord_size, x_bn);
- ippsSetOctString_BN(pub_data + 1 + coord_size, coord_size, y_bn);
+ ippsSetOctString_BN((Ipp8u *) (pub_data + 1), coord_size, x_bn);
+ ippsSetOctString_BN((Ipp8u *) (pub_data + 1 + coord_size), coord_size, y_bn);
(*env)->ReleaseByteArrayElements(env, pubkey, pub_data, JNI_ABORT);
IppsECCPPointState *pub = new_point(keysize);
@@ -493,7 +494,7 @@ static IppsBigNumState *bytearray_to_privkey(JNIEnv *env, jbyteArray privkey, Ip
ippsECCPGetOrderBitSize(&ord_bits, curve);
IppsBigNumState *priv_bn = new_bn(ord_bits);
jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey, NULL);
- ippsSetOctString_BN(priv_data, (*env)->GetArrayLength(env, privkey), priv_bn);
+ ippsSetOctString_BN((Ipp8u *) priv_data, (*env)->GetArrayLength(env, privkey), priv_bn);
(*env)->ReleaseByteArrayElements(env, privkey, priv_data, JNI_ABORT);
return priv_bn;
}
@@ -544,8 +545,8 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKey
jbyteArray result = (*env)->NewByteArray(env, coord_size);
jbyte *data = (*env)->GetByteArrayElements(env, result, NULL);
- bn_get(share, data, coord_size);
- (*env)->ReleaseBooleanArrayElements(env, result, data, 0);
+ bn_get(share, (uint8_t *) data, coord_size);
+ (*env)->ReleaseByteArrayElements(env, result, data, 0);
free(share);
return result;
}
@@ -581,8 +582,8 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
jint data_size = (*env)->GetArrayLength(env, data);
IppsBigNumState *data_bn = new_bn(data_size * 8);
jbyte *data_data = (*env)->GetByteArrayElements(env, data, NULL);
- ippsSetOctString_BN(data_data, data_size, data_bn);
- (*env)->ReleaseBooleanArrayElements(env, data, data_data, JNI_ABORT);
+ ippsSetOctString_BN((Ipp8u *) data_data, data_size, data_bn);
+ (*env)->ReleaseByteArrayElements(env, data, data_data, JNI_ABORT);
jbyteArray result = NULL;
jbyte r_buf[ord_bytes];
@@ -606,8 +607,8 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
}
native_timing_stop();
- bn_get(r, r_buf, ord_bytes);
- bn_get(s, s_buf, ord_bytes);
+ bn_get(r, (uint8_t *) r_buf, ord_bytes);
+ bn_get(s, (uint8_t *) s_buf, ord_bytes);
result = asn1_der_encode(env, r_buf, ord_bytes, s_buf, ord_bytes);
@@ -661,17 +662,17 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
ippsECCPGetOrderBitSize(&ord_bits, curve);
IppsBigNumState *r = new_bn(ord_bits);
- ippsSetOctString_BN(r_data, r_len, r);
+ ippsSetOctString_BN((Ipp8u *) r_data, r_len, r);
free(r_data);
IppsBigNumState *s = new_bn(ord_bits);
- ippsSetOctString_BN(s_data, s_len, s);
+ ippsSetOctString_BN((Ipp8u *) s_data, s_len, s);
free(s_data);
jint data_size = (*env)->GetArrayLength(env, data);
IppsBigNumState *data_bn = new_bn(data_size * 8);
jbyte *data_data = (*env)->GetByteArrayElements(env, data, NULL);
- ippsSetOctString_BN(data_data, data_size, data_bn);
- (*env)->ReleaseBooleanArrayElements(env, data, data_data, JNI_ABORT);
+ ippsSetOctString_BN((Ipp8u *) data_data, data_size, data_bn);
+ (*env)->ReleaseByteArrayElements(env, data, data_data, JNI_ABORT);
IppECResult result;
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c b/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
index d336a4f..8324dd4 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
@@ -167,8 +167,8 @@ static psEccCurve_t *create_curve(JNIEnv *env, jobject params) {
jmethodID get_n = (*env)->GetMethodID(env, ec_parameter_spec_class, "getOrder", "()Ljava/math/BigInteger;");
jobject n = (*env)->CallObjectMethod(env, params, get_n);
- jmethodID get_h = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCofactor", "()I");
- jint h = (*env)->CallIntMethod(env, params, get_h);
+ //jmethodID get_h = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCofactor", "()I");
+ //jint h = (*env)->CallIntMethod(env, params, get_h);
jmethodID get_bitlength = (*env)->GetMethodID(env, biginteger_class, "bitLength", "()I");
jint ord_bits = (*env)->CallIntMethod(env, n, get_bitlength);
@@ -210,7 +210,7 @@ static jobject generate_from_curve(JNIEnv *env, const psEccCurve_t *curve) {
jbyteArray priv = (*env)->NewByteArray(env, pstm_unsigned_bin_size(&key->k));
jbyte *priv_data = (*env)->GetByteArrayElements(env, priv, NULL);
- pstm_to_unsigned_bin(NULL, &key->k, priv_data);
+ pstm_to_unsigned_bin(NULL, &key->k, (unsigned char *) priv_data);
(*env)->ReleaseByteArrayElements(env, priv, priv_data, 0);
jint xlen = pstm_unsigned_bin_size(&key->pubkey.x);
@@ -218,8 +218,8 @@ static jobject generate_from_curve(JNIEnv *env, const psEccCurve_t *curve) {
jbyteArray pub = (*env)->NewByteArray(env, 1 + xlen + ylen);
jbyte *pub_data = (*env)->GetByteArrayElements(env, pub, NULL);
pub_data[0] = 0x04;
- pstm_to_unsigned_bin(NULL, &key->pubkey.x, pub_data + 1);
- pstm_to_unsigned_bin(NULL, &key->pubkey.y, pub_data + 1 + xlen);
+ pstm_to_unsigned_bin(NULL, &key->pubkey.x, (unsigned char *) (pub_data + 1));
+ pstm_to_unsigned_bin(NULL, &key->pubkey.y, (unsigned char *) (pub_data + 1 + xlen));
(*env)->ReleaseByteArrayElements(env, pub, pub_data, 0);
jobject ec_param_spec = create_ec_param_spec(env, curve);
@@ -282,7 +282,7 @@ static psEccKey_t *bytearray_to_privkey(JNIEnv *env, jbyteArray privkey, const p
pstm_init_for_read_unsigned_bin(NULL, &result->k, curve->size);
jint len = (*env)->GetArrayLength(env, privkey);
jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey, NULL);
- pstm_read_unsigned_bin(&result->k, priv_data, len);
+ pstm_read_unsigned_bin(&result->k, (unsigned char *) priv_data, len);
(*env)->ReleaseByteArrayElements(env, privkey, priv_data, JNI_ABORT);
result->type = PS_PRIVKEY;
@@ -298,8 +298,8 @@ static psEccKey_t *bytearray_to_pubkey(JNIEnv *env, jbyteArray pubkey, const psE
pstm_init_for_read_unsigned_bin(NULL, &result->pubkey.y, curve->size);
pstm_init_for_read_unsigned_bin(NULL, &result->pubkey.z, curve->size);
jbyte *pubkey_data = (*env)->GetByteArrayElements(env, pubkey, NULL);
- pstm_read_unsigned_bin(&result->pubkey.x, pubkey_data + 1, curve->size);
- pstm_read_unsigned_bin(&result->pubkey.y, pubkey_data + 1 + curve->size, curve->size);
+ pstm_read_unsigned_bin(&result->pubkey.x, (unsigned char *) (pubkey_data + 1), curve->size);
+ pstm_read_unsigned_bin(&result->pubkey.y, (unsigned char *) (pubkey_data + 1 + curve->size), curve->size);
(*env)->ReleaseByteArrayElements(env, pubkey, pubkey_data, JNI_ABORT);
pstm_set(&result->pubkey.z, 1);
result->type = PS_PUBKEY;
@@ -318,7 +318,7 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKey
psSize_t outlen = curve->size;
native_timing_start();
- int32_t err = psEccGenSharedSecret(NULL, priv, pub, result_data, &outlen, NULL);
+ int32_t err = psEccGenSharedSecret(NULL, priv, pub, (unsigned char *) result_data, &outlen, NULL);
native_timing_stop();
(*env)->ReleaseByteArrayElements(env, result, result_data, 0);
@@ -350,7 +350,7 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
jint data_len = (*env)->GetArrayLength(env, data);
jbyte *data_data = (*env)->GetByteArrayElements(env, data, NULL);
native_timing_start();
- int32_t err = psEccDsaSign(NULL, priv, data_data, data_len, sig, &siglen, 0, NULL);
+ int32_t err = psEccDsaSign(NULL, priv, (unsigned char *) data_data, data_len, sig, &siglen, 0, NULL);
native_timing_stop();
psEccDeleteKey(&priv);
@@ -380,7 +380,7 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
int32_t result;
native_timing_start();
- int32_t err = psEccDsaVerify(NULL, pub, data_data, data_len, sig_data, sig_len, &result, NULL);
+ int32_t err = psEccDsaVerify(NULL, pub, (unsigned char *) data_data, data_len, (unsigned char *) sig_data, sig_len, &result, NULL);
native_timing_stop();
(*env)->ReleaseByteArrayElements(env, data, data_data, JNI_ABORT);
(*env)->ReleaseByteArrayElements(env, signature, sig_data, JNI_ABORT);
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c b/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
index 05010cf..2cff6ff 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
@@ -187,7 +187,7 @@ static jobject biginteger_from_mpi(JNIEnv *env, const mbedtls_mpi *mpi) {
size_t size = mbedtls_mpi_size(mpi);
jbyteArray bytes = (*env)->NewByteArray(env, size);
jbyte *data = (*env)->GetByteArrayElements(env, bytes, NULL);
- mbedtls_mpi_write_binary(mpi, data, size);
+ mbedtls_mpi_write_binary(mpi, (unsigned char *) data, size);
(*env)->ReleaseByteArrayElements(env, bytes, data, 0);
jobject result = (*env)->NewObject(env, biginteger_class, biginteger_init, 1, bytes);
return result;
@@ -199,7 +199,7 @@ static void mpi_from_biginteger(JNIEnv* env, jobject biginteger, mbedtls_mpi *mp
jbyteArray byte_array = (jbyteArray) (*env)->CallObjectMethod(env, biginteger, to_byte_array);
jsize byte_length = (*env)->GetArrayLength(env, byte_array);
jbyte *byte_data = (*env)->GetByteArrayElements(env, byte_array, NULL);
- mbedtls_mpi_read_binary(mpi, byte_data, byte_length);
+ mbedtls_mpi_read_binary(mpi, (unsigned char *) byte_data, byte_length);
(*env)->ReleaseByteArrayElements(env, byte_array, byte_data, JNI_ABORT);
}
@@ -305,14 +305,14 @@ static jobject generate_from_curve(JNIEnv *env, mbedtls_ecp_group *group) {
unsigned long key_bytes = (keysize + 7) / 8;
jbyteArray priv_bytes = (*env)->NewByteArray(env, key_bytes);
jbyte *key_priv = (*env)->GetByteArrayElements(env, priv_bytes, NULL);
- mbedtls_mpi_write_binary(&d, key_priv, key_bytes);
+ mbedtls_mpi_write_binary(&d, (unsigned char *) key_priv, key_bytes);
(*env)->ReleaseByteArrayElements(env, priv_bytes, key_priv, 0);
unsigned long key_len = 2*key_bytes + 1;
jbyteArray pub_bytes = (*env)->NewByteArray(env, key_len);
jbyte *key_pub = (*env)->GetByteArrayElements(env, pub_bytes, NULL);
size_t out_key_len = 0;
- mbedtls_ecp_point_write_binary(group, &Q, MBEDTLS_ECP_PF_UNCOMPRESSED, &out_key_len, key_pub, key_len);
+ mbedtls_ecp_point_write_binary(group, &Q, MBEDTLS_ECP_PF_UNCOMPRESSED, &out_key_len, (unsigned char *) key_pub, key_len);
(*env)->ReleaseByteArrayElements(env, pub_bytes, key_pub, 0);
jobject ec_param_spec = create_ec_param_spec(env, group);
@@ -397,7 +397,7 @@ static void create_pubkey(JNIEnv *env, jbyteArray pubkey, mbedtls_ecp_group *cur
mbedtls_ecp_point_init(pub);
jsize pub_size = (*env)->GetArrayLength(env, pubkey);
jbyte *key_pub = (*env)->GetByteArrayElements(env, pubkey, NULL);
- mbedtls_ecp_point_read_binary(curve, pub, key_pub, pub_size);
+ mbedtls_ecp_point_read_binary(curve, pub, (unsigned char *) key_pub, pub_size);
(*env)->ReleaseByteArrayElements(env, pubkey, key_pub, JNI_ABORT);
}
@@ -405,7 +405,7 @@ static void create_privkey(JNIEnv *env, jbyteArray privkey, mbedtls_mpi *priv) {
mbedtls_mpi_init(priv);
jsize priv_size = (*env)->GetArrayLength(env, privkey);
jbyte *key_priv = (*env)->GetByteArrayElements(env, privkey, NULL);
- mbedtls_mpi_read_binary(priv, key_priv, priv_size);
+ mbedtls_mpi_read_binary(priv, (unsigned char *) key_priv, priv_size);
(*env)->ReleaseByteArrayElements(env, privkey, key_priv, JNI_ABORT);
}
@@ -439,7 +439,7 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKey
unsigned long key_bytes = (keysize + 7) / 8;
jbyteArray result_bytes = (*env)->NewByteArray(env, key_bytes);
jbyte *result_data = (*env)->GetByteArrayElements(env, result_bytes, NULL);
- mbedtls_mpi_write_binary(&result, result_data, key_bytes);
+ mbedtls_mpi_write_binary(&result, (unsigned char *) result_data, key_bytes);
(*env)->ReleaseByteArrayElements(env, result_bytes, result_data, 0);
mbedtls_mpi_free(&result);
@@ -471,7 +471,7 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
jbyte *data_data = (*env)->GetByteArrayElements(env, data, NULL);
native_timing_start();
- int error = mbedtls_ecdsa_sign(&curve, &r, &s, &priv, data_data, data_size, ctr_drbg_wrapper, &ctr_drbg);
+ int error = mbedtls_ecdsa_sign(&curve, &r, &s, &priv, (unsigned char *) data_data, data_size, ctr_drbg_wrapper, &ctr_drbg);
native_timing_stop();
mbedtls_mpi_free(&priv);
@@ -486,10 +486,10 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
jsize rlen = (mbedtls_mpi_bitlen(&r) + 7) / 8;
jbyte r_bytes[rlen];
- mbedtls_mpi_write_binary(&r, r_bytes, rlen);
+ mbedtls_mpi_write_binary(&r, (unsigned char *) r_bytes, rlen);
jsize slen = (mbedtls_mpi_bitlen(&s) + 7) / 8;
jbyte s_bytes[slen];
- mbedtls_mpi_write_binary(&s, s_bytes, slen);
+ mbedtls_mpi_write_binary(&s, (unsigned char *) s_bytes, slen);
mbedtls_mpi_free(&r);
mbedtls_mpi_free(&s);
@@ -516,10 +516,10 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
mbedtls_mpi r;
mbedtls_mpi_init(&r);
- mbedtls_mpi_read_binary(&r, r_bytes, rlen);
+ mbedtls_mpi_read_binary(&r, (unsigned char *) r_bytes, rlen);
mbedtls_mpi s;
mbedtls_mpi_init(&s);
- mbedtls_mpi_read_binary(&s, s_bytes, slen);
+ mbedtls_mpi_read_binary(&s, (unsigned char *) s_bytes, slen);
free(r_bytes);
free(s_bytes);
@@ -527,7 +527,7 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
jbyte *data_data = (*env)->GetByteArrayElements(env, data, NULL);
native_timing_start();
- int error = mbedtls_ecdsa_verify(&curve, data_data, data_size, &pub, &r, &s);
+ int error = mbedtls_ecdsa_verify(&curve, (unsigned char *) data_data, data_size, &pub, &r, &s);
native_timing_stop();
(*env)->ReleaseByteArrayElements(env, data, data_data, JNI_ABORT);
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/nettle.c b/src/cz/crcs/ectester/standalone/libs/jni/nettle.c
index 44d39cd..e8d874a 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/nettle.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/nettle.c
@@ -210,7 +210,6 @@ JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPai
const char* utf_name = (*env)->GetStringUTFChars(env, name, NULL);
const struct ecc_curve* curve;
int byte_size;
- int rc;
char *curve_name[5] = {"secp192r1", "secp224r1", "secp256r1", "secp384r1", "secp521r1"};
int byte_sizes[] = {24, 28, 32, 48, 66};
for (int i = 0; i < sizeof(curve_name); i++) {
@@ -265,7 +264,6 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKey
jstring name = (*env)->CallObjectMethod(env, params, get_name);
const char* utf_name = (*env)->GetStringUTFChars(env, name, NULL);
const struct ecc_curve* curve;
- int rc;
char *curve_name[5] = {"secp192r1", "secp224r1", "secp256r1", "secp384r1", "secp521r1"};
int byte_sizes[] = {24, 28, 32, 48, 66};
int byte_size;
@@ -381,6 +379,7 @@ size_t signature_to_der(struct dsa_signature* signature, unsigned char *result,
memcpy(result + index, s_tmp, s_tmpSize);
return wholeSize;
}
+
// credit to https://github.com/crocs-muni/ECTester/blob/master/src/cz/crcs/ectester/standalone/libs/jni/c_utils.cs
int der_to_signature(struct dsa_signature* signature, unsigned char* der) {
int index = 0;
@@ -421,7 +420,6 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig
jstring name = (*env)->CallObjectMethod(env, params, get_name);
const char* utf_name = (*env)->GetStringUTFChars(env, name, NULL);
const struct ecc_curve* curve;
- int rc;
int byte_size;
char *curve_name[5] = {"secp192r1", "secp224r1", "secp256r1", "secp384r1", "secp521r1"};
int byte_sizes[] = {24, 28, 32, 48, 66};
@@ -470,7 +468,6 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
jstring name = (*env)->CallObjectMethod(env, params, get_name);
const char* utf_name = (*env)->GetStringUTFChars(env, name, NULL);
const struct ecc_curve* curve;
- int rc;
char *curve_name[5] = {"secp192r1", "secp224r1", "secp256r1", "secp384r1", "secp521r1"};
for (int i = 0; i < sizeof(curve_name); i++) {
if (strcasecmp(utf_name, curve_name[i]) == 0) {
@@ -488,7 +485,6 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
ecc_point_init(&eccPubPoint, curve);
barray_to_pubkey(env, &eccPubPoint, pubkey);
- jsize sig_len = (*env)->GetArrayLength(env, signature);
jbyte *sig_data = (*env)->GetByteArrayElements(env, signature, NULL);
struct dsa_signature eccSignature;