# afa-amin/secureabe architecture

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

- Interactive diagram: https://gitdiagram.com/afa-amin/secureabe
- Repository: https://github.com/afa-amin/secureabe

## Overview

Secure Modern ABE is a Rust CP-ABE access-control system for encrypting and sharing files. Its principal workflow is to initialize a deployment, issue attribute-bound user keys, encrypt a file under a policy, store the encrypted package, and let an authorized user decrypt it; audit and revocation are supporting operations. The graph preserves the documented authority, policy, hybrid-encryption, storage, revocation, and audit capabilities. Some subsystem links rely on README statements because their runtime implementations were not excerpted.

Main entry points: [`cli/src/main.rs`](https://github.com/afa-amin/secureabe/blob/main/cli/src/main.rs) (CLI commands), [`core/src/scheme.rs`](https://github.com/afa-amin/secureabe/blob/main/core/src/scheme.rs) (CP-ABE scheme), [`core/src/codec.rs`](https://github.com/afa-amin/secureabe/blob/main/core/src/codec.rs) (Key and ciphertext codec), [`policy/src/parser.rs`](https://github.com/afa-amin/secureabe/blob/main/policy/src/parser.rs) (Policy DSL parser)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_operations["CLI operations"]
  node_cli["CLI commands<br/>[main.rs]"]
  node_authority["Authority claims<br/>[lib.rs]"]
end

subgraph group_policy["Policy modeling"]
  node_policy_parser["Policy DSL parser<br/>[parser.rs]"]
  node_access_tree["Access tree<br/>[tree.rs]"]
end

subgraph group_cryptography["ABE cryptography"]
  node_abe_scheme["CP-ABE scheme<br/>[scheme.rs]"]
  node_abe_keys["ABE key models<br/>[keys.rs]"]
  node_secret_sharing["Threshold sharing<br/>[share.rs]"]
  node_abe_codec["Key and ciphertext codec<br/>[codec.rs]"]
end

subgraph group_services["Package and security services"]
  node_hybrid_envelope["Hybrid encryption<br/>[lib.rs]"]
  node_package_store[("Encrypted package storage<br/>[lib.rs]")]
  node_revocation["Epoch revocation<br/>[lib.rs]"]
  node_audit_log[("Append-only audit<br/>[lib.rs]")]
end

node_operator(("Operator"))

node_operator -->|"runs commands"| node_cli
node_cli -->|"resolves claims"| node_authority
node_cli -.->|"parses policy"| node_policy_parser
node_policy_parser -->|"builds tree"| node_access_tree
node_cli -->|"sets up and issues"| node_abe_scheme
node_abe_scheme -->|"uses key types"| node_abe_keys
node_abe_scheme -->|"shares secrets"| node_secret_sharing
node_abe_scheme -.->|"evaluates policies"| node_access_tree
node_abe_codec -->|"encodes keys"| node_abe_keys
node_abe_codec -->|"encodes ciphertext"| node_abe_scheme
node_hybrid_envelope -->|"wraps data key"| node_abe_scheme
node_cli -->|"seals and opens"| node_hybrid_envelope
node_cli -->|"stores and lists"| node_package_store
node_cli -->|"updates epochs"| node_revocation
node_cli -->|"records events"| node_audit_log

click node_cli "https://github.com/afa-amin/secureabe/blob/main/cli/src/main.rs"
click node_authority "https://github.com/afa-amin/secureabe/blob/main/authorities/src/lib.rs"
click node_policy_parser "https://github.com/afa-amin/secureabe/blob/main/policy/src/parser.rs"
click node_access_tree "https://github.com/afa-amin/secureabe/blob/main/policy/src/tree.rs"
click node_abe_scheme "https://github.com/afa-amin/secureabe/blob/main/core/src/scheme.rs"
click node_abe_keys "https://github.com/afa-amin/secureabe/blob/main/core/src/keys.rs"
click node_secret_sharing "https://github.com/afa-amin/secureabe/blob/main/core/src/share.rs"
click node_abe_codec "https://github.com/afa-amin/secureabe/blob/main/core/src/codec.rs"
click node_hybrid_envelope "https://github.com/afa-amin/secureabe/blob/main/envelope/src/lib.rs"
click node_package_store "https://github.com/afa-amin/secureabe/blob/main/storage/src/lib.rs"
click node_revocation "https://github.com/afa-amin/secureabe/blob/main/revocation/src/lib.rs"
click node_audit_log "https://github.com/afa-amin/secureabe/blob/main/audit/src/lib.rs"

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_cli,node_authority toneBlue
class node_policy_parser,node_access_tree toneAmber
class node_abe_scheme,node_abe_keys,node_secret_sharing,node_abe_codec toneMint
class node_hybrid_envelope,node_package_store,node_revocation,node_audit_log toneRose
class node_operator toneIndigo
```

## Components

### CLI operations

- [CLI commands](https://github.com/afa-amin/secureabe/blob/main/cli/src/main.rs): `cli/src/main.rs`
- [Authority claims](https://github.com/afa-amin/secureabe/blob/main/authorities/src/lib.rs): `authorities/src/lib.rs`

### Policy modeling

- [Policy DSL parser](https://github.com/afa-amin/secureabe/blob/main/policy/src/parser.rs): `policy/src/parser.rs`
- [Access tree](https://github.com/afa-amin/secureabe/blob/main/policy/src/tree.rs): `policy/src/tree.rs`

### ABE cryptography

- [CP-ABE scheme](https://github.com/afa-amin/secureabe/blob/main/core/src/scheme.rs): `core/src/scheme.rs`
- [ABE key models](https://github.com/afa-amin/secureabe/blob/main/core/src/keys.rs): `core/src/keys.rs`
- [Threshold sharing](https://github.com/afa-amin/secureabe/blob/main/core/src/share.rs): `core/src/share.rs`
- [Key and ciphertext codec](https://github.com/afa-amin/secureabe/blob/main/core/src/codec.rs): `core/src/codec.rs`

### Package and security services

- [Hybrid encryption](https://github.com/afa-amin/secureabe/blob/main/envelope/src/lib.rs): `envelope/src/lib.rs`
- [Encrypted package storage](https://github.com/afa-amin/secureabe/blob/main/storage/src/lib.rs): `storage/src/lib.rs`
- [Epoch revocation](https://github.com/afa-amin/secureabe/blob/main/revocation/src/lib.rs): `revocation/src/lib.rs`
- [Append-only audit](https://github.com/afa-amin/secureabe/blob/main/audit/src/lib.rs): `audit/src/lib.rs`

### Other components

- **Operator**

## Connections

- Operator → CLI commands: runs commands (evidence: `README.md`)
- CLI commands → Authority claims: resolves claims (evidence: `README.md`)
- CLI commands → Policy DSL parser: parses policy
- Policy DSL parser → Access tree: builds tree (evidence: `policy/src/parser.rs`)
- CLI commands → CP-ABE scheme: sets up and issues (evidence: `cli/src/main.rs`)
- CP-ABE scheme → ABE key models: uses key types (evidence: `core/src/scheme.rs`)
- CP-ABE scheme → Threshold sharing: shares secrets (evidence: `core/src/scheme.rs`)
- CP-ABE scheme → Access tree: evaluates policies
- Key and ciphertext codec → ABE key models: encodes keys (evidence: `core/src/codec.rs`)
- Key and ciphertext codec → CP-ABE scheme: encodes ciphertext (evidence: `core/src/codec.rs`)
- Hybrid encryption → CP-ABE scheme: wraps data key (evidence: `envelope/src/lib.rs`)
- CLI commands → Hybrid encryption: seals and opens (evidence: `cli/src/main.rs`)
- CLI commands → Encrypted package storage: stores and lists (evidence: `cli/src/main.rs`)
- CLI commands → Epoch revocation: updates epochs (evidence: `cli/src/main.rs`)
- CLI commands → Append-only audit: records events (evidence: `cli/src/main.rs`)
