aboutsummaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2019-05-27 18:14:16 -0400
committerDavid Bremner <david@tethera.net>2019-05-29 08:11:50 -0300
commit56416a54702669a23b7aa8f085a388d0c842e297 (patch)
tree3d441f1e9e1436e8881ebf8371507d65bf3e5535 /devel
parent1c7fbbcc99693c0433f7b06b569ce90c19ac5e1b (diff)
cli/show: add information about which headers were protected
The header-mask member of the per-message crypto object allows a clever UI frontend to mark whether a header was protected (or not). And if it was protected, it contains enough information to show useful detail to an interested user. For example, an MUA could offer a "show what this message's Subject looked like on the wire" feature in expert mode. As before, we only handle Subject for now, but we might be able to handle other headers in the future. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> Amended by db: tweaked schemata notation.
Diffstat (limited to 'devel')
-rw-r--r--devel/schemata15
1 files changed, 12 insertions, 3 deletions
diff --git a/devel/schemata b/devel/schemata
index 72feb7b7..28332c6b 100644
--- a/devel/schemata
+++ b/devel/schemata
@@ -4,9 +4,9 @@ format (currently JSON and S-Expressions).
[]'s indicate lists. List items can be marked with a '?', meaning
they are optional; or a '*', meaning there can be zero or more of that
item. {}'s indicate an object that maps from field identifiers to
-values. An object field marked '?' is optional. |'s indicate
-alternates (e.g., int|string means something can be an int or a
-string).
+values. An object field marked '?' is optional; one marked with '*'
+can repeat (with a different name). |'s indicate alternates (e.g.,
+int|string means something can be an int or a string).
For S-Expression output, lists are printed delimited by () instead of
[]. Objects are printed as p-lists, i.e. lists where the keys and values
@@ -48,6 +48,9 @@ threadid = string
# Message ID, sans "id:"
messageid = string
+# E-mail header name, sans trailing colon, like "Subject" or "In-Reply-To"
+header_name = string
+
notmuch show schema
-------------------
@@ -88,9 +91,15 @@ crypto = {
status: sigstatus,
# was the set of signatures described under encrypted cover?
encrypted: bool,
+ # which of the headers is covered by sigstatus?
+ headers: [header_name*]
},
decrypted?: {
status: msgdecstatus,
+ # map encrypted headers that differed from the outside headers.
+ # the value of each item in the map is what that field showed externally
+ # (maybe null if it was not present in the external headers).
+ header-mask: { header_name*: string|null }
}
}