AMCL is very simple to build for Java. This version is optimal for a 64-bit 
Virtual Machine.

First - decide the modulus type and curve type you want to use. Edit ROM.java 
where indicated. You might want to use one of the curves whose details are
already in there.

Three example API files are provided, MPIN.java which 
supports our M-Pin (tm) protocol, ECDH.java which supports elliptic 
curve key exchange, digital signature and public key crypto, and RSA.java
which supports the RSA method. The first  can be tested using the 
TestMPIN.java driver programs, the second can be tested using TestECDH.java 
and TestECM.java, and the third with TestRSA.java

In the ROM.java file you must provide the curve constants. Several examples
are provided there, if you are willing to use one of these.

To help generate the ROM constants for your own curve some MIRACL helper 
programs are included. The program bngen.cpp generates the ROM details for a 
BN curve, and the program ecgen.cpp generates the ROM for EC curves. 

The program bigtobig.cpp converts a big number to the AMCL 
BIG format.

Don't forget to delete all .class files before rebuilding projects.

For a quick jumpstart:-

del *.class
javac TestMPIN.java
java TestMPIN

