A Rust library to interact with decentralized OpenPGP identity claims and proofs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.7 KiB


A Rust library to interact with decentralized OpenPGP identity claims and proofs.


A quick example to verify a Gitea account:

use doip::claim::Claim;
use doip::service_provider::ServiceProvider;

// Prepare the identity claim
let uri = "https://codeberg.org/yarmo/gitea_proof";
let fingerprint = "9f0048ac0b23301e1f77e994909f6bd6f80f485d";
let mut claim = Claim::new(uri, fingerprint);

// Find matching service providers

// Verify the claim

// Print the result
println!("Claim: {:?}", claim);


A Claim is an identity claim that needs to be verified. An identity claim is verified when the account it links to and claims possesses the fingerprint of the cryptographic key in which the identity claim is stored (bidirectional linking).

doip attempts to match the claim any of the library of service providers based on the URI of the claim. For each service provider match, doip makes an HTTP request to the public API associated with the service provider and attemps to find the fingerprint in the data returned by the public API.

If the fingerprint is found, the claim is considered verified.


  • Improve code quality
  • Improve documentation
  • Add parallel processing of claims
  • Add processing of cryptographic keys
  • Add processing of signature profiles
  • Add additional proof request protocols (DNS, IRC, XMPP…)
  • Publish to crates.io


Please report bugs and make feature requests on the Codeberg issue tracker.

All PRs are welcome.


doip-rs is licensed under Apache License, Version 2.0.