From c3c8cc745f085484b048e29decde5af755b03a8d Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 27 Nov 2023 23:39:26 +0100 Subject: [PATCH] Add diagram for SEIPDv2 --- book/source/10-encryption.md | 7 ++ book/source/drawio/SEIPDv2-PKESK.drawio | 94 ++++++++++++++++++++++++ book/source/drawio/SEIPDv2-PKESK.png | Bin 0 -> 44278 bytes 3 files changed, 101 insertions(+) create mode 100644 book/source/drawio/SEIPDv2-PKESK.drawio create mode 100644 book/source/drawio/SEIPDv2-PKESK.png diff --git a/book/source/10-encryption.md b/book/source/10-encryption.md index b21cc27..34d5174 100644 --- a/book/source/10-encryption.md +++ b/book/source/10-encryption.md @@ -76,6 +76,13 @@ The [version 2 SEIPD](https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto- In version 2 SEIPD, the *session key* is transformed into a *message key*, based on a salt value in the v2 SEIPD packet. +```{figure} drawio/SEIPDv2-PKESK.png +:name: fig-encryption-seipdv2-pkesk +:alt: TODO + +With SEIPDv2, the message-key is derived from the session-key in an extra step. +``` + ### v1 SEIPD, based on MDC The [version 1 SEIPD](https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-12.html#version-one-seipd) mechanism is supported by all modern OpenPGP version 4 implementations. It was introduced in [RFC 4880](https://www.rfc-editor.org/rfc/rfc4880.html#section-5.13). diff --git a/book/source/drawio/SEIPDv2-PKESK.drawio b/book/source/drawio/SEIPDv2-PKESK.drawio new file mode 100644 index 0000000..9a4a400 --- /dev/null +++ b/book/source/drawio/SEIPDv2-PKESK.drawio @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/book/source/drawio/SEIPDv2-PKESK.png b/book/source/drawio/SEIPDv2-PKESK.png new file mode 100644 index 0000000000000000000000000000000000000000..f3151ca530b6d081547073c89eaae6cad2fd7b16 GIT binary patch literal 44278 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