PublicKeyServer Documentation

Comprehensive documentation for the PublicKeyServer and SurePack secure file transfer system

What is PublicKeyServer?

PublicKeyServer is a next-generation secure file transfer platform that implements the Anonymous Certificate Enrollment (ACE) protocol. It provides end-to-end encrypted file sharing with optional anonymous identity capabilities, designed as a modern, user-friendly alternative to PGP.

Key Innovation: PublicKeyServer combines military-grade encryption with consumer-grade simplicity. Users get memorable three-word aliases (like happy-cloud-tree.publickeyserver.org) instead of complex key fingerprints, while benefiting from post-quantum cryptography that protects against future threats.

Core Components

  • SureDrop Server: REST API server providing certificate management and encrypted file relay
  • SurePack Client: Cross-platform CLI and experimental GUI for creating, sending, and receiving encrypted packages
  • ACE Protocol: Anonymous certificate system based on EST (RFC7030) principles
  • Hybrid Encryption: AES-256-GCM + RSA-2048 + Kyber1024 (quantum-resistant)

Key Features

End-to-End Encryption Post-Quantum Ready Anonymous Option No Key Management Perfect Forward Secrecy Zero-Knowledge Server Integrated Delivery Digital Signatures

Getting Started

Technical Documentation

Additional Resources

Quick Links

Live Demo: publickeyserver.org

Downloads: Available for Windows, macOS, and Linux at the main site

Source Code: github.com/rob-linton/publickeyserver

API Reference: See the ACE Protocol documentation for REST API details

Understanding the Technology Stack

Cryptography

  • Classical Encryption: RSA-2048 for key exchange
  • Symmetric Encryption: AES-256-GCM for file content
  • Post-Quantum KEM: CRYSTALS-Kyber1024 (NIST approved)
  • Digital Signatures: SHA-512 with RSA + CRYSTALS-Dilithium5
  • Key Derivation: Argon2id for password-based encryption

Implementation

  • Server: ASP.NET Core REST API
  • Client: .NET 8 (cross-platform)
  • Storage: Amazon S3 for scalability
  • Crypto Library: Bouncy Castle
  • GUI Framework: Terminal.Gui (experimental)

License Model

PublicKeyServer operates under a custom non-monetization open source license designed to keep the software freely available while preventing commercial exploitation.

📋 License Summary

PublicKeyServer Non-Monetization Open Source License

This license grants broad usage rights while ensuring the software remains free for everyone.

✅ What You CAN Do

  • Personal Use: Use for any personal purpose
  • Business Use: Use internally and externally within your organization
  • Modify & Distribute: Create and share improvements (under same license)
  • Educational Use: Use in schools, universities, and training
  • Government Use: Deploy in public sector organizations
  • Research: Use for both commercial and academic research
  • Free Services: Provide the software as a free service to others

❌ What You CANNOT Do

  • Sell the Software: No charging fees for the software itself
  • Monetize Services: No charging for services based on this software
  • Generate Revenue: No using the software to make money directly or indirectly
  • Create Financial Barriers: Must remain freely accessible to all users
  • Remove Attribution: Must credit original authors

🏢 Special Arrangements

Organizations wishing to monetize the software or offer paid services based on it can request explicit written permission from the license holders. Such arrangements would be considered under separate commercial licensing terms.

License Philosophy: This model ensures that PublicKeyServer remains a public good while allowing extensive use in business, education, and research environments. The restriction on monetization prevents the creation of paid alternatives that could fragment the user base or compromise the project's accessibility mission.

For complete license terms and legal text, see the LICENSE file in the project repository.