From 9643299546b522590feaf1e2b3a212370f3d8690 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 8 Dec 2023 23:11:07 +0100 Subject: [PATCH 1/3] Describe nested one-pass-signatures --- book/source/07-signing_data.md | 55 +++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/book/source/07-signing_data.md b/book/source/07-signing_data.md index a9d7c6b..a219643 100644 --- a/book/source/07-signing_data.md +++ b/book/source/07-signing_data.md @@ -69,13 +69,7 @@ To produce an {term}`inline signature`, the {term}`signer` processes the entiret For efficient {term}`verification`, an application must understand how to handle the {term}`literal data` prior to its reading. This requirement is addressed by the {term}`one-pass signature packets` located at the beginning of {term}`inline-signed` messages. These {term}`packets` include essential information such as the {term}`fingerprint` of the {term}`signing key` and the {term}`hash` algorithm used for computing the {term}`signature`'s {term}`hash digest`. This setup enables the verifier to process the data correctly and efficiently. -```{admonition} TODO -:class: warning - -Is the signer keyid/fingerprint in the OPS important for the verifier to be able to verify the signature efficiently? Or is it (only?) there to be hashed and signed, along with the literal data? - -Realization: It's probably useful to know the fingerprints right away, to first go find the public key material, before calculating the hash of a huge file. -``` +Strictly speaking, the hash algorithm would be sufficient to begin the verification process, but having the signers fingerprint/key-id available upfront allows to fetch the signers certificate before processing the entirety of the - potentially large - signed data. #### Verification @@ -148,8 +142,49 @@ Despite their widespread adoption, {term}`cleartext signatures Date: Sat, 9 Dec 2023 19:23:45 +0100 Subject: [PATCH 2/3] edits for clarity --- book/source/07-signing_data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/source/07-signing_data.md b/book/source/07-signing_data.md index a219643..c95be3b 100644 --- a/book/source/07-signing_data.md +++ b/book/source/07-signing_data.md @@ -69,7 +69,7 @@ To produce an {term}`inline signature`, the {term}`signer` processes the entiret For efficient {term}`verification`, an application must understand how to handle the {term}`literal data` prior to its reading. This requirement is addressed by the {term}`one-pass signature packets` located at the beginning of {term}`inline-signed` messages. These {term}`packets` include essential information such as the {term}`fingerprint` of the {term}`signing key` and the {term}`hash` algorithm used for computing the {term}`signature`'s {term}`hash digest`. This setup enables the verifier to process the data correctly and efficiently. -Strictly speaking, the hash algorithm would be sufficient to begin the verification process, but having the signers fingerprint/key-id available upfront allows to fetch the signers certificate before processing the entirety of the - potentially large - signed data. +Strictly speaking, knowing just the hash algorithm would be sufficient to begin the verification process. However, having efficient access to the signer's fingerprint or key ID upfront allows OpenPGP software to fetch the signer's certificates before processing the entirety of the - potentially large - signed data, and . #### Verification From 64c8dffee813e92a7089a7a6418c5eb7043f93e4 Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Sun, 10 Dec 2023 13:09:52 +0100 Subject: [PATCH 3/3] dropping the zalgo for now, with mixed feelings and paul's blessing (i hope we'll find the perfect place to revive it, in round 2!) --- book/source/07-signing_data.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/book/source/07-signing_data.md b/book/source/07-signing_data.md index c95be3b..d166794 100644 --- a/book/source/07-signing_data.md +++ b/book/source/07-signing_data.md @@ -185,6 +185,3 @@ Now, a message, where the signer attests an already signed message has the follo `OPS₁ OPS₁ LIT("Hello World") SIG SIG` While the inner signature is calculated over the usual plaintext `Hello World`, the outer signature is instead calculated over `OPS₁ Hello World SIG`. - -And if you gaze long enough into an ̸̞̈a̷̬̎b̶̩̍y̵͍̓ṣ̸͝s̸̞̓,̶̢͂ ̵͔̈ṯ̷̎h̸̫̓e̸̥̽ ̸̧̏a̴̼̣̓̓b̶͖̺̈́͘ŷ̷̢͚̽ŝ̷̛̲̠s̴͍̞͐́ ̵̝̫͂̚w̸͎͇͌̇i̵̹̗͗́l̷̼̬̾͑l̷͍̮̿̃ ̵̞̠͍̘͊̃̚͠ḡ̷͓͙̯̹͗̍͘a̶̫͇̜̬̓́̓̽z̵̰̰͈̀̈́̓̊͜e̸̢̦͚̼͛́́͘ b̷͍͚͇̖̤̘͒̏͂̄̿̂͘ͅa̸̧͎̗͈̥̞̗͊̔̐̓́͆̽c̴͇͖̲͉̱̲͈͌̾̈̅̽̆͝k̵̨̧̨͇̦̝̈́͆͐̾͑̅̇͜ ̷͓̱̣̳͇̜́̑̀̑͂̀͛ͅḯ̴̛̥̙̣͈̪͕̅̃̇̽̚ͅn̷̨͓͎̪̫̥̮̐̇̋̈́͛̅͠t̶͍͉̭̝̩̼̟̂̍̓̌̄̚͠o̷̟͚͇̰̥̲̬͊̒̈́̃̐̽͆ ̸͉̰̮̞̱̣̄͌̓̐͌̃̕͜ý̴̨̺̠̘̲̻̃̅̋̾̒̕ͅǫ̷̰̳͕͚̯̭̾̑̎͌͂͝͝ṵ̸̡̼̜̗͖͉̄̍̿͌̽͐̚.̸̣̩̻͍̘̭̱̆́͌́̀͊̚ -