Skip to content

Commit 81661c0

Browse files
committed
Show all DKIM signatures with details (#160, #299)
1 parent 45a864e commit 81661c0

11 files changed

+506
-64
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
88

99
### Enhancements
1010

11+
- Show all DKIM signatures with additional details in the DKIM button pop-up (#160, #299).
1112
- Improved table views for sign rules and DKIM keys (#248, #305).
1213
E.g. it is now possible to delete multiple entries at once.
1314

RuntimeMessage.d.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,15 @@ namespace RuntimeMessage {
9797
}
9898
}
9999

100-
interface queryButtonState extends DisplayActionMessage {
101-
readonly method: "queryButtonState";
100+
interface queryResultState extends DisplayActionMessage {
101+
readonly method: "queryResultState";
102102
}
103-
interface queryButtonStateResult {
103+
interface queryResultStateResult {
104104
readonly reverifyDKIMSignature: boolean;
105105
readonly policyAddUserException: boolean;
106106
readonly markKeyAsSecure: boolean;
107107
readonly updateKey: boolean;
108+
readonly dkim: AuthResultDKIM[];
108109
}
109110

110111
interface reverifyDKIMSignature extends DisplayActionMessage {
@@ -123,7 +124,7 @@ namespace RuntimeMessage {
123124
readonly method: "updateKey";
124125
}
125126

126-
type Messages = queryButtonState | reverifyDKIMSignature | policyAddUserException | markKeyAsSecure | updateKey;
127+
type Messages = queryResultState | reverifyDKIMSignature | policyAddUserException | markKeyAsSecure | updateKey;
127128
}
128129

129130
type Messages = SignRules.Messages | KeyDb.Messages | DisplayAction.Messages;

_locales/de/messages.json

+36
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,42 @@
632632
"dkim_verifier.updateKey": {
633633
"message": "DKIM-Schlüssel aktualisieren"
634634
},
635+
"details.result": {
636+
"message": "Ergebnis",
637+
"description": "Detailed view row name for the overall DKIM result."
638+
},
639+
"details.warnings": {
640+
"message": "Warnungen",
641+
"description": "Detailed view row name for the warnings of the DKIM signature."
642+
},
643+
"details.SDID": {
644+
"message": "SDID",
645+
"description": "Detailed view row name for the SDID."
646+
},
647+
"details.AUID": {
648+
"message": "AUID",
649+
"description": "Detailed view row name for the AUID."
650+
},
651+
"details.signDate": {
652+
"message": "Signatur-Zeitstempel",
653+
"description": "Detailed view row name for the date (including time) the signature was created."
654+
},
655+
"details.expirationDate": {
656+
"message": "Signatur-Ablaufdatum",
657+
"description": "Detailed view row name for the date (including time) the signature expires."
658+
},
659+
"details.algorithm": {
660+
"message": "Signaturalgorithmus",
661+
"description": "Detailed view row name for the algorithm used in the signature."
662+
},
663+
"details.signedHeaders": {
664+
"message": "Signierte Kopfzeilen",
665+
"description": "Detailed view row name for the message headers signed by DKIM."
666+
},
667+
"details.noDate": {
668+
"message": "Kein Zeitpunkt in der Signatur enthalten",
669+
"description": "Value shown for sign and expiration date if no date is given in the signature."
670+
},
635671
// ==================== Table Views ====================
636672
"treeviewKeys.title": {
637673
"message": "DKIM-Schlüssel",

_locales/en_US/messages.json

+36
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,42 @@
632632
"dkim_verifier.updateKey": {
633633
"message": "Update DKIM key"
634634
},
635+
"details.result": {
636+
"message": "Result",
637+
"description": "Detailed view row name for the overall DKIM result."
638+
},
639+
"details.warnings": {
640+
"message": "Warnings",
641+
"description": "Detailed view row name for the warnings of the DKIM signature."
642+
},
643+
"details.SDID": {
644+
"message": "SDID",
645+
"description": "Detailed view row name for the SDID."
646+
},
647+
"details.AUID": {
648+
"message": "AUID",
649+
"description": "Detailed view row name for the AUID."
650+
},
651+
"details.signDate": {
652+
"message": "Sign date",
653+
"description": "Detailed view row name for the date (including time) the signature was created."
654+
},
655+
"details.expirationDate": {
656+
"message": "Expiration date",
657+
"description": "Detailed view row name for the date (including time) the signature expires."
658+
},
659+
"details.algorithm": {
660+
"message": "Algorithm",
661+
"description": "Detailed view row name for the algorithm used in the signature."
662+
},
663+
"details.signedHeaders": {
664+
"message": "Signed headers",
665+
"description": "Detailed view row name for the message headers signed by DKIM."
666+
},
667+
"details.noDate": {
668+
"message": "No time included in the signature",
669+
"description": "Value shown for sign and expiration date if no date is given in the signature."
670+
},
635671
// ==================== Table Views ====================
636672
"treeviewKeys.title": {
637673
"message": "DKIM keys",

content/background.mjs.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright (c) 2020-2023 Philippe Lieser
2+
* Copyright (c) 2020-2024 Philippe Lieser
33
*
44
* This software is licensed under the terms of the MIT License.
55
*
@@ -220,13 +220,13 @@ class DisplayAction {
220220
* Determinate which user actions should be enabled.
221221
*
222222
* @param {number} tabId
223-
* @returns {RuntimeMessage.DisplayAction.queryButtonStateResult}
223+
* @returns {RuntimeMessage.DisplayAction.queryResultStateResult}
224224
*/
225-
static queryButtonState(tabId) {
225+
static queryResultState(tabId) {
226226
const res = displayedResultsCache.get(tabId);
227227
const keyStored = prefs["key.storing"] !== KeyStore.KEY_STORING.DISABLED &&
228228
res?.dkim[0]?.sdid !== undefined && res?.dkim[0].selector !== undefined;
229-
/** @type {RuntimeMessage.DisplayAction.queryButtonStateResult} */
229+
/** @type {RuntimeMessage.DisplayAction.queryResultStateResult} */
230230
const state = {
231231
reverifyDKIMSignature: res !== null,
232232
policyAddUserException:
@@ -239,6 +239,7 @@ class DisplayAction {
239239
),
240240
markKeyAsSecure: keyStored && res?.dkim[0]?.keySecure === false,
241241
updateKey: keyStored,
242+
dkim: res?.dkim ?? [],
242243
};
243244
return state;
244245
}
@@ -344,9 +345,9 @@ browser.runtime.onMessage.addListener((runtimeMessage, sender /*, sendResponse*/
344345
if (request.module !== "DisplayAction") {
345346
return;
346347
}
347-
if (request.method === "queryButtonState") {
348+
if (request.method === "queryResultState") {
348349
// eslint-disable-next-line consistent-return
349-
return Promise.resolve(DisplayAction.queryButtonState(request.parameters.tabId));
350+
return Promise.resolve(DisplayAction.queryResultState(request.parameters.tabId));
350351
}
351352
if (request.method === "reverifyDKIMSignature") {
352353
const promise = DisplayAction.reverifyDKIMSignature(request.parameters.tabId);

content/displayAction.css

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
body {
1+
.hbox {
2+
display: flex;
3+
flex-direction: row;
4+
}
5+
6+
.vbox {
27
display: flex;
38
flex-direction: column;
49
}

content/displayAction.html

+10-7
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@
1212
<script type="module" src="./displayAction.mjs.js"></script>
1313
</head>
1414

15-
<body>
16-
17-
<button id="reverifyDKIMSignature" disabled="true" data-i18n="dkim_verifier.reverifyDKIMSignature"></button>
18-
<button id="policyAddUserException" disabled="true" data-i18n="dkim_verifier.policyAddUserException"></button>
19-
<button id="markKeyAsSecure" disabled="true" data-i18n="dkim_verifier.markKeyAsSecure"></button>
20-
<button id="updateKey" disabled="true" data-i18n="dkim_verifier.updateKey"></button>
21-
15+
<body class="hbox">
16+
<div id="results" class="vbox">
17+
</div>
18+
19+
<div id="menu" class="vbox">
20+
<button id="reverifyDKIMSignature" disabled="true" data-i18n="dkim_verifier.reverifyDKIMSignature"></button>
21+
<button id="policyAddUserException" disabled="true" data-i18n="dkim_verifier.policyAddUserException"></button>
22+
<button id="markKeyAsSecure" disabled="true" data-i18n="dkim_verifier.markKeyAsSecure"></button>
23+
<button id="updateKey" disabled="true" data-i18n="dkim_verifier.updateKey"></button>
24+
</div>
2225
</body>
2326

2427
</html>

0 commit comments

Comments
 (0)