# ishmeet01-dotcom/ironkey architecture

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

- Interactive diagram: https://gitdiagram.com/ishmeet01-dotcom/ironkey
- Repository: https://github.com/ishmeet01-dotcom/ironkey

## Overview

IRONKEY is a local-first Swing password vault: users register or authenticate, unlock an in-memory session, then manage encrypted credentials and inspect password-health findings. The graph follows those distinct stages and includes persistence, cryptographic services, session state, and clipboard protection. Edges are limited to relationships shown in excerpts, the SOURCE INDEX, or README; some capabilities are documented but their implementation details were not sampled.

Main entry points: [`src/main/java/com/ironkey/service/AuthenticationService.java`](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/AuthenticationService.java) (Authentication service), [`src/main/java/com/ironkey/service/VaultService.java`](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/VaultService.java) (Vault service), [`src/main/java/com/ironkey/ui/DashboardFrame.java`](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/DashboardFrame.java) (Vault dashboard), [`src/main/java/com/ironkey/service/SecurityAuditService.java`](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/SecurityAuditService.java) (Password health audit)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop experience"]
  node_login["Login screen<br/>[LoginFrame.java]"]
  node_registration["Registration screen<br/>[RegisterFrame.java]"]
  node_dashboard["Vault dashboard"]
  node_credentialui["Credential views"]
  node_credentialdialog["Credential editor"]
  node_clipboard["Clipboard scrubber"]
end

subgraph group_identity["Identity and session"]
  node_auth["Authentication service"]
  node_sessions["Session manager"]
end

subgraph group_vault["Vault and storage"]
  node_userstore["User persistence<br/>[UserDAO.java]"]
  node_vaultservice["Vault service<br/>[VaultService.java]"]
  node_vaultstore["Credential persistence<br/>[VaultEntryDAO.java]"]
  node_categories["Category persistence<br/>[CategoryDAO.java]"]
  node_securitylogs["Security event store"]
end

subgraph group_security["Security analysis"]
  node_generator["Password generator"]
  node_crypto["Credential encryption"]
  node_keyderive["Vault key derivation"]
  node_audit["Password health audit"]
  node_strength["Strength analysis"]
  node_auditreport["Audit findings"]
  node_securityservice["Security scoring"]
end

subgraph group_platform["Runtime infrastructure"]
  node_bootstrap["Desktop bootstrap<br/>[Main.java]"]
  node_databaseconfig["JDBC configuration"]
  node_mysql[("MySQL database")]
end

node_user(("Vault user"))

node_user -->|"unlocks vault"| node_login
node_bootstrap -->|"opens"| node_login
node_login -->|"authenticates"| node_auth
node_login -->|"opens registration"| node_registration
node_registration -->|"registers account"| node_auth
node_auth -->|"reads and writes"| node_userstore
node_auth -->|"derives vault key"| node_keyderive
node_auth -->|"sets session"| node_sessions
node_auth -->|"initializes categories"| node_categories
node_auth -->|"logs failures"| node_securitylogs
node_dashboard -->|"manages credentials"| node_vaultservice
node_dashboard -->|"requests audit"| node_audit
node_dashboard -->|"renders credentials"| node_credentialui
node_dashboard -->|"opens editor"| node_credentialdialog
node_dashboard -->|"opens generator"| node_generator
node_vaultservice -->|"encrypts and decrypts"| node_crypto
node_vaultservice -->|"persists entries"| node_vaultstore
node_vaultservice -->|"checks session"| node_sessions
node_vaultservice -->|"logs events"| node_securitylogs
node_audit -->|"scans vault"| node_vaultservice
node_audit -->|"analyzes passwords"| node_strength
node_audit -->|"builds findings"| node_auditreport
node_securityservice -->|"uses audit"| node_audit
node_securityservice -->|"records events"| node_securitylogs
node_databaseconfig -->|"opens JDBC connection"| node_mysql
node_userstore -->|"gets connections"| node_databaseconfig
node_vaultstore -->|"gets connections"| node_databaseconfig
node_categories -->|"gets connections"| node_databaseconfig
node_securitylogs -->|"gets connections"| node_databaseconfig
node_credentialui -.->|"copies passwords"| node_clipboard

