fedi-e2ee / pkd-server
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 11
pkg:composer/fedi-e2ee/pkd-server
Requires
- php: ^8.4
- ext-json: *
- ext-pdo: *
- ext-sodium: *
- fedi-e2ee/pkd-crypto: ^0.17|1
- guzzlehttp/guzzle: ^7
- laminas/laminas-diactoros: ^3
- laminas/laminas-httphandlerrunner: ^2
- landrok/activitypub: ^0
- league/route: ^6
- paragonie/certainty: ^3
- paragonie/ciphersweet: ^4.9
- paragonie/constant_time_encoding: ^3
- paragonie/easy-ecc: ^1
- paragonie/easydb: ^3
- paragonie/easydb-cache: ^2.2
- predis/predis: ^3
- psr/http-message: ^2
- twig/twig: ^3
- ulrichsg/getopt-php: ^4
Requires (Dev)
- phpunit/phpunit: ^12
This package is auto-updated.
Last update: 2025-11-29 06:27:40 UTC
README
This is the reference implementation for the server-side component of the Public Key Directory specification, written in PHP.
What is this, and why does it exist?
The hardest part of designing end-to-end encryption for the Fediverse, as with most cryptography undertakings, is key management. In short: How do you know which public key belongs to a stranger you want to chat with privately? And how do you know you weren't deceived?
Our solution is to use Key Transparency, which involves publishing all public key enrollments and revocations to an append-only ledger based on Merkle trees. This allows for a verifiable, auditable log of all key-related events, providing a strong foundation for trust.
This project, and the accompanying specification, are the result of an open-source effort to solve this problem. You can read more about the project's origins and design philosophy on Soatok's blog, Dhole Moments:
Installation
Use Composer:
composer require fedi-e2ee/pkd-server
Documentation
For detailed information on how to deploy and configure the server, please see the online documentation.
License
This project is licensed under the ISC License.