Let's look at the output of the "status" command, in three examples:

First, we can check out the contents of my certificate, e.g. by pulling it from a public keyserver, like this:

$ curl -s "https://pgpkeys.eu/pks/lookup?op=get&search=0x23da7c0eaa711f0170013595b518d342eb2d4805" | rpgp status

The output shows the top-level primary key material and its metadata in a first block, followed by a series of subkeys with their respective metadata, and finally a set of four User IDs.

Validity of each component is shown both as emoji and explanatory text.

๐Ÿงต 2/5

A terminal session that shows the following command and output:

$ curl -s "https://pgpkeys.eu/pks/lookup?op=get&search=0x23da7c0eaa711f0170013595b518d342eb2d4805" | rpgp status
๐Ÿ” EdDSA/Curve25519 v4 23da7c0eaa711f0170013595b518d342eb2d4805
  โฑ๏ธ Created 2023-04-23 03:04:56 UTC
  โœ… Active, expires 2026-04-22 03:04:56 UTC
  ๐Ÿด Key flags: Certify

  ๐Ÿ”‘ EdDSA/Curve25519 v4 954fc07eb1a70fc30bfc10f839d6c12995a8d067
    โฑ๏ธ Created 2023-05-09 21:02:23 UTC
    โœ… Active, expires 2026-04-22 10:12:46 UTC
    ๐Ÿด Key flags: Auth

  ๐Ÿ”‘ ECDH/Curve25519 v4 f84f06b6f44c9090f1c27f89c8edabd42aa0c4e8
    โฑ๏ธ Created 2023-05-09 21:02:12 UTC
    โœ… Active, expires 2026-04-22 10:12:46 UTC
    ๐Ÿด Key flags: Encrypt

  ๐Ÿ”‘ EdDSA/Curve25519 v4 03c75b9e40375ce18d815946dae9a9050fccf1eb
    โฑ๏ธ Created 2023-05-09 21:01:49 UTC
    โœ… Active, expires 2026-04-22 10:12:46 UTC
    ๐Ÿด Key flags: Sign

  ๐Ÿ”‘ ECDH/Curve25519 v4 c09cbaaf8dcc628209789ad3c283ad022c2ed0de
    โฑ๏ธ Created 2023-04-23 03:04:56 UTC
    ๐Ÿšซ Revoked (soft): KeySuperseded "subkey is retired", 2023-12-09 23:58:06 UTC

  ๐Ÿชช ID "<heiko.schaefer@posteo.de>"
    โœ… Active, expires 2026-04-22 10:46:31 UTC

  ๐Ÿชช ID "Heiko Schaefer"
    โœ… Active, expires 2026-04-22 10:46:31 UTC

  ๐Ÿชช ID "Heiko Schaefer <heiko@schaefer.name>"
    โœ… Active, expires 2026-04-22 10:46:31 UTC

  ๐Ÿชช ID "Heiko Schaefer <heiko.schaefer@posteo.de>"
    โœ… Active, expires 2026-04-22 10:46:31 UTC
A terminal session that shows the following command and output: $ curl -s "https://pgpkeys.eu/pks/lookup?op=get&search=0x23da7c0eaa711f0170013595b518d342eb2d4805" | rpgp status ๐Ÿ” EdDSA/Curve25519 v4 23da7c0eaa711f0170013595b518d342eb2d4805 โฑ๏ธ Created 2023-04-23 03:04:56 UTC โœ… Active, expires 2026-04-22 03:04:56 UTC ๐Ÿด Key flags: Certify ๐Ÿ”‘ EdDSA/Curve25519 v4 954fc07eb1a70fc30bfc10f839d6c12995a8d067 โฑ๏ธ Created 2023-05-09 21:02:23 UTC โœ… Active, expires 2026-04-22 10:12:46 UTC ๐Ÿด Key flags: Auth ๐Ÿ”‘ ECDH/Curve25519 v4 f84f06b6f44c9090f1c27f89c8edabd42aa0c4e8 โฑ๏ธ Created 2023-05-09 21:02:12 UTC โœ… Active, expires 2026-04-22 10:12:46 UTC ๐Ÿด Key flags: Encrypt ๐Ÿ”‘ EdDSA/Curve25519 v4 03c75b9e40375ce18d815946dae9a9050fccf1eb โฑ๏ธ Created 2023-05-09 21:01:49 UTC โœ… Active, expires 2026-04-22 10:12:46 UTC ๐Ÿด Key flags: Sign ๐Ÿ”‘ ECDH/Curve25519 v4 c09cbaaf8dcc628209789ad3c283ad022c2ed0de โฑ๏ธ Created 2023-04-23 03:04:56 UTC ๐Ÿšซ Revoked (soft): KeySuperseded "subkey is retired", 2023-12-09 23:58:06 UTC ๐Ÿชช ID "<heiko.schaefer@posteo.de>" โœ… Active, expires 2026-04-22 10:46:31 UTC ๐Ÿชช ID "Heiko Schaefer" โœ… Active, expires 2026-04-22 10:46:31 UTC ๐Ÿชช ID "Heiko Schaefer <heiko@schaefer.name>" โœ… Active, expires 2026-04-22 10:46:31 UTC ๐Ÿชช ID "Heiko Schaefer <heiko.schaefer@posteo.de>" โœ… Active, expires 2026-04-22 10:46:31 UTC

Analogously, we can inspect a modern v6 OpenPGP certificate, which uses up-to-date formats from the very recent RFC 9580.

We'll make a fresh example v6 certificate to look at with the "rsop" tool:

$ rsop generate-key --profile rfc9580 "" | rsop extract-cert > alice_v6.cert

And then look into it with:

$ rpgp status alice_v6.cert

๐Ÿงต 3/5

We can also ask the "rpgp" CLI tool to emit the same certificate status information in #JSON format:

$ rpgp status --json alice_v6.cert

Please be aware that the rpgp JSON output format is in a very early stage, and may be subject to change!

(At some point I will commit to not changing the JSON format on a whim, but that point is not right now.)

๐Ÿงต 4/5

Finally, rpgp is just as happy to inspect ancient PGP certificates as it is with modern v6 ones:

$ rpgp status hal_1992.cert

This historical PGP certificate is almost 33 years old today, and uses the prehistoric "v2" key format.

While it's certainly not practically useful to use such keys in the current era, it may still sometimes be helpful (or just plain fun) to inspect them, for informational purposes - or to marvel at the longevity of the OpenPGP format for a minute.

๐Ÿงต 5/5