aboutsummaryrefslogtreecommitdiff
path: root/lib/curve25519-donna/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'lib/curve25519-donna/contrib')
-rw-r--r--lib/curve25519-donna/contrib/Curve25519Donna.c118
-rw-r--r--lib/curve25519-donna/contrib/Curve25519Donna.h53
-rw-r--r--lib/curve25519-donna/contrib/Curve25519Donna.java77
-rw-r--r--lib/curve25519-donna/contrib/make-snippets68
4 files changed, 0 insertions, 316 deletions
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 <stdio.h>
-#include <stdlib.h>
-
-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");
-}
diff --git a/lib/curve25519-donna/contrib/Curve25519Donna.h b/lib/curve25519-donna/contrib/Curve25519Donna.h
deleted file mode 100644
index 3cd4ca0..0000000
--- a/lib/curve25519-donna/contrib/Curve25519Donna.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class Curve25519Donna */
-
-#ifndef _Included_Curve25519Donna
-#define _Included_Curve25519Donna
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class: Curve25519Donna
- * Method: curve25519Donna
- * Signature: ([B[B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_curve25519Donna
- (JNIEnv *, jobject, jbyteArray, jbyteArray);
-
-/*
- * Class: Curve25519Donna
- * Method: makePrivate
- * Signature: ([B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_makePrivate
- (JNIEnv *, jobject, jbyteArray);
-
-/*
- * Class: Curve25519Donna
- * Method: getPublic
- * Signature: ([B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_getPublic
- (JNIEnv *, jobject, jbyteArray);
-
-/*
- * Class: Curve25519Donna
- * Method: makeSharedSecret
- * Signature: ([B[B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_Curve25519Donna_makeSharedSecret
- (JNIEnv *, jobject, jbyteArray, jbyteArray);
-
-/*
- * Class: Curve25519Donna
- * Method: helowrld
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_Curve25519Donna_helowrld
- (JNIEnv *, jobject);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/lib/curve25519-donna/contrib/Curve25519Donna.java b/lib/curve25519-donna/contrib/Curve25519Donna.java
deleted file mode 100644
index e28cb53..0000000
--- a/lib/curve25519-donna/contrib/Curve25519Donna.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- James Robson
- Public domain.
-*/
-
-public class Curve25519Donna {
-
- final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
-
- public static String bytesToHex(byte[] bytes) {
- char[] hexChars = new char[bytes.length * 2];
- int v;
- for ( int j = 0; j < bytes.length; j++ ) {
- v = bytes[j] & 0xFF;
- hexChars[j * 2] = hexArray[v >>> 4];
- hexChars[j * 2 + 1] = hexArray[v & 0x0F];
- }
- return new String(hexChars);
- }
-
- public native byte[] curve25519Donna(byte[] a, byte[] b);
- public native byte[] makePrivate(byte[] secret);
- public native byte[] getPublic(byte[] privkey);
- public native byte[] makeSharedSecret(byte[] privkey, byte[] theirPubKey);
- public native void helowrld();
-
- // Uncomment if your Java is 32-bit:
- //static { System.loadLibrary("Curve25519Donna"); }
-
- // Otherwise, load this 64-bit .jnilib:
- static { System.loadLibrary("Curve25519Donna_64"); }
-
- /*
- To give the old tires a kick (OSX):
- java -cp `pwd` Curve25519Donna
- */
- public static void main (String[] args) {
-
- Curve25519Donna c = new Curve25519Donna();
-
- // These should be 32 bytes long
- byte[] user1Secret = "abcdefghijklmnopqrstuvwxyz123456".getBytes();
- byte[] user2Secret = "654321zyxwvutsrqponmlkjihgfedcba".getBytes();
-
-
- // You can use the curve function directly...
-
- //byte[] o = c.curve25519Donna(a, b);
- //System.out.println("o = " + bytesToHex(o));
-
-
- // ... but it's not really necessary. Just use the following
- // convenience methods:
-
- byte[] privKey = c.makePrivate(user1Secret);
- byte[] pubKey = c.getPublic(privKey);
-
- byte[] privKey2 = c.makePrivate(user2Secret);
- byte[] pubKey2 = c.getPublic(privKey2);
-
- System.out.println("'user1' privKey = " + bytesToHex(privKey));
- System.out.println("'user1' pubKey = " + bytesToHex(pubKey));
- System.out.println("===================================================");
-
- System.out.println("'user2' privKey = " + bytesToHex(privKey2));
- System.out.println("'user2' pubKey = " + bytesToHex(pubKey2));
- System.out.println("===================================================");
-
-
- byte[] ss1 = c.makeSharedSecret(privKey, pubKey2);
- System.out.println("'user1' computes shared secret: " + bytesToHex(ss1));
-
- byte[] ss2 = c.makeSharedSecret(privKey2, pubKey);
- System.out.println("'user2' computes shared secret: " + bytesToHex(ss2));
-
- }
-}
diff --git a/lib/curve25519-donna/contrib/make-snippets b/lib/curve25519-donna/contrib/make-snippets
deleted file mode 100644
index 4568721..0000000
--- a/lib/curve25519-donna/contrib/make-snippets
+++ /dev/null
@@ -1,68 +0,0 @@
-CFLAGS=-Wmissing-prototypes -Wdeclaration-after-statement -O2 -Wall
-CC=clang
-
-
-targets: curve25519-donna.a curve25519-donna-c64.a
-
-test: test-donna test-donna-c64
-
-
-clean:
- rm -f java-src/*.class java-src/*.jnilib *.dylib *.o *.a *.pp test-curve25519-donna test-curve25519-donna-c64 speed-curve25519-donna speed-curve25519-donna-c64
-
-curve25519-donna.a: curve25519-donna.o
- ar -rc curve25519-donna.a curve25519-donna.o
- ranlib curve25519-donna.a
-
-
-##### OSX dynamic library (32- & 64-bit)
-
-curve25519donna.dylib: curve25519-donna.a curve25519-donna-c64.a
- $(CC) -m32 -fpic -shared -Wl,-all_load curve25519-donna.a -Wl,-all_load -o libcurve25519donna.dylib
- $(CC) -fpic -shared -Wl,-all_load curve25519-donna-c64.a -Wl,-all_load -o libcurve25519donna_64.dylib
-
-##### OSX/Java section hence
-
-# Java JNI - compiled for OSX (32- & 64-bit)
-Curve25519Donna.class:
- cd java-src; javah -jni Curve25519Donna; cd ..
- cd java-src; javac Curve25519Donna.java; cd ..
-
-Curve25519Donna.jnilib: curve25519-donna.a curve25519-donna-c64.a Curve25519Donna.class
- @echo "Building 32-bit..."
- clang -o java-src/libCurve25519Donna.jnilib $(CFLAGS) -lc -shared -m32 -I /System/Library/Frameworks/JavaVM.framework/Headers curve25519-donna.o java-src/Curve25519Donna.c
- @echo "Building 64-bit..."
- clang -o java-src/libCurve25519Donna_64.jnilib $(CFLAGS) -lc -shared -I /System/Library/Frameworks/JavaVM.framework/Headers curve25519-donna-c64.o java-src/Curve25519Donna.c
-
-##### OSX/Java section end
-
-curve25519-donna.o: curve25519-donna.c
- $(CC) -c curve25519-donna.c $(CFLAGS) -m32
-
-curve25519-donna-c64.a: curve25519-donna-c64.o
- ar -rc curve25519-donna-c64.a curve25519-donna-c64.o
- ranlib curve25519-donna-c64.a
-
-curve25519-donna-c64.o: curve25519-donna-c64.c
- $(CC) -c curve25519-donna-c64.c $(CFLAGS)
-
-test-donna: test-curve25519-donna
- ./test-curve25519-donna | head -123456 | tail -1
-
-test-donna-c64: test-curve25519-donna-c64
- ./test-curve25519-donna-c64 | head -123456 | tail -1
-
-test-curve25519-donna: test-curve25519.c curve25519-donna.a
- $(CC) -o test-curve25519-donna test-curve25519.c curve25519-donna.a $(CFLAGS) -m32
-
-test-curve25519-donna-c64: test-curve25519.c curve25519-donna-c64.a
- $(CC) -o test-curve25519-donna-c64 test-curve25519.c curve25519-donna-c64.a $(CFLAGS)
-
-speed-curve25519-donna: speed-curve25519.c curve25519-donna.a
- $(CC) -o speed-curve25519-donna speed-curve25519.c curve25519-donna.a $(CFLAGS) -m32
-
-speed-curve25519-donna-c64: speed-curve25519.c curve25519-donna-c64.a
- $(CC) -o speed-curve25519-donna-c64 speed-curve25519.c curve25519-donna-c64.a $(CFLAGS)
-
-test-sc-curve25519-donna-c64: test-sc-curve25519.c curve25519-donna-c64.a
- $(CC) -o test-sc-curve25519-donna-c64 -O test-sc-curve25519.c curve25519-donna-c64.a test-sc-curve25519.s $(CFLAGS)