git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [RFC PATCH 3/5] Signing API: Migrated to the new signing interface API
@ 2019-08-19 21:19 Ibrahim El
  0 siblings, 0 replies; only message in thread
From: Ibrahim El @ 2019-08-19 21:19 UTC (permalink / raw)
  To: git; +Cc: Ibrahim El Rhezzali

From: Ibrahim El Rhezzali <ibrahim.el@pm.me>

0affa9e2a Migrated to the new signing interface API

Updating the code to use the new signing interface API. Old GPG interface code is commented and not used

Signed-off-by: Ibrahim El <ibrahim.el@pm.me>
---
 builtin/am.c            |  3 ++-
 builtin/commit-tree.c   |  4 ++--
 builtin/commit.c        |  4 ++--
 builtin/fmt-merge-msg.c |  2 +-
 builtin/log.c           |  4 ++--
 builtin/merge.c         |  4 ++--
 builtin/push.c          |  3 ++-
 builtin/receive-pack.c  |  4 ++--
 builtin/send-pack.c     |  4 ++--
 builtin/tag.c           | 13 +++++++------
 builtin/verify-commit.c | 12 ++++++------
 builtin/verify-tag.c    | 10 +++++-----
 commit.c                | 13 +++++++------
 commit.h                |  4 ++--
 gpg-interface.c         |  5 ++++-
 gpg-interface.h         |  3 +++
 log-tree.c              |  2 +-
 pretty.c                |  8 ++++----
 ref-filter.c            |  1 +
 send-pack.c             |  5 +++--
 sequencer.c             |  3 ++-
 tag.c                   | 10 +++++-----
 22 files changed, 67 insertions(+), 54 deletions(-)

diff --git a/builtin/am.c b/builtin/am.c
index 78389d08b..a76efdd5d 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -34,6 +34,7 @@
 #include "string-list.h"
 #include "packfile.h"
 #include "repository.h"
