# samsung/cert-checker architecture

> Architecture diagram of the GitHub repository samsung/cert-checker, 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/samsung/cert-checker
- Repository: https://github.com/samsung/cert-checker

## Overview

This is a partially implemented certificate checker for installed applications. Its visible runtime setup registers package-manager events, monitors ConnMan connectivity, and loads database data; application records can carry package identity, UID, certificates, and verification status. Certificate extraction, OCSP checking, and uninstall handling are declared but not implemented in the sampled logic. The executable entry point and database-loading implementation were not sampled, so their wiring is not inferred here.

Main entry points: [`src/logic.cpp`](https://github.com/samsung/cert-checker/blob/master/src/logic.cpp) (Logic coordinator), [`src/dpl/db/src/sql_connection.cpp`](https://github.com/samsung/cert-checker/blob/master/src/dpl/db/src/sql_connection.cpp) (SQL connection), [`src/cert-checker.cpp`](https://github.com/samsung/cert-checker/blob/master/src/cert-checker.cpp) (Checker executable), [`src/log/log.cpp`](https://github.com/samsung/cert-checker/blob/master/src/log/log.cpp) (Journal logging)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime coordination"]
  node_checker["Checker executable<br/>[cert-checker.cpp]"]
  node_logic["Logic coordinator<br/>[logic.cpp]"]
end

subgraph group_integrations["System integrations"]
  node_package_manager["Package manager"]
  node_connman["ConnMan"]
end

subgraph group_data["Application data"]
  node_app_record["Application record<br/>[app.h]"]
  node_sql["SQL connection<br/>[sql_connection.cpp]"]
  node_sqlite[("SQLite database")]
end

subgraph group_support["Shared support"]
  node_logger["Journal logging<br/>[log.cpp]"]
end

node_system(("System events"))
node_journal["System journal"]

node_checker -.->|"entry wiring unknown"| node_logic
node_logic -->|"creates and registers"| node_package_manager
node_package_manager -->|"dispatches events"| node_logic
node_logic -->|"connects proxy"| node_connman
node_connman -->|"signals changes"| node_logic
node_logic -->|"uses records"| node_app_record
node_logic -.->|"loads database"| node_sql
node_sql -->|"executes SQL"| node_sqlite
node_logger -->|"sends entries"| node_journal

click node_checker "https://github.com/samsung/cert-checker/blob/master/src/cert-checker.cpp"
click node_logic "https://github.com/samsung/cert-checker/blob/master/src/logic.cpp"
click node_app_record "https://github.com/samsung/cert-checker/blob/master/src/include/app.h"
click node_sql "https://github.com/samsung/cert-checker/blob/master/src/dpl/db/src/sql_connection.cpp"
click node_logger "https://github.com/samsung/cert-checker/blob/master/src/log/log.cpp"

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_checker,node_logic toneBlue
class node_package_manager,node_connman toneAmber
class node_app_record,node_sql,node_sqlite toneMint
class node_logger toneRose
class node_system,node_journal toneIndigo
```

## Components

### Runtime coordination

- [Checker executable](https://github.com/samsung/cert-checker/blob/master/src/cert-checker.cpp): `src/cert-checker.cpp`
- [Logic coordinator](https://github.com/samsung/cert-checker/blob/master/src/logic.cpp): `src/logic.cpp`

### System integrations

- **Package manager**
- **ConnMan**

### Application data

- [Application record](https://github.com/samsung/cert-checker/blob/master/src/include/app.h): `src/include/app.h`
- [SQL connection](https://github.com/samsung/cert-checker/blob/master/src/dpl/db/src/sql_connection.cpp): `src/dpl/db/src/sql_connection.cpp`
- **SQLite database**

### Shared support

- [Journal logging](https://github.com/samsung/cert-checker/blob/master/src/log/log.cpp): `src/log/log.cpp`

### Other components

- **System events**
- **System journal**

## Connections

- Checker executable → Logic coordinator: entry wiring unknown
- Logic coordinator → Package manager: creates and registers
- Package manager → Logic coordinator: dispatches events
- Logic coordinator → ConnMan: connects proxy
- ConnMan → Logic coordinator: signals changes
- Logic coordinator → Application record: uses records
- Logic coordinator → SQL connection: loads database
- SQL connection → SQLite database: executes SQL
- Journal logging → System journal: sends entries
