[BREAKGLASS] Pure Java and JNI backed Curve25519 implementation.
Use separate modules in order to build both a java as well as an android artifact, with separate and shared test cases. |
||
|---|---|---|
| android | ||
| gradle/wrapper | ||
| java | ||
| tests | ||
| .gitignore | ||
| build.gradle | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle | ||
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);