summaryrefslogtreecommitdiffstats
path: root/examples/guide-the-keystore.rs
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2018-01-31 17:53:38 +0100
committerJustus Winter <justus@sequoia-pgp.org>2018-01-31 17:53:38 +0100
commit0f89cb3ddb6c668c488945fce099eff3102b4aa7 (patch)
tree615bc7f6cfe3f304363ffb5ef96686866e0adb88 /examples/guide-the-keystore.rs
parent59e0dbc8222fe546d328b31f94d3f8cd1a1097a2 (diff)
Add the code from the guide as examples.
Diffstat (limited to 'examples/guide-the-keystore.rs')
-rw-r--r--examples/guide-the-keystore.rs57
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/guide-the-keystore.rs b/examples/guide-the-keystore.rs
new file mode 100644
index 00000000..effd9e71
--- /dev/null
+++ b/examples/guide-the-keystore.rs
@@ -0,0 +1,57 @@
+//! https://preview.sequoia-pgp.org/guide/the-keystore/
+
+#[macro_use] extern crate openpgp; // For armored!
+use openpgp::armor; // For armored!
+extern crate sequoia;
+use sequoia::{core, store};
+
+fn main() {
+ let mut reader = armored!(
+ "-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ mQENBFpxtsABCADZcBa1Q3ZLZnju18o0+t8LoQuIIeyeUQ0H45y6xUqyrD5HSkVM
+ VGQs6IHLq70mAizBJ4VznUVqVOh/NhOlapXi6/TKpjHvttdg45o6Pgqa0Kx64luT
+ ZY+TEKyILcdBdhr3CzsEILnQst5jadgMvU9fnT/EkJIvxtWPlUzU5R7nnALO626x
+ 2M5Pj3k0h3ZNHMmYQQtReX/RP/xUh2SfOYG6i/MCclIlee8BXHB9k0bW2NAX2W7H
+ rLDGPm1LzmyqxFGDvDvfPlYZ5nN2cbGsv3w75LDzv75kMhVnkZsrUjnHjVRzFq7q
+ fSIpxlvJMEMKSIJ/TFztQoOBO5OlBb5qzYPpABEBAAG0F+G8iM+BzrnPg8+Ezr/P
+ hM6tzrvOt8+CiQFUBBMBCAA+FiEEfcpYtU6xQxad3uFfJH9tq8hJFP4FAlpxtsAC
+ GwMFCQPCZwAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQJH9tq8hJFP49hgf+
+ IKvec0RkD9EHSLFc6AKDm/knaI4AIH0isZTz9jRCF8H/j3h8QVUE+/0jtCcyvR6F
+ TGVSfO3pelDPYGIjDFI3aA6H/UlhZWzYRXZ+QQRrV0zwvLna3XjiW8ib3Ky+5bpQ
+ 0uVeee30u+U3SnaCL9QB4+UvwVvAxRuk49Z0Q8TsRrQyQNYpeZDN7uNrvA134cf6
+ 6pLUvzPG4lMLIvSXFuHou704EhT7NS3wAzFtjMrsLLieVqtbEi/kBaJTQSZQwjVB
+ sE/Z8lp1heKw/33Br3cB63n4cTf0FdoFywDBhCAMU7fKboU5xBpm5bQJ4ck6j6w+
+ BKG1FiQRR6PCUeb6GjxVOrkBDQRacbbAAQgAw538MMb/pRdpt7PTgBCedw+rU9fh
+ onZYKwmCO7wz5VrVf8zIVvWKxhX6fBTSAy8mxaYbeL/3woQ9Leuo8f0PQNs9zw1N
+ mdH+cnm2KQmL9l7/HQKMLgEAu/0C/q7ii/j8OMYitaMUyrwy+OzW3nCal/uJHIfj
+ bdKx29MbKgF/zaBs8mhTvf/Tu0rIVNDPEicwijDEolGSGebZxdGdHJA31uayMHDK
+ /mwySJViMZ8b+Lzc/dRgNbQoY6yjsjso7U9OZpQK1fooHOSQS6iLsSSsZLcGPD+7
+ m7j3jwq68SIJPMsu0O8hdjFWL4Cfj815CwptAxRGkp00CIusAabO7m8DzwARAQAB
+ iQE2BBgBCAAgFiEEfcpYtU6xQxad3uFfJH9tq8hJFP4FAlpxtsACGwwACgkQJH9t
+ q8hJFP5rmQgAoYOUXolTiQmWipJTdMG/VZ5X7mL8JiBWAQ11K1o01cZCMlziyHnJ
+ xJ6Mqjb6wAFpYBtqysJG/vfjc/XEoKgfFs7+zcuEnt41xJQ6tl/L0VTxs+tEwjZu
+ Rp/owB9GCkqN9+xNEnlH77TLW1UisW+l0F8CJ2WFOj4lk9rcXcLlEdGmXfWIlVCb
+ 2/o0DD+HDNsF8nWHpDEy0mcajkgIUTvXQaDXKbccX6Wgep8dyBP7YucGmRPd9Z6H
+ bGeT3KvlJlH5kthQ9shsmT14gYwGMR6rKpNUXmlpetkjqUK7pGVaHGgJWUZ9QPGU
+ awwPdWWvZSyXJAPZ9lC5sTKwMJDwIxILug==
+ =lAie
+ -----END PGP PUBLIC KEY BLOCK-----"
+ );
+
+ // Provide some context.
+ let ctx = core::Context::new("org.sequoia-pgp.guide").unwrap();
+
+ // Parse TPK.
+ let tpk = openpgp::tpk::TPK::from_reader(&mut reader).unwrap();
+
+ // Open a store.
+ let store = store::Store::open(&ctx, "default").unwrap();
+
+ // Store the TPK.
+ store.import("Ἀριστοτέλης", &tpk).unwrap();
+
+ // Now let's get it back.
+ let tpk_ = store.lookup("Ἀριστοτέλης").unwrap().tpk().unwrap();
+ assert_eq!(tpk.fingerprint(), tpk_.fingerprint());
+}