+#include "signing-interface.h"
 
 /**
  * Returns the length of the first line of msg.
@@ -2143,7 +2144,7 @@ static int git_am_config(const char *k, const char *v, void *cb)
 {
 	int status;
 
-	status = git_gpg_config(k, v, NULL);
+	status = git_signing_config(k, v, NULL);
 	if (status)
 		return status;
 
diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
index b866d8395..06bc5016d 100644
--- a/builtin/commit-tree.c
+++ b/builtin/commit-tree.c
@@ -11,7 +11,7 @@
 #include "tree.h"
 #include "builtin.h"
 #include "utf8.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "parse-options.h"
 
 static const char * const commit_tree_usage[] = {
@@ -38,7 +38,7 @@ static void new_parent(struct commit *parent, struct commit_list **parents_p)
 
 static int commit_tree_config(const char *var, const char *value, void *cb)
 {
-	int status = git_gpg_config(var, value, NULL);
+	int status = git_signing_config(var, value, NULL);
 	if (status)
 		return status;
 	return git_default_config(var, value, cb);
diff --git a/builtin/commit.c b/builtin/commit.c
index 1c9e8e222..3b446a029 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -29,7 +29,7 @@
 #include "unpack-trees.h"
 #include "quote.h"
 #include "submodule.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "column.h"
 #include "sequencer.h"
 #include "mailmap.h"
@@ -1437,7 +1437,7 @@ static int git_commit_config(const char *k, const char *v, void *cb)
 		return 0;
 	}
 
-	status = git_gpg_config(k, v, NULL);
+	status = git_signing_config(k, v, NULL);
 	if (status)
 		return status;
 	return git_status_config(k, v, s);
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index a4615587f..2dd0e9367 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c
@@ -10,7 +10,7 @@
 #include "string-list.h"
 #include "branch.h"
 #include "fmt-merge-msg.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "repository.h"
 #include "commit-reach.h"
 
diff --git a/builtin/log.c b/builtin/log.c
index 7c8767d3b..96507f0d9 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -28,7 +28,7 @@
 #include "streaming.h"
 #include "version.h"
 #include "mailmap.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "progress.h"
 #include "commit-slab.h"
 #include "repository.h"
@@ -465,7 +465,7 @@ static int git_log_config(const char *var, const char *value, void *cb)
 
 	if (grep_config(var, value, cb) < 0)
 		return -1;
-	if (git_gpg_config(var, value, cb) < 0)
+	if (git_signing_config(var, value, cb) < 0)
 		return -1;
 	return git_diff_ui_config(var, value, cb);
 }
diff --git a/builtin/merge.c b/builtin/merge.c
index 6e99aead4..67a0bcb35 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -31,7 +31,7 @@
 #include "resolve-undo.h"
 #include "remote.h"
 #include "fmt-merge-msg.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "sequencer.h"
 #include "string-list.h"
 #include "packfile.h"
@@ -636,7 +636,7 @@ static int git_merge_config(const char *k, const char *v, void *cb)
 	status = fmt_merge_msg_config(k, v, cb);
 	if (status)
 		return status;
-	status = git_gpg_config(k, v, NULL);
+	status = git_signing_config(k, v, NULL);
 	if (status)
 		return status;
 	return git_diff_ui_config(k, v, cb);
diff --git a/builtin/push.c b/builtin/push.c
index 021dd3b1e..74a6758cd 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -14,6 +14,7 @@
 #include "submodule-config.h"
 #include "send-pack.h"
 #include "color.h"
+#include "signing-interface.h"
 
 static const char * const push_usage[] = {
 	N_("git push [<options>] [<repository> [<refspec>...]]"),
@@ -479,7 +480,7 @@ static int git_push_config(const char *k, const char *v, void *cb)
 	int *flags = cb;
 	int status;
 
-	status = git_gpg_config(k, v, NULL);
+	status = git_signing_config(k, v, NULL);
 	if (status)
 		return status;
 
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 77b712245..1a90dea5a 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -19,7 +19,7 @@
 #include "argv-array.h"
 #include "version.h"
 #include "tag.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "sigchain.h"
 #include "fsck.h"
 #include "tmp-objdir.h"
@@ -73,7 +73,7 @@ static int shallow_update;
 static const char *alt_shallow_file;
 static struct strbuf push_cert = STRBUF_INIT;
 static struct object_id push_cert_oid;
-static struct signature_check sigcheck;
+static struct signature sigcheck;
 static const char *push_cert_nonce;
 static const char *cert_nonce_seed;
 
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index 098ebf22d..ba21fb2df 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -12,7 +12,7 @@
 #include "transport.h"
 #include "version.h"
 #include "sha1-array.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "gettext.h"
 #include "protocol.h"
 
@@ -101,7 +101,7 @@ static void print_helper_status(struct ref *ref)
 
 static int send_pack_config(const char *k, const char *v, void *cb)
 {
-	git_gpg_config(k, v, NULL);
+	git_signing_config(k, v, NULL);
 
 	if (!strcmp(k, "push.gpgsign")) {
 		const char *value;
diff --git a/builtin/tag.c b/builtin/tag.c
index ef37dccf8..a52aa54c0 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -16,7 +16,7 @@
 #include "parse-options.h"
 #include "diff.h"
 #include "revision.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "sha1-array.h"
 #include "column.h"
 #include "ref-filter.h"
@@ -111,10 +111,10 @@ static int verify_tag(const char *name, const char *ref,
 {
 	int flags;
 	const struct ref_format *format = cb_data;
-	flags = GPG_VERIFY_VERBOSE;
+	flags = OUTPUT_VERBOSE;
 
 	if (format->format)
-		flags = GPG_VERIFY_OMIT_STATUS;
+		flags = OUTPUT_OMIT_STATUS;
 
 	if (gpg_verify_tag(oid, name, flags))
 		return -1;
@@ -127,7 +127,8 @@ static int verify_tag(const char *name, const char *ref,
 
 static int do_sign(struct strbuf *buffer)
 {
-	return sign_buffer(buffer, buffer, get_signing_key());
+	extern enum signature_type default_type;
+	return sign_buffer(buffer, buffer, get_signing_key(default_type));
 }
 
 static const char tag_template[] =
@@ -151,7 +152,7 @@ static int git_tag_config(const char *var, const char *value, void *cb)
 		return 0;
 	}
 
-	status = git_gpg_config(var, value, cb);
+	status = git_signing_config(var, value, cb);
 	if (status)
 		return status;
 	if (!strcmp(var, "tag.forcesignannotated")) {
@@ -447,7 +448,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
 
 	if (keyid) {
 		opt.sign = 1;
-		set_signing_key(keyid);
+		set_signing_key(keyid, default_type);
 	}
 	create_tag_object = (opt.sign || annotate || msg.given || msgfile);
 
diff --git a/builtin/verify-commit.c b/builtin/verify-commit.c
index 4b9e823f8..0f701ee70 100644
--- a/builtin/verify-commit.c
+++ b/builtin/verify-commit.c
@@ -14,7 +14,7 @@
 #include "run-command.h"
 #include <signal.h>
 #include "parse-options.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 
 static const char * const verify_commit_usage[] = {
 		N_("git verify-commit [-v | --verbose] <commit>..."),
@@ -23,7 +23,7 @@ static const char * const verify_commit_usage[] = {
 
 static int run_gpg_verify(struct commit *commit, unsigned flags)
 {
-	struct signature_check signature_check;
+	struct signature signature_check;
 	int ret;
 
 	memset(&signature_check, 0, sizeof(signature_check));
@@ -31,7 +31,7 @@ static int run_gpg_verify(struct commit *commit, unsigned flags)
 	ret = check_commit_signature(commit, &signature_check);
 	print_signature_buffer(&signature_check, flags);
 
-	signature_check_clear(&signature_check);
+	signature_clear(&signature_check);
 	return ret;
 }
 
@@ -55,7 +55,7 @@ static int verify_commit(const char *name, unsigned flags)
 
 static int git_verify_commit_config(const char *var, const char *value, void *cb)
 {
-	int status = git_gpg_config(var, value, cb);
+	int status = git_signing_config(var, value, cb);
 	if (status)
 		return status;
 	return git_default_config(var, value, cb);
@@ -67,7 +67,7 @@ int cmd_verify_commit(int argc, const char **argv, const char *prefix)
 	unsigned flags = 0;
 	const struct option verify_commit_options[] = {
 		OPT__VERBOSE(&verbose, N_("print commit contents")),
-		OPT_BIT(0, "raw", &flags, N_("print raw gpg status output"), GPG_VERIFY_RAW),
+		OPT_BIT(0, "raw", &flags, N_("print raw gpg status output"), OUTPUT_RAW),
 		OPT_END()
 	};
 
@@ -79,7 +79,7 @@ int cmd_verify_commit(int argc, const char **argv, const char *prefix)
 		usage_with_options(verify_commit_usage, verify_commit_options);
 
 	if (verbose)
-		flags |= GPG_VERIFY_VERBOSE;
+		flags |= OUTPUT_VERBOSE;
 
 	/* sometimes the program was terminated because this signal
 	 * was received in the process of writing the gpg input: */
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 6fa04b751..d25f47d38 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -12,7 +12,7 @@
 #include "run-command.h"
 #include <signal.h>
 #include "parse-options.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "ref-filter.h"
 
 static const char * const verify_tag_usage[] = {
@@ -22,7 +22,7 @@ static const char * const verify_tag_usage[] = {
 
 static int git_verify_tag_config(const char *var, const char *value, void *cb)
 {
-	int status = git_gpg_config(var, value, cb);
+	int status = git_signing_config(var, value, cb);
 	if (status)
 		return status;
 	return git_default_config(var, value, cb);
@@ -35,7 +35,7 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
 	struct ref_format format = REF_FORMAT_INIT;
 	const struct option verify_tag_options[] = {
 		OPT__VERBOSE(&verbose, N_("print tag contents")),
-		OPT_BIT(0, "raw", &flags, N_("print raw gpg status output"), GPG_VERIFY_RAW),
+		OPT_BIT(0, "raw", &flags, N_("print raw gpg status output"), OUTPUT_RAW),
 		OPT_STRING(0, "format", &format.format, N_("format"), N_("format to use for the output")),
 		OPT_END()
 	};
@@ -48,13 +48,13 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
 		usage_with_options(verify_tag_usage, verify_tag_options);
 
 	if (verbose)
-		flags |= GPG_VERIFY_VERBOSE;
+		flags |= OUTPUT_VERBOSE;
 
 	if (format.format) {
 		if (verify_ref_format(&format))
 			usage_with_options(verify_tag_usage,
 					   verify_tag_options);
-		flags |= GPG_VERIFY_OMIT_STATUS;
+		flags |= OUTPUT_OMIT_STATUS;
 	}
 
 	while (i < argc) {
diff --git a/commit.c b/commit.c
index 8fa1883c6..2727c9231 100644
--- a/commit.c
+++ b/commit.c
@@ -10,7 +10,7 @@
 #include "revision.h"
 #include "notes.h"
 #include "alloc.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "mergesort.h"
 #include "commit-slab.h"
 #include "prio-queue.h"
@@ -953,8 +953,9 @@ static int do_sign_commit(struct strbuf *buf, const char *keyid)
 	else
 		inspos = eoh - buf->buf + 1;
 
-	if (!keyid || !*keyid)
-		keyid = get_signing_key();
+	if (!keyid || !*keyid) {
+		keyid = get_signing_key(default_type);
+	}
 	if (sign_buffer(buf, &sig, keyid)) {
 		strbuf_release(&sig);
 		return -1;
@@ -1092,7 +1093,7 @@ static void handle_signed_tag(struct commit *parent, struct commit_extra_header
 	free(buf);
 }
 
-int check_commit_signature(const struct commit *commit, struct signature_check *sigc)
+int check_commit_signature(const struct commit *commit, struct signature *sigc)
 {
 	struct strbuf payload = STRBUF_INIT;
 	struct strbuf signature = STRBUF_INIT;
@@ -1115,7 +1116,7 @@ int check_commit_signature(const struct commit *commit, struct signature_check *
 void verify_merge_signature(struct commit *commit, int verbosity)
 {
 	char hex[GIT_MAX_HEXSZ + 1];
-	struct signature_check signature_check;
+	struct signature signature_check;
 	memset(&signature_check, 0, sizeof(signature_check));
 
 	check_commit_signature(commit, &signature_check);
@@ -1137,7 +1138,7 @@ void verify_merge_signature(struct commit *commit, int verbosity)
 		printf(_("Commit %s has a good GPG signature by %s\n"),
 		       hex, signature_check.signer);
 
-	signature_check_clear(&signature_check);
+	signature_clear(&signature_check);
 }
 
 void append_merge_tag_headers(struct commit_list *parents,
diff --git a/commit.h b/commit.h
index f5295ca7f..f5a942fc5 100644
--- a/commit.h
+++ b/commit.h
@@ -5,7 +5,7 @@
 #include "tree.h"
 #include "strbuf.h"
 #include "decorate.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "string-list.h"
 #include "pretty.h"
 #include "commit-slab.h"
@@ -370,7 +370,7 @@ int remove_signature(struct strbuf *buf);
  * at all.  This may allocate memory for sig->gpg_output, sig->gpg_status,
  * sig->signer and sig->key.
  */
-int check_commit_signature(const struct commit *commit, struct signature_check *sigc);
+int check_commit_signature(const struct commit *commit, struct signature *sigc);
 
 /* record author-date for each commit object */
 struct author_date_slab;
diff --git a/gpg-interface.c b/gpg-interface.c
index 8ed274533..5e7dee6fe 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -6,6 +6,7 @@
 #include "sigchain.h"
 #include "tempfile.h"
 
+#if 0
 static char *configured_signing_key;
 struct gpg_format {
 	const char *name;
@@ -289,7 +290,7 @@ const char *get_signing_key(void)
 }
 
 int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
-{
+{	
 	struct child_process gpg = CHILD_PROCESS_INIT;
 	int ret;
 	size_t i, j, bottom;
@@ -376,3 +377,5 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
 
 	return ret;
 }
+
+#endif
\ No newline at end of file
diff --git a/gpg-interface.h b/gpg-interface.h
index 3e624ec28..c808d1685 100644
--- a/gpg-interface.h
+++ b/gpg-interface.h
@@ -1,6 +1,7 @@
 #ifndef GPG_INTERFACE_H
 #define GPG_INTERFACE_H
 
+#if 0
 struct strbuf;
 
 #define GPG_VERIFY_VERBOSE		1
@@ -65,3 +66,5 @@ void print_signature_buffer(const struct signature_check *sigc,
 			    unsigned flags);
 
 #endif
+
+#endif
\ No newline at end of file
diff --git a/log-tree.c b/log-tree.c
index 1e56df62a..c13a7e06d 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -11,7 +11,7 @@
 #include "refs.h"
 #include "string-list.h"
 #include "color.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "sequencer.h"
 #include "line-log.h"
 #include "help.h"
diff --git a/pretty.c b/pretty.c
index ced048525..f315755c3 100644
--- a/pretty.c
+++ b/pretty.c
@@ -10,7 +10,7 @@
 #include "notes.h"
 #include "color.h"
 #include "reflog-walk.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "trailer.h"
 
 static char *user_format;
@@ -771,7 +771,7 @@ struct format_commit_context {
 	const struct pretty_print_context *pretty_ctx;
 	unsigned commit_header_parsed:1;
 	unsigned commit_message_parsed:1;
-	struct signature_check signature_check;
+	struct signature signature_check;
 	enum flush_type flush_type;
 	enum trunc_type truncate;
 	const char *message;
@@ -1292,8 +1292,8 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
 			check_commit_signature(c->commit, &(c->signature_check));
 		switch (placeholder[1]) {
 		case 'G':
-			if (c->signature_check.gpg_output)
-				strbuf_addstr(sb, c->signature_check.gpg_output);
+			if (c->signature_check.output.buf)
+				strbuf_addstr(sb, c->signature_check.output.buf);
 			break;
 		case '?':
 			switch (c->signature_check.result) {
diff --git a/ref-filter.c b/ref-filter.c
index 8500671bc..277fcc04e 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -20,6 +20,7 @@
 #include "commit-slab.h"
 #include "commit-graph.h"
 #include "commit-reach.h"
+#include "signing-interface.h"
 
 static struct ref_msg {
 	const char *gone;
diff --git a/send-pack.c b/send-pack.c
index 6dc16c321..6db779964 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -13,7 +13,7 @@
 #include "transport.h"
 #include "version.h"
 #include "sha1-array.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "cache.h"
 
 int option_parse_push_signed(const struct option *opt,
@@ -269,7 +269,8 @@ static int generate_push_cert(struct strbuf *req_buf,
 {
 	const struct ref *ref;
 	struct string_list_item *item;
-	char *signing_key = xstrdup(get_signing_key());
+	extern enum signature_type default_type;
+	char *signing_key = xstrdup(get_signing_key(default_type));
 	const char *cp, *np;
 	struct strbuf cert = STRBUF_INIT;
 	int update_seen = 0;
diff --git a/sequencer.c b/sequencer.c
index ab74b6baf..e3cfe40d2 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -32,6 +32,7 @@
 #include "alias.h"
 #include "commit-reach.h"
 #include "rebase-interactive.h"
+#include "signing-interface.h"
 
 #define GIT_REFLOG_ACTION "GIT_REFLOG_ACTION"
 
@@ -197,7 +198,7 @@ static int git_sequencer_config(const char *k, const char *v, void *cb)
 		return 0;
 	}
 
-	status = git_gpg_config(k, v, NULL);
+	status = git_signing_config(k, v, NULL);
 	if (status)
 		return status;
 
diff --git a/tag.c b/tag.c
index 7445b8f6e..d9bbf5249 100644
--- a/tag.c
+++ b/tag.c
@@ -5,14 +5,14 @@
 #include "tree.h"
 #include "blob.h"
 #include "alloc.h"
-#include "gpg-interface.h"
+#include "signing-interface.h"
 #include "packfile.h"
 
 const char *tag_type = "tag";
 
 static int run_gpg_verify(const char *buf, unsigned long size, unsigned flags)
 {
-	struct signature_check sigc;
+	struct signature sigc;
 	size_t payload_size;
 	int ret;
 
@@ -21,7 +21,7 @@ static int run_gpg_verify(const char *buf, unsigned long size, unsigned flags)
 	payload_size = parse_signature(buf, size);
 
 	if (size == payload_size) {
-		if (flags & GPG_VERIFY_VERBOSE)
+		if (flags & OUTPUT_VERBOSE)
 			write_in_full(1, buf, payload_size);
 		return error("no signature found");
 	}
@@ -29,10 +29,10 @@ static int run_gpg_verify(const char *buf, unsigned long size, unsigned flags)
 	ret = check_signature(buf, payload_size, buf + payload_size,
 				size - payload_size, &sigc);
 
-	if (!(flags & GPG_VERIFY_OMIT_STATUS))
+	if (!(flags & OUTPUT_OMIT_STATUS))
 		print_signature_buffer(&sigc, flags);
 
-	signature_check_clear(&sigc);
+	signature_clear(&sigc);
 	return ret;
 }
 
-- 
2.11.0



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-08-19 21:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-19 21:19 [RFC PATCH 3/5] Signing API: Migrated to the new signing interface API Ibrahim El

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).