A Rust library to interact with decentralized OpenPGP identity claims and proofs.
Go to file
Alexis Lowe 5fd4a9f78a
feat: move config code to mod.rs
2023-08-28 11:12:41 +01:00
examples Added working example 2023-08-13 10:42:07 -04:00
src feat: move config code to mod.rs 2023-08-28 11:12:41 +01:00
tests Added tests for ORCiD claim format 2023-08-18 17:33:26 -04:00
.gitignore feat: include provider configs into build 2023-08-20 19:12:18 +01:00
.woodpecker.yml ci: Fix apt-get command 2023-03-01 14:00:23 +01:00
CHANGELOG.md Initial commit 2021-11-12 14:55:29 +01:00
Cargo.toml feat: allow picking providers via features 2023-08-20 22:39:08 +01:00
LICENSE Initial commit 2021-11-12 14:55:29 +01:00
README.md chore: Misc feats and fixes 2023-03-13 14:46:26 +01:00

README.md

doip-rs

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

Usage

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 claim = Claim::new(uri, fingerprint);

// Find matching service providers
let matches = claim.find_matches();

// Verify the claim
let result = claim.verify_with_matches(matches.unwrap()).await.unwrap();

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

About

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.

Roadmap

  • 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

Contributing

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

All PRs are welcome.

License

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