# credulous67/payshield_test architecture

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

- Interactive diagram: https://gitdiagram.com/credulous67/payshield_test
- Repository: https://github.com/credulous67/payshield_test

## Overview

Payshield_test is a script for exercising typical payment-HSM operations. The README documents setup tasks followed by per-card PIN and verification tasks. The only source file is the script; without source excerpts, the graph shows documented capabilities and workflow, not internal call structure.

Main entry points: [`Payshield_test.py`](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py) (Test script)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_operator(("Operator"))
node_script["Test script<br/>[Payshield_test.py]"]
node_hsm["Target HSM"]
node_cards["Test cards<br/>[Payshield_test.py]"]
node_keys["Key generation<br/>[Payshield_test.py]"]
node_hashes["Test hashes<br/>[Payshield_test.py]"]
node_signing["RSA signing<br/>[Payshield_test.py]"]
node_signature["Signature validation<br/>[Payshield_test.py]"]
node_cvv["CVV checks<br/>[Payshield_test.py]"]
node_ibm_pin["IBM PIN flow<br/>[Payshield_test.py]"]
node_random_pin["Random PIN flow<br/>[Payshield_test.py]"]
node_visa_pvv["Visa PVV flow<br/>[Payshield_test.py]"]

node_operator -->|"runs"| node_script
node_script -->|"targets"| node_hsm
node_script -->|"generates"| node_cards
node_script -->|"generates"| node_keys
node_script -->|"generates"| node_hashes
node_script -->|"generates"| node_signing
node_script -->|"validates"| node_signature
node_script -->|"runs per card"| node_cvv
node_script -->|"runs per card"| node_ibm_pin
node_script -->|"runs per card"| node_random_pin
node_script -->|"runs per card"| node_visa_pvv

click node_script "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_cards "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_keys "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_hashes "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_signing "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_signature "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_cvv "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_ibm_pin "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_random_pin "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"
click node_visa_pvv "https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py"

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_operator,node_hsm toneIndigo
class node_script,node_cards,node_keys,node_hashes,node_signing,node_signature,node_cvv,node_ibm_pin,node_random_pin,node_visa_pvv toneTeal
```

## Components

### Other components

- **Operator**
- [Test script](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- **Target HSM**
- [Test cards](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [Key generation](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [Test hashes](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [RSA signing](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [Signature validation](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [CVV checks](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [IBM PIN flow](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [Random PIN flow](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`
- [Visa PVV flow](https://github.com/credulous67/payshield_test/blob/main/Payshield_test.py): `Payshield_test.py`

## Connections

- Operator → Test script: runs (evidence: `README.md`)
- Test script → Target HSM: targets (evidence: `README.md`)
- Test script → Test cards: generates (evidence: `README.md`)
- Test script → Key generation: generates (evidence: `README.md`)
- Test script → Test hashes: generates (evidence: `README.md`)
- Test script → RSA signing: generates (evidence: `README.md`)
- Test script → Signature validation: validates (evidence: `README.md`)
- Test script → CVV checks: runs per card (evidence: `README.md`)
- Test script → IBM PIN flow: runs per card (evidence: `README.md`)
- Test script → Random PIN flow: runs per card (evidence: `README.md`)
- Test script → Visa PVV flow: runs per card (evidence: `README.md`)
