From 3b9291e182e158e334ef27bae179cb09232403df Mon Sep 17 00:00:00 2001 From: Henning Schild Date: Wed, 11 Jul 2018 10:38:24 +0200 Subject: [PATCH 1/2] builtin/receive-pack: use check_signature from gpg-interface The combination of verify_signed_buffer followed by parse_gpg_output is available as check_signature. Use that instead of implementing it again. Signed-off-by: Henning Schild Signed-off-by: Junio C Hamano --- builtin/receive-pack.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index 68d36e0a56..9f0583deb9 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -629,8 +629,6 @@ static void prepare_push_cert_sha1(struct child_process *proc) return; if (!already_done) { - struct strbuf gpg_output = STRBUF_INIT; - struct strbuf gpg_status = STRBUF_INIT; int bogs /* beginning_of_gpg_sig */; already_done = 1; @@ -639,22 +637,11 @@ static void prepare_push_cert_sha1(struct child_process *proc) oidclr(&push_cert_oid); memset(&sigcheck, '\0', sizeof(sigcheck)); - sigcheck.result = 'N'; bogs = parse_signature(push_cert.buf, push_cert.len); - if (verify_signed_buffer(push_cert.buf, bogs, - push_cert.buf + bogs, push_cert.len - bogs, - &gpg_output, &gpg_status) < 0) { - ; /* error running gpg */ - } else { - sigcheck.payload = push_cert.buf; - sigcheck.gpg_output = gpg_output.buf; - sigcheck.gpg_status = gpg_status.buf; - parse_gpg_output(&sigcheck); - } + check_signature(push_cert.buf, bogs, push_cert.buf + bogs, + push_cert.len - bogs, &sigcheck); - strbuf_release(&gpg_output); - strbuf_release(&gpg_status); nonce_status = check_nonce(push_cert.buf, bogs); } if (!is_null_oid(&push_cert_oid)) { From fbd0f16610362fda5d2093a590a80d693f610594 Mon Sep 17 00:00:00 2001 From: Henning Schild Date: Wed, 11 Jul 2018 10:38:25 +0200 Subject: [PATCH 2/2] gpg-interface: make parse_gpg_output static and remove from interface header Turn parse_gpg_output into a static function, the only outside user was migrated in an earlier commit. Signed-off-by: Henning Schild Signed-off-by: Junio C Hamano --- gpg-interface.c | 2 +- gpg-interface.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/gpg-interface.c b/gpg-interface.c index 0647bd6348..09ddfbc267 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -35,7 +35,7 @@ static struct { { 'R', "\n[GNUPG:] REVKEYSIG "}, }; -void parse_gpg_output(struct signature_check *sigc) +static void parse_gpg_output(struct signature_check *sigc) { const char *buf = sigc->gpg_status; int i; diff --git a/gpg-interface.h b/gpg-interface.h index a5e6517ae6..5ecff4aa0c 100644 --- a/gpg-interface.h +++ b/gpg-interface.h @@ -33,8 +33,6 @@ void signature_check_clear(struct signature_check *sigc); */ size_t parse_signature(const char *buf, size_t size); -void parse_gpg_output(struct signature_check *); - /* * Create a detached signature for the contents of "buffer" and append * it after "signature"; "buffer" and "signature" can be the same