# maciejlesniak/vxcryptoapi architecture

> Architecture diagram of the GitHub repository maciejlesniak/vxcryptoapi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/maciejlesniak/vxcryptoapi
- Repository: https://github.com/maciejlesniak/vxcryptoapi

## Overview

This proof-of-concept Vert.x crypto verticle loads AES settings, constructs an AES service, then runs a sample encrypt/decrypt round trip on Vert.x’s blocking executor. AES supports byte and Base64-string APIs using AES/CBC/PKCS5Padding. The source shows a demo verticle rather than an externally exposed request API; wiring beyond startup and the sample round trip is not evidenced.

Main entry points: [`src/main/java/pl/sparkidea/vertx/VxCrypto.java`](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/VxCrypto.java) (Crypto verticle), [`src/main/java/pl/sparkidea/vertx/services/AesCryptoService.java`](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/AesCryptoService.java) (AES implementation), [`src/main/java/config/config.json`](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/config/config.json) (AES configuration), [`src/main/java/pl/sparkidea/vertx/services/CryptoService.java`](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/CryptoService.java) (Crypto contract)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Vert.x runtime"]
  node_verticle["Crypto verticle<br/>[VxCrypto.java]"]
  node_config["AES configuration<br/>[config.json]"]
  node_executor["Blocking executor"]
end

subgraph group_crypto["Crypto service"]
  node_contract["Crypto contract<br/>[CryptoService.java]"]
  node_aes["AES implementation"]
end

node_deployer(("Vert.x deployer"))
node_jca["Java crypto"]

node_deployer -->|"deploys"| node_verticle
node_config -->|"provides settings"| node_verticle
node_verticle -->|"constructs"| node_aes
node_aes -->|"implements"| node_contract
node_verticle -->|"dispatches work"| node_executor
node_verticle -->|"encrypts and decrypts"| node_aes
node_aes -->|"uses AES cipher"| node_jca

click node_verticle "https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/VxCrypto.java"
click node_config "https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/config/config.json"
click node_contract "https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/CryptoService.java"
click node_aes "https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/AesCryptoService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_verticle,node_config,node_executor toneBlue
class node_contract,node_aes toneAmber
class node_deployer,node_jca toneIndigo
```

## Components

### Vert.x runtime

- [Crypto verticle](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/VxCrypto.java): `src/main/java/pl/sparkidea/vertx/VxCrypto.java`
- [AES configuration](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/config/config.json): `src/main/java/config/config.json`
- **Blocking executor**

### Crypto service

- [Crypto contract](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/CryptoService.java): `src/main/java/pl/sparkidea/vertx/services/CryptoService.java`
- [AES implementation](https://github.com/maciejlesniak/vxcryptoapi/blob/master/src/main/java/pl/sparkidea/vertx/services/AesCryptoService.java): `src/main/java/pl/sparkidea/vertx/services/AesCryptoService.java`

### Other components

- **Vert.x deployer**
- **Java crypto**

## Connections

- Vert.x deployer → Crypto verticle: deploys
- AES configuration → Crypto verticle: provides settings
- Crypto verticle → AES implementation: constructs
- AES implementation → Crypto contract: implements
- Crypto verticle → Blocking executor: dispatches work
- Crypto verticle → AES implementation: encrypts and decrypts
- AES implementation → Java crypto: uses AES cipher
