Crates.io | dnssec-prover |
lib.rs | dnssec-prover |
version | 0.6.6 |
source | src |
created_at | 2024-02-05 04:31:32.880956 |
updated_at | 2024-11-18 15:02:53.159578 |
description | A simple crate which allows for the creation and validation of transferrable proofs of entries in the DNS. |
homepage | |
repository | https://git.bitcoin.ninja/index.cgi?p=dnssec-prover |
max_upload_size | |
id | 1127067 |
size | 2,946,412 |
This repo has a handful of APIs to create and verify RFC 9102 proofs.
It has minimal dependencies (bitcoin_hashes for hashing operations, hex_lit for some hex constants, and optionally tokio for networking in some APIs).
There are numerous APIs present:
validation
feature also enables
the validation
module, which allows for verification of an RFC 9102 proof.std
feature enables the query
module which can build an RFC 9102 proof using repeated queries to any
standard DNS server (including over DoH).wasmpack
directory and uniffi
directory expose very simplified APIs
to build and verify RFC 9102 proofs either in WASM (via wasm-pack, see-also
the wasmpack/doh_lookup.js
file which can build RFC 9102 proofs using
repeated queries to a DoH server directly from JavaScript) or any language
supported by uniffi
.http_proof_gen
binary in the crate builds an HTTP server
which responds to requests for RFC 9102 proofs in the form
/dnssecproof?d=domain&t=rr_type
, returning the binary proof containing and
proving the Resource Record of type rr_type
at domain
.The slower_smaller_binary
feature slows proof validation down by 50%+ for a
very marginal reduction in binary size, but those who are extremely binary size
constrained may still find it useful.
See https://docs.rs/dnssec-prover for full API details on the Rust API. There's also a website which demonstrates the WASM build of this crate at https://http-dns-prover.as397444.net/ which allows for making validated queries.