* Add JNI code for ed25519-zebra
Add some code allowing other languages, via JNI, to interact with ed25519-zebra. The initial commit:
- Allows users to obtain a random 32 byte signing key seed.
- Allows users to obtain a 32 byte verification key from a signing key seed.
- Allows users to sign arbitrary data.
- Allows users to verify an Ed25519 signature.
- Includes a Java file that can be used.
- Includes some Scala-based JNI tests.
* Review fixups
- Minor Rust code optimizations.
- Rust build optimizations.
- Tweak the JNI JAR prereq script to match the new outputs.
* Significant cleanup
- More build system tidying. The primary goal is to try to firewall the JNI code from everything else.
- README tidying.
* Grab bag of improvements
- Clean up the wrapper classes (streamlining, make constructors private, more mutability safety).
- private -> public for a static variable intended for public usage.
- Minor comment & build system cleanup.
* Bump JNI version to 0.0.4-DEV
Decided to bump the version to reflect earlier changes.
* Hard-code the ed25519-zebra version for ed25519jni to use
* Unify ed25519 JNI version
Also add "-JNI" to assist with tagging and otherwise distinguish the JNI code from the main library version/code.
* Add code to make VerificationKeyBytes comparison easier
Also add a test suite for VerificationKeyBytes.
* VerificationKeyBytes cleanup
- Fix hashCode() override.
- Add a test.
- Remove unneecessary semicolons.
* Add Signature to JNI
Mirror the Signature struct from Rust and add some basic tests. Also do a bit of Scala test cleanup.