<table><tr><td style="">dvratil created this revision.<br />dvratil added reviewers: aheinecke, knauss.<br />dvratil set the repository for this revision to rMESSAGELIB PIM: Message Library.<br />Restricted Application added a project: KDE PIM.<br />Restricted Application added a subscriber: kde-pim.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D3432" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>When key trust is only marginal, try to use TOFU sign count to figure if we can really trust the key.</p>

<p>The logic boils down to the following pseudo-code, loosely based on logic in the Outlook PGP plugin from Andre.</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">foreach signature {
    if (keyValidity < Marginal) {
        untrusted key, try another signature
        continue
    } else if (keyValidity == Marginal) {
        if (tofu == Conflict) {
            report conflict
            return
        } else if (tofu < LittleHistory) {
            the key is not trusted enough and TOFU does not have enough history, try another signature
            continue
        } else if (tofuSign <= 10) {
            key is not trusted enough and TOFU has too little history. Try to find another signature with better trust or fallback to this one, but sender will be unverfied
            continue
        } else (tofu >= LittleHistory && tofuSign > 10) {
            key is not trusted enough, but TOFU has enough history, accept the sender as verified
            return
        } else {
             // unreachable
        }
    } else {
        key is well-trusted, use it
        return
    }
}</pre></div>

<p>One of the setbacks I noticed so far is that keys that previously were shown in green are now yellow, because there's not enough TOFU history for them. I wonder if we should somehow try to import all emails into TOFU if its enabled...?</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rMESSAGELIB PIM: Message Library</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3432" rel="noreferrer">https://phabricator.kde.org/D3432</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>messageviewer/src/messagepartthemes/default/defaultrenderer.cpp<br />
messageviewer/src/messagepartthemes/default/templates/signedmessagepart.html<br />
mimetreeparser/src/viewer/messagepart.cpp<br />
mimetreeparser/src/viewer/messagepart.h</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>dvratil, aheinecke, knauss<br /><strong>Cc: </strong>kde-pim, spencerb, dvasin, winterz, vkrause, mlaurent, knauss, dvratil<br /></div>