click node_bootstrap "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/Main.java"
click node_login "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/LoginFrame.java"
click node_registration "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/RegisterFrame.java"
click node_dashboard "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/DashboardFrame.java"
click node_credentialui "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/components/CredentialCard.java"
click node_credentialdialog "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/CredentialDialog.java"
click node_generator "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/PasswordGenerator.java"
click node_clipboard "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/util/ClipboardManager.java"
click node_auth "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/AuthenticationService.java"
click node_sessions "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/util/SessionManager.java"
click node_userstore "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/UserDAO.java"
click node_vaultservice "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/VaultService.java"
click node_vaultstore "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/VaultEntryDAO.java"
click node_categories "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/CategoryDAO.java"
click node_crypto "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/EncryptionManager.java"
click node_keyderive "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/KeyDerivationService.java"
click node_audit "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/SecurityAuditService.java"
click node_strength "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/PasswordStrengthAnalyzer.java"
click node_auditreport "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/model/VaultAuditReport.java"
click node_securityservice "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/SecurityService.java"
click node_securitylogs "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/SecurityLogDAO.java"
click node_databaseconfig "https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/config/DatabaseConfig.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_login,node_registration,node_dashboard,node_credentialui,node_credentialdialog,node_clipboard,node_user toneBlue
class node_auth,node_sessions toneAmber
class node_userstore,node_vaultservice,node_vaultstore,node_categories,node_securitylogs toneMint
class node_generator,node_crypto,node_keyderive,node_audit,node_strength,node_auditreport,node_securityservice toneRose
class node_bootstrap,node_databaseconfig,node_mysql toneIndigo
```

## Components

### Desktop experience

- [Login screen](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/LoginFrame.java): `src/main/java/com/ironkey/ui/LoginFrame.java`
- [Registration screen](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/RegisterFrame.java): `src/main/java/com/ironkey/ui/RegisterFrame.java`
- [Vault dashboard](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/DashboardFrame.java): `src/main/java/com/ironkey/ui/DashboardFrame.java`
- [Credential views](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/components/CredentialCard.java): `src/main/java/com/ironkey/ui/components/CredentialCard.java`
- [Credential editor](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/ui/CredentialDialog.java): `src/main/java/com/ironkey/ui/CredentialDialog.java`
- [Clipboard scrubber](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/util/ClipboardManager.java): `src/main/java/com/ironkey/util/ClipboardManager.java`

### Identity and session

- [Authentication service](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/AuthenticationService.java): `src/main/java/com/ironkey/service/AuthenticationService.java`
- [Session manager](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/util/SessionManager.java): `src/main/java/com/ironkey/util/SessionManager.java`

### Vault and storage

- [User persistence](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/UserDAO.java): `src/main/java/com/ironkey/dao/UserDAO.java`
- [Vault service](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/VaultService.java): `src/main/java/com/ironkey/service/VaultService.java`
- [Credential persistence](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/VaultEntryDAO.java): `src/main/java/com/ironkey/dao/VaultEntryDAO.java`
- [Category persistence](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/CategoryDAO.java): `src/main/java/com/ironkey/dao/CategoryDAO.java`
- [Security event store](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/dao/SecurityLogDAO.java): `src/main/java/com/ironkey/dao/SecurityLogDAO.java`

### Security analysis

- [Password generator](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/PasswordGenerator.java): `src/main/java/com/ironkey/security/PasswordGenerator.java`
- [Credential encryption](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/EncryptionManager.java): `src/main/java/com/ironkey/security/EncryptionManager.java`
- [Vault key derivation](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/KeyDerivationService.java): `src/main/java/com/ironkey/security/KeyDerivationService.java`
- [Password health audit](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/SecurityAuditService.java): `src/main/java/com/ironkey/service/SecurityAuditService.java`
- [Strength analysis](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/security/PasswordStrengthAnalyzer.java): `src/main/java/com/ironkey/security/PasswordStrengthAnalyzer.java`
- [Audit findings](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/model/VaultAuditReport.java): `src/main/java/com/ironkey/model/VaultAuditReport.java`
- [Security scoring](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/service/SecurityService.java): `src/main/java/com/ironkey/service/SecurityService.java`

### Runtime infrastructure

- [Desktop bootstrap](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/Main.java): `src/main/java/com/ironkey/Main.java`
- [JDBC configuration](https://github.com/ishmeet01-dotcom/ironkey/blob/main/src/main/java/com/ironkey/config/DatabaseConfig.java): `src/main/java/com/ironkey/config/DatabaseConfig.java`
- **MySQL database**

### Other components

- **Vault user**

## Connections

- Vault user → Login screen: unlocks vault (evidence: `README.md`)
- Desktop bootstrap → Login screen: opens (evidence: `src/main/java/com/ironkey/Main.java`)
- Login screen → Authentication service: authenticates (evidence: `src/main/java/com/ironkey/ui/LoginFrame.java`)
- Login screen → Registration screen: opens registration (evidence: `src/main/java/com/ironkey/ui/LoginFrame.java`)
- Registration screen → Authentication service: registers account (evidence: `src/main/java/com/ironkey/ui/RegisterFrame.java`)
- Authentication service → User persistence: reads and writes (evidence: `src/main/java/com/ironkey/service/AuthenticationService.java`)
- Authentication service → Vault key derivation: derives vault key (evidence: `src/main/java/com/ironkey/service/AuthenticationService.java`)
- Authentication service → Session manager: sets session (evidence: `src/main/java/com/ironkey/service/AuthenticationService.java`)
- Authentication service → Category persistence: initializes categories (evidence: `src/main/java/com/ironkey/service/AuthenticationService.java`)
- Authentication service → Security event store: logs failures (evidence: `src/main/java/com/ironkey/service/AuthenticationService.java`)
- Vault dashboard → Vault service: manages credentials (evidence: `src/main/java/com/ironkey/ui/DashboardFrame.java`)
- Vault dashboard → Password health audit: requests audit (evidence: `src/main/java/com/ironkey/ui/DashboardFrame.java`)
- Vault dashboard → Credential views: renders credentials (evidence: `src/main/java/com/ironkey/ui/DashboardFrame.java`)
- Vault dashboard → Credential editor: opens editor (evidence: `src/main/java/com/ironkey/ui/DashboardFrame.java`)
- Vault dashboard → Password generator: opens generator (evidence: `src/main/java/com/ironkey/ui/DashboardFrame.java`)
- Vault service → Credential encryption: encrypts and decrypts (evidence: `src/main/java/com/ironkey/service/VaultService.java`)
- Vault service → Credential persistence: persists entries (evidence: `src/main/java/com/ironkey/service/VaultService.java`)
- Vault service → Session manager: checks session (evidence: `src/main/java/com/ironkey/service/VaultService.java`)
- Vault service → Security event store: logs events (evidence: `src/main/java/com/ironkey/service/VaultService.java`)
- Password health audit → Vault service: scans vault (evidence: `src/main/java/com/ironkey/service/SecurityAuditService.java`)
- Password health audit → Strength analysis: analyzes passwords (evidence: `src/main/java/com/ironkey/service/SecurityAuditService.java`)
- Password health audit → Audit findings: builds findings (evidence: `src/main/java/com/ironkey/model/VaultAuditReport.java`)
- Security scoring → Password health audit: uses audit (evidence: `src/main/java/com/ironkey/service/SecurityService.java`)
- Security scoring → Security event store: records events (evidence: `src/main/java/com/ironkey/service/SecurityService.java`)
- JDBC configuration → MySQL database: opens JDBC connection (evidence: `README.md`)
- User persistence → JDBC configuration: gets connections (evidence: `src/main/java/com/ironkey/dao/UserDAO.java`)
- Credential persistence → JDBC configuration: gets connections (evidence: `src/main/java/com/ironkey/dao/VaultEntryDAO.java`)
- Category persistence → JDBC configuration: gets connections (evidence: `src/main/java/com/ironkey/dao/CategoryDAO.java`)
- Security event store → JDBC configuration: gets connections (evidence: `src/main/java/com/ironkey/dao/SecurityLogDAO.java`)
- Credential views → Clipboard scrubber: copies passwords
