blob: a5eda6c5581e7991f2a13062236e4a5f852a8e8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Developing ECTester
This document describes some development guidelines and how-tos regarding
developing the ECTester tool itself.
## Developing ECTester standalone modules
- Create Java classes inheriting Native{ECPrivateKey,ECPublicKey,KeyPairGeneratorSpi,KeyAgreementSpi,SignatureSpi}.
- Run `gradle :standalone:compileJava` to compile the classes and obtain a native header file. It will be in
`standalone/build/generated/sources/headers/java/main`. Ideally, copy the generated function declarations into
the `native.h` file found in the `standalone/src/java/resources/cz/crcs/ectester/standalone/libs/jni` directory.
- Create module file (C/C++) in `standalone/src/java/resources/cz/crcs/ectester/standalone/libs/jni`, and add it to the Makefile.
- Implement the required JNI functions, look at existing modules for what is expected, what the contract
of the function is, use the `native_timing_*` functions around points that should be measurable.
- Compile and run ECTester using your new module.
|