From 2a8202e74846d191a321cca1202175af9db6107d Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 5 Nov 2020 01:45:06 +0100 Subject: Convert to sibs project --- lib/curve25519-donna/contrib/Curve25519Donna.c | 118 ------------------------- 1 file changed, 118 deletions(-) delete mode 100644 lib/curve25519-donna/contrib/Curve25519Donna.c (limited to 'lib/curve25519-donna/contrib/Curve25519Donna.c') diff --git a/lib/curve25519-donna/contrib/Curve25519Donna.c b/lib/curve25519-donna/contrib/Curve25519Donna.c deleted file mode 100644 index 71b816c..0000000 --- a/lib/curve25519-donna/contrib/Curve25519Donna.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - James Robson - Public domain. -*/ - -#include "Curve25519Donna.h" -#include -#include - -extern void curve25519_donna(unsigned char *output, const unsigned char *a, - const unsigned char *b); - -unsigned char* -as_unsigned_char_array(JNIEnv* env, jbyteArray array, int* len); - -jbyteArray as_byte_array(JNIEnv* env, unsigned char* buf, int len); - - -jbyteArray as_byte_array(JNIEnv* env, unsigned char* buf, int len) { - jbyteArray array = (*env)->NewByteArray(env, len); - (*env)->SetByteArrayRegion(env, array, 0, len, (jbyte*)buf); - - //int i; - //for (i = 0;i < len;++i) printf("%02x",(unsigned int) buf[i]); printf(" "); - //printf("\n"); - - return array; -} - -unsigned char* -as_unsigned_char_array(JNIEnv* env, jbyteArray array, int* len) { - - *len = (*env)->GetArrayLength(env, array); - unsigned char* buf = (unsigned char*)calloc(*len+1, sizeof(char)); - (*env)->GetByteArrayRegion (env, array, 0, *len, (jbyte*)buf); - return buf; - -} - -JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_curve25519Donna - (JNIEnv *env, jobject obj, jbyteArray a, jbyteArray b) { - - unsigned char o[32] = {0}; - int l1, l2; - unsigned char* a1 = as_unsigned_char_array(env, a, &l1); - unsigned char* b1 = as_unsigned_char_array(env, b, &l2); - - if ( !(l1 == 32 && l2 == 32) ) { - fprintf(stderr, "Error, must be length 32"); - return NULL; - } - - - curve25519_donna(o, (const unsigned char*)a1, (const unsigned char*)b1); - - free(a1); - free(b1); - - return as_byte_array(env, (unsigned char*)o, 32); -} - -JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_makePrivate - (JNIEnv *env, jobject obj, jbyteArray secret) { - - int len; - unsigned char* k = as_unsigned_char_array(env, secret, &len); - - if (len != 32) { - fprintf(stderr, "Error, must be length 32"); - return NULL; - } - - k[0] &= 248; - k[31] &= 127; - k[31] |= 64; - return as_byte_array(env, k, 32); -} - -JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_getPublic - (JNIEnv *env, jobject obj, jbyteArray privkey) { - - int len; - unsigned char* private = as_unsigned_char_array(env, privkey, &len); - - if (len != 32) { - fprintf(stderr, "Error, must be length 32"); - return NULL; - } - - unsigned char pubkey[32]; - unsigned char basepoint[32] = {9}; - - curve25519_donna(pubkey, private, basepoint); - return as_byte_array(env, (unsigned char*)pubkey, 32); -} - -JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_makeSharedSecret - (JNIEnv *env, jobject obj, jbyteArray privkey, jbyteArray their_pubkey) { - - unsigned char shared_secret[32]; - - int l1, l2; - unsigned char* private = as_unsigned_char_array(env, privkey, &l1); - unsigned char* pubkey = as_unsigned_char_array(env, their_pubkey, &l2); - - if ( !(l1 == 32 && l2 == 32) ) { - fprintf(stderr, "Error, must be length 32"); - return NULL; - } - - curve25519_donna(shared_secret, private, pubkey); - return as_byte_array(env, (unsigned char*)shared_secret, 32); -} - -JNIEXPORT void JNICALL Java_Curve25519Donna_helowrld - (JNIEnv *env, jobject obj) { - printf("helowrld\n"); -} -- cgit v1.2.3