Skip to content

About

Android library for benchmarking cryptographic primitives

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Benchmark for Android crypto primitives

jca contract modules

Measures the JCA cryptographic primitives an Android device actually provides — what is registered, what really runs, and how fast.

How it works

flowchart LR
    D[discovery] -- capture, trial --> C[config] -- effective --> P[preparation] --> B[benchmark] --> A[analysis]
Loading
Module Does
:environment:discovery lists every provider and service the device registers, and calls each once to see what runs
:config crosses what the device runs with the authored config/ into effective.yaml, the one file a run reads
:preparation turns effective.yaml into cases — keys, inputs, parameters — and calls each once before any timer
:benchmark the timed run on the device, Jetpack Microbenchmark (planned, #33)

Modules talk only through YAML files; none imports another. Each is built and tested alone against its own example/ files (tools/module-isolation).

Scope

AES, ChaCha20, RSA, SHA-2, HMAC, ECDSA and their key generation, on Pixel 9 and Pixel 10. Catalogue: primitives, providers.

Run, on the host

python3 scripts/pipeline.py              # discover and configure
python3 scripts/pipeline.py --bench      # and prepare, measure, analyse (JVM stand-in until #33)
scripts/demo.sh --fast                   # the whole flow on three primitives, about 9s

What to measure: config/global.yaml and config/testsets/. Output: results/. Requires Java 17; the Gradle plugin fetches Kotlin.

Docs

File structure, language and dependency rules: docs/docs.md. Each module's README lists its files; its docs/ explains how it works.

About

Android library for benchmarking cryptographic primitives

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages