[BREAKGLASS] Pure Java and JNI backed Curve25519 implementation.
Go to file
Moxie Marlinspike c8d383bbb0 Move over to gradle for all building.
Use separate modules in order to build both a java as well as an
android artifact, with separate and shared test cases.
2015-01-08 14:32:17 -08:00
android Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
gradle/wrapper Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
java Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
tests Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
.gitignore Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
build.gradle Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
gradlew Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
gradlew.bat Move over to gradle for all building. 2015-01-08 14:32:17 -08:00
README.md Wrap pure-Java port in provider interface, add NDK code. 2015-01-05 17:57:25 -08:00
settings.gradle Move over to gradle for all building. 2015-01-08 14:32:17 -08:00

DO NOT USE THIS YET

Generating a Curve25519 keypair:

SecureRandom      secureRandom = SecureRandom.getInstance("SHA1PRNG");
Curve25519KeyPair keyPair      = Curve25519.generateKeyPair();

Calculating a shared secret:

byte[] sharedSecret = Curve25519.calculateAgreement(publicKey, privateKey);

Calculating a signature:

SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
byte[]       signature    = Curve25519.calculateSignature(secureRandom, privateKey, message);

Verifying a signature:

boolean validSignature = Curve25519.verifySignature(publicKey, message, signature);