diff options
| -rw-r--r-- | .travis.yml | 5 | ||||
| m--------- | ext/boringssl | 0 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/Makefile | 8 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/botan.cpp | 1 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/ippcp.c | 41 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c | 22 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c | 26 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/nettle.c | 6 |
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; |
