summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2023-11-22 14:53:43 +0100
committerJustus Winter <justus@sequoia-pgp.org>2023-11-22 14:55:38 +0100
commit8303f73c933662d1ab7de9d27be4fe8a3038850a (patch)
treeb67440d8bb5420a4168ef73673853d361ec91d23
parent0c2acb9be58f87c2455aa59bd926a1da40c74e5f (diff)
net: Add examples for DANE.
-rw-r--r--net/examples/dane-generate.rs28
-rw-r--r--net/examples/dane-get.rs25
2 files changed, 53 insertions, 0 deletions
diff --git a/net/examples/dane-generate.rs b/net/examples/dane-generate.rs
new file mode 100644
index 00000000..04ece1aa
--- /dev/null
+++ b/net/examples/dane-generate.rs
@@ -0,0 +1,28 @@
+//! Demonstrates how to generate DANE records.
+
+use std::env;
+
+use sequoia_openpgp::{
+ Cert,
+ Result,
+ parse::Parse,
+ policy::StandardPolicy,
+};
+
+use sequoia_net::dane;
+
+fn main() -> Result<()> {
+ let domain = env::args()
+ .nth(1).expect("Usage: dane-get <DOMAIN> <CERT-FILE>");
+ let cert_file = env::args()
+ .nth(2).expect("Usage: dane-get <DOMAIN> <CERT-FILE>");
+
+ let p = StandardPolicy::new();
+ let cert = Cert::from_file(cert_file)?;
+ let vcert = cert.with_policy(&p, None)?;
+ for record in dane::generate(&vcert, domain, None, None)? {
+ println!("{}", record);
+ }
+
+ Ok(())
+}
diff --git a/net/examples/dane-get.rs b/net/examples/dane-get.rs
new file mode 100644
index 00000000..0d412918
--- /dev/null
+++ b/net/examples/dane-get.rs
@@ -0,0 +1,25 @@
+//! Demonstrates how retrieve certs via DANE.
+
+use std::{
+ env,
+ io,
+};
+
+use sequoia_openpgp::{
+ Result,
+ serialize::Serialize,
+};
+
+use sequoia_net::dane;
+
+#[tokio::main]
+async fn main() -> Result<()> {
+ let address = env::args()
+ .nth(1).expect("Usage: dane-get <EMAIL-ADDRESS>");
+
+ for cert in dane::get(address).await? {
+ cert?.armored().serialize(&mut io::stdout())?;
+ }
+
+ Ok(())
+}