Skip to content

A C# implementation of the OpenPGP Web Key Directory (WKD), a service to locate OpenPGP keys by mail address using a Web service and the HTTPS protocol.

License

Notifications You must be signed in to change notification settings

roughconsensusandrunningcode/wkd-dotnet

Repository files navigation

.NET Quality Gate Status Reliability Rating Maintainability Rating Security Rating Coverage

OpenPgpWebKeyDirectory for .NET

A C# implementation of the OpenPGP Web Key Directory (WKD) (https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/), a service to locate OpenPGP keys by mail address using a Web service and the HTTPS protocol.

OpenPgpWebKeyDirectory.Client.Library

WKD Client library. Implements Key discovery, Policy file and Submission Address fetching, and basic key validation logic. It also defines two contract interfaces (IPgpKeyParser and IPgpKeyWrapper) for application-defined keyring parsing.

Uses: CSharpFunctionalExtensions

OpenPgpWebKeyDirectory.Client.Library.BouncyCastle

Implements IPgpKeyParser and IPgpKeyWrapper using the Bouncy Castle 2.1 crypto library.

OpenPgpWebKeyDirectory.Client.Library.Extensions.DependencyInjection

Methods and classes for configuring the WKD Client and related services into the Microsoft dependency injection container.

OpenPgpWebKeyDirectory.Client.ConsoleApp.WkdChecker

An example commandline application, a small program that

  • given a domain, verifies that the WELLKNOWN/policy file is present and well-formed, the WELLKNOWN/submission-address is present and there is a valid public key available for the submission address.
  • given an email address, tries to discover the key(s)

OpenPgpWebKeyDirectory.Client.Library.Tests

Test suite, mostly based on the Java implementation test suite (https://github.com/pgpainless/wkd-java/tree/main/wkd-test-suite)

Maturity and Versioning

This library implements a protocol that is currently in Internet-Draft status. The library itself is a work in progress, so the API is unstable and may change anytime. Currently, the library is versioned after the supported version of the specification, with the scheme 0.{draft-version}.{patch}-draft. The I-D is currently at version 15 (released 2022-11-14, expires on 2023-05-18), so the library version is 0.15.0-draft. When the specification will be stable and published as an RFC, the usual semantic version will be used.

Copyright

Copyright (c) 2022 Fabrizio Tarizzo

License

This project is licensed under the MIT License

References

Guides and Tutorials

Other implementations

About

A C# implementation of the OpenPGP Web Key Directory (WKD), a service to locate OpenPGP keys by mail address using a Web service and the HTTPS protocol.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages