This repository uses Apache Jmeter to test the performance of UKC and CoT.
See Developing in Java for more information about configuring the Java environment.
You need the following before running the performance tests:
- UKC cluster - installed and running
- UKC client
- Jmeter - install version 5.4 or newer
- Maven CLI - installed
-
Download this repository.
-
From the root of the downloaded repo, run the Maven command to compile the JAR for testing.
mvn package
This command creates the ub-maven-test-1.0.0.jar file in the target/ directory.
-
Copy ub-maven-test-1.0.0.jar to the lib directory in your Jmeter installation.
-
Copy ekm-java-provider-2.0.jar from the UKC client to the lib directory in your Jmeter installation.
The following tests are provided:
- AES-GCM - encrypt and decrypt.
- RSA-OAEP - decrypt.
- ECDSA-P256 - sign.
- ECDH-P256 - derive.
For the tests, first confirm that the default user does not have a password. (Note: A blank password is the default)
-
Create a key for testing. For example:
ucl generate -t AES -p <PART_NAME> --name aes-256-key --purpose E
-
Open the UBUKCTest.jmx file in Jmeter.
-
Run the relevant tests: Encrypt GCM or Decrypt GCM.
-
Create a key for testing. For example:
ucl generate -t RSA -p <PART_NAME> --name rsa-2048-key
-
Open the UBUKCTest.jmx file in Jmeter.
-
Run the relevant test: Decrypt RSA.
-
Create a key for testing. For example:
ucl generate -t ECC -p <PART_NAME> --name ecdsa-p256-key
-
Open the UBUKCTest.jmx file in Jmeter.
-
Run the relevant test: Sign ECDSA.
-
Create a key for testing. For example:
ucl generate -t ECC -p <PART_NAME> --purpose D --name ecdh-p256-key
-
Open the UBUKCTest.jmx file in Jmeter.
-
Run the relevant tests: Derive ECDH.
You need the following before running the performance tests:
- EKP Client - installed an running
- CoT server - installed and running
- Jmeter - install version 5.4 or newer
- Maven CLI - installed
-
Download this repository.
-
From the root of the downloaded repo, run the Maven command to compile the JAR for testing.
mvn package
This command creates the ub-maven-test-1.0.0.jar file in the target/ directory.
-
Copy ub-maven-test-1.0.0.jar to the lib directory in your Jmeter installation.
-
Copy ekm-java-provider-2.0.jar from the CoT-client .tar file to the lib directory in your Jmeter installation.
The following tests are provided:
- RSA - sign
For the tests, first confirm that the default user has the password: "Password1!". You can change the password in RSASignTest.java if necessary.
- Open the UBCoTtest.jmx file in Jmeter.
- Run the relevant test: Sign RSA.
- You can use the 'User Defined Variables' in the following manner:
- createKeys - When set to true new keys are created, and the number of preactivated keys must be equal or more than the number of threads running. When set to false old keys are used, and the number of keys must be equal or more than the number of threads running.
- deleteKeys - When set to true the keys used are deleted at the end of the test. When set to false the keys used are not deleted at the end of the test.
-
Download this repository.
-
From the root of the downloaded repo, run the Maven command to compile the JAR for testing.
mvn package
This command creates the ub-maven-test-1.0.0.jar file in the target/ directory.
-
Copy ub-maven-test-1.0.0.jar to the lib directory in your Jmeter installation.
-
Copy ekm-java-provider-2.0.jar from the EKP client to the lib directory in your Jmeter installation.
The following tests are provided:
- RSA - sign
For the tests, first confirm that the default user has the password: "Password1!". You can change the password in RSASignTest.java if necessary.
- Open the UBCoTtest.jmx file in Jmeter.
- Run the relevant test: Sign RSA.
- Use the 'User Defined Variables' in the following manner:
- createKeys - When set to true new keys are created. When set to false old keys are used.
- deleteKeys - When set to true the keys used are deleted at the end of the test. When set to false the keys used are not deleted at the end of the test.
- We recommend using:
- 'createKeys' = 'true'
- 'deleteKeys' = 'true'