Glogos Protocol CLI - Modern digital signatures, simpler than PGP
Project description
glo-cli
Modern digital signatures. Simpler than PGP, verifiable forever.
A minimal CLI for the Glogos Protocol - cryptographic attestations using Ed25519 + SHA-256.
Installation
pip install glo-cli
Quick Start
# Create your identity (protected by passphrase)
glo init
# Sign a file
glo sign document.pdf
# Verify a signature
glo verify document.pdf
# Create a message attestation
glo attest "Contract approved by all parties"
Security
Your private key is protected using industry best practices:
| Component | Algorithm | Parameters |
|---|---|---|
| Key Derivation | Argon2id | m=64MB, t=3, p=4 |
| Encryption | AES-256-GCM | 12-byte nonce |
| Signature | Ed25519 | RFC 8032 |
This follows OWASP recommendations and provides strong resistance against GPU/ASIC brute-force attacks.
Commands
Identity
glo init # Create identity (passphrase required)
glo id # Show your zone ID and public key
glo export # Export public key
glo export --json # Export as JSON
glo passwd # Change passphrase
glo backup # ⚠️ CRITICAL: Show 24-word recovery phrase
glo backup --verify # Show and verify you wrote it down
glo restore # Restore identity from recovery phrase
Signing
glo sign <file> # Sign a file (creates .glo file)
glo verify <file> # Verify a signature
glo batch <dir> # Sign all files in directory
glo batch <dir> -r # Sign recursively
Attestations
glo attest "message" # Create message attestation
glo hash <file> # Compute SHA-256 hash
DID (Decentralized Identifier)
glo did # Show your DID
glo did --document # Show full DID Document
Git Integration
glo git attest # Attest current commit
glo git attest <hash> # Attest specific commit
glo git verify # Verify current commit
glo git verify <hash> # Verify specific commit
glo git log # Show attestation status for recent commits
glo git log 20 # Show last 20 commits
Info
glo info # Show protocol info
glo --version # Show version
glo --help # Show help
Signature Format
Signatures are stored as JSON files with .glo extension:
{
"_type": "file",
"_filename": "document.pdf",
"_size": 12345,
"attestation": {
"id": "abc123...",
"zone": "def456...",
"subject": "789abc...",
"canon": "c794a6fc...",
"time": 1703500800,
"refs": ["03b42642..."],
"proof": "9a06e9a9..."
},
"public_key": "c70b1f7e..."
}
Standard Canons
glo-cli implements the following protocol canons:
| Name | ID | Description |
|---|---|---|
raw:sha256:1.0 |
c794a6fc... |
Standard file signatures |
timestamp:simple:1.0 |
5c25b519... |
Self-reported timestamping |
canon:definition:1.0 |
df4e66f5... |
Protocol extension definitions |
opt:git:commit:1.0 |
6fd6b8e8... |
Git commit attestations |
opt:glogos:manifest:1.0 |
8e85667a... |
Directory batch manifests |
File Structure
~/.glogos/
├── zone.json # Identity info (zone ID, public key, metadata)
├── secret.enc # Encrypted private key (Default secure mode)
└── secret.key # Plaintext private key (Only in --insecure mode)
Security Modes
- Encrypted (Recommended): Private key is protected by Argon2id + AES-256-GCM.
- Insecure (
--insecure): Private key stored in plaintext. Useful for CI/CD or automated scripts.
To migrate from insecure to encrypted mode without losing your identity:
glo migrate
Comparison with GPG
| Feature | GPG | glo |
|---|---|---|
| UX | Complex (20+ questions) | Zero-config (0 questions) |
| Trust | Web of Trust / Key Servers | Self-certifying / DAG-based |
| Storage | Complex keyrings | Minimal JSON files |
| Crypto | RSA/DSA/ECDSA (Legacy) | Ed25519 + Argon2id (Modern) |
| Auditable | Binary blobs | Human-readable JSON |
Requirements
- Python 3.8+
- PyNaCl (Ed25519)
- argon2-cffi (Key derivation)
- cryptography (AES-GCM)
Protocol
- Spec: GLOGOS.md
- Genesis: GENESIS.md (Winter Solstice 2025)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glo_cli-0.1.0.tar.gz.
File metadata
- Download URL: glo_cli-0.1.0.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ee37a88df2c1d217514ea1001fec3a286bc45188bfa86f49123e0db0cfd33bb
|
|
| MD5 |
c30464edc672909d199609809430bbd5
|
|
| BLAKE2b-256 |
0afb5be3b264be6919d807e46c2d66c27c63832659d5449a4b285eeaa339ff3f
|
File details
Details for the file glo_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: glo_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd536d89b34acf1f51c97e2df666004249a6e065d43a61dd323b72b43204d4d2
|
|
| MD5 |
de198e45b75ac25180c343e963e142c7
|
|
| BLAKE2b-256 |
9e51c9e2eb998cfcdd25dcf8ddbb432577bbd6f13bbadaafdd8582a6e5ea936f
|