Skip to content
This repository was archived by the owner on Oct 21, 2025. It is now read-only.
/ pkd-server-go Public archive

Reference implementation - server-side software for the Fediverse Public Key Directory Specification

License

Notifications You must be signed in to change notification settings

fedi-e2ee/pkd-server-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fediverse Public Key Directory Server Reference Implementation

Unit Tests Lints Mutation Testing Fuzz Testing CodeQL Semgrep

This is the reference implementation for the server-side component of the Public Key Directory specification, written in Go.

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:

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.

About

Reference implementation - server-side software for the Fediverse Public Key Directory Specification

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages