diff options
@@ -24,6 +24,7 @@ #include <setup.h> #include <string-list.h> #include <strvec.h> +#include <gpg-interface.h> #include <tag.h> #include <tree.h> #include <utf8.h> @@ -13,6 +13,7 @@ #include "html.h" #include "ui-shared.h" #include "strvec.h" +#include "gpg-interface.h" static int files, add_lines, rem_lines, lines_counted; @@ -186,6 +187,8 @@ static void print_commit(struct commit *commit, struct rev_info *revs) int columns = revs->graph ? 4 : 3; struct strbuf graphbuf = STRBUF_INIT; struct strbuf msgbuf = STRBUF_INIT; + struct signature_check signature_check; + memset(&signature_check, 0, sizeof(signature_check)); if (ctx.repo->enable_log_filecount) columns++; @@ -254,6 +257,25 @@ static void print_commit(struct commit *commit, struct rev_info *revs) html_txt(info->author); cgit_close_filter(ctx.repo->email_filter); + check_commit_signature(commit, &signature_check); + switch (signature_check.result) { + case 'G': /* Good signature */ + case 'U': /* Good signature, untrusted signer */ + htmlf(" <span class='signature verified' title='Fingerprint: %s'>Verified</span>", signature_check.primary_key_fingerprint); + break; + case 'B': /* Bad signature */ + htmlf(" <span class='signature unverified' title='Fingerprint: %s'>Unverified</span>", signature_check.primary_key_fingerprint); + break; + default: + if (signature_check.key) { + if (signature_check.primary_key_fingerprint) + htmlf(" <span class='signature unverified' title='Fingerprint: %s'>Unverified</span>", signature_check.primary_key_fingerprint); + else + htmlf(" <span class='signature unverified' title='Key: %s'>Unverified</span>", signature_check.key); + } + } + signature_check_clear(&signature_check); + if (revs->graph) { html("</td><td>"); cgit_print_age(info->committer_date, info->committer_tz, TM_WEEK * 2); |
