2026-05-15 23:47:10 +02:00
# MrTrust
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
MrTrust is the trust setup tool for MrSphay Windows software.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
Normal users run `MrTrust.exe` once, review the shown certificate details, and explicitly approve installing the public MrSphay trust certificates. After that, Windows can validate MrSphay apps that are signed with the matching code-signing certificate.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
MrTrust does not disable Microsoft Defender, SmartScreen, UAC, firewall rules, or company security policies.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
## Download
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
Latest release page:
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
```text
https://git.wilkensxl.de/MrSphay/MrTrust/releases
```
Download the newest `MrTrust-<version>.zip` , extract it, and start:
```text
MrTrust.exe
```
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
The executable is standalone for normal users. It embeds the public certificates and the scripts it needs at runtime.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
## For Users
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
Use the GUI buttons:
- `Install trust` installs MrSphay public trust certificates.
- `Remove trust` removes them again.
- `Refresh` checks the current trust state.
Default installation scope:
```text
Root certificate -> Cert:\CurrentUser\Root
Code-signing certificate -> Cert:\CurrentUser\TrustedPublisher
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
This means trust is installed only for the current Windows user.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
For all users on the PC, run `MrTrust.exe` as Administrator and choose the all-users option in the GUI.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
## What MrTrust Does
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
MrTrust installs public certificates that let Windows validate software signed by MrSphay.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
The expected flow is:
1. A MrSphay app is signed during its release build.
2. The user runs `MrTrust.exe` once and confirms the trust installation.
3. Windows can validate the signature chain for signed MrSphay apps on that PC.
## What MrTrust Does Not Do
- It does not make unsigned programs trusted.
- It does not bypass Defender or SmartScreen.
- It does not remove UAC prompts from apps that need administrator rights.
- It does not silently install certificates.
- It does not install private signing keys on user machines.
## Public Certificate Values
These values are public and can be used by agents or documentation:
```text
Publisher:
MrSphay
Root certificate thumbprint:
39F7458E6E2C1126E93E6A1F228196006B174DF2
Code-signing certificate thumbprint:
A024A89200469F099EC4A172B4F96F6428AFD41B
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
The same values are stored in:
```text
assets/certificates/thumbprints.txt
mrtrust.integration.json
```
## For Developers
Local maintainer commands:
2026-05-15 21:18:19 +00:00
```powershell
2026-05-15 23:47:10 +02:00
.\MrTrust.ps1 gui
2026-05-16 04:03:06 +02:00
.\MrTrust.ps1 install
.\MrTrust.ps1 uninstall
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
Create or refresh local certificates:
2026-05-15 21:18:19 +00:00
```powershell
2026-05-16 04:03:06 +02:00
.\scripts\New-MrTrustCertificate.ps1
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
Build a release ZIP locally:
2026-05-15 21:18:19 +00:00
```powershell
2026-05-16 04:03:06 +02:00
.\scripts\New-MrTrustRelease.ps1 -Version 0.1.3
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
Sign an artifact locally on Windows:
2026-05-15 21:18:19 +00:00
```powershell
2026-05-16 04:03:06 +02:00
.\MrTrust.ps1 sign `
-Path "C:\Path\To\App.exe" `
-CertificateThumbprint A024A89200469F099EC4A172B4F96F6428AFD41B
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
Private signing material belongs only in `private/` , Bitwarden, or Gitea secrets. Never commit `.pfx` files, private keys, passwords, or Base64-encoded signing material.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
## Gitea Secrets For Target Projects
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
For another project to sign Windows release artifacts on an Ubuntu Gitea runner, add these repository secrets to that target project:
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
```text
MRTRUST_CODESIGN_PFX_BASE64
MRTRUST_CODESIGN_PFX_PASSWORD
```
Optional timestamp override:
2026-05-15 21:18:19 +00:00
```text
2026-05-16 04:03:06 +02:00
MRTRUST_TIMESTAMP_URL
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
The values for the first two secrets should be kept in Bitwarden. They are private signing credentials.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
The helper script for Ubuntu runners is:
```text
scripts/Sign-MrTrustProjectLinux.sh
2026-05-15 21:18:19 +00:00
```
2026-05-16 04:03:06 +02:00
It signs supported Windows artifacts with `osslsigncode` :
2026-05-16 01:46:36 +02:00
2026-05-16 04:03:06 +02:00
```text
.exe
.msi
.dll
.cat
```
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
PowerShell scripts should be signed on Windows, not Ubuntu.
2026-05-16 01:46:36 +02:00
2026-05-16 04:03:06 +02:00
## Using MrTrust In Another Project
2026-05-16 02:03:25 +02:00
2026-05-16 04:03:06 +02:00
Give another agent this repository URL and the target Windows project:
2026-05-16 02:03:25 +02:00
2026-05-16 04:03:06 +02:00
```text
https://git.wilkensxl.de/MrSphay/MrTrust
```
2026-05-16 01:46:36 +02:00
2026-05-16 04:03:06 +02:00
Tell the agent to read these files:
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
```text
mrtrust.integration.json
docs/agent-target-integration.md
docs/integration-prompt.md
```
The agent should modify the target project so that:
- Windows release artifacts are signed.
- The project links to or bundles `MrTrust.exe` .
- Users have a visible optional trust setup path.
- Trust installation remains explicit and reversible.
- No private signing material is committed or shipped.
Both sides are required:
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
- MrTrust side: user installs the public trust certificates once.
2026-05-15 23:47:10 +02:00
- Target project side: release artifacts are signed with the MrSphay code-signing certificate.
2026-05-15 21:18:19 +00:00
2026-05-15 23:47:10 +02:00
If the target project is not signed, MrTrust cannot make it trusted.
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
## Current Build
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
The Gitea workflow builds `MrTrust.exe` on `ubuntu-latest` with .NET Windows cross-targeting, packages `MrTrust-0.1.3.zip` , uploads it as a workflow artifact, and attaches the ZIP to the Gitea release on `main` pushes.
Manual `workflow_dispatch` runs build artifacts but do not attach release assets, to avoid duplicate release uploads.
## Security Notes
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
MrTrust is intentionally transparent:
2026-05-15 21:18:19 +00:00
2026-05-16 04:03:06 +02:00
- The GUI shows the trust state.
- Installing trust requires user confirmation.
- Removing trust is available in the same tool.
- The public certificates are embedded in the executable.
- Private signing material is never needed on user machines.
2026-05-16 02:03:25 +02:00
2026-05-16 04:03:06 +02:00
For broad public distribution without SmartScreen reputation delays, a recognized commercial code-signing certificate is still the cleanest option.