gpg-interface: introduce new signature format "x509" using gpgsm
This commit allows git to create and check x509 type signatures using gpgsm. Signed-off-by: Henning Schild <henning.schild@siemens.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b02f51b196
commit
1e7adb9756
@ -1830,12 +1830,13 @@ gpg.program::
|
|||||||
|
|
||||||
gpg.format::
|
gpg.format::
|
||||||
Specifies which key format to use when signing with `--gpg-sign`.
|
Specifies which key format to use when signing with `--gpg-sign`.
|
||||||
Default is "openpgp", that is also the only supported value.
|
Default is "openpgp" and another possible value is "x509".
|
||||||
|
|
||||||
gpg.<format>.program::
|
gpg.<format>.program::
|
||||||
Use this to customize the program used for the signing format you
|
Use this to customize the program used for the signing format you
|
||||||
chose. (see `gpg.program` and `gpg.format`) `gpg.program` can still
|
chose. (see `gpg.program` and `gpg.format`) `gpg.program` can still
|
||||||
be used as a legacy synonym for `gpg.openpgp.program`.
|
be used as a legacy synonym for `gpg.openpgp.program`. The default
|
||||||
|
value for `gpg.x509.program` is "gpgsm".
|
||||||
|
|
||||||
gui.commitMsgWidth::
|
gui.commitMsgWidth::
|
||||||
Defines how wide the commit message window is in the
|
Defines how wide the commit message window is in the
|
||||||
|
@ -24,11 +24,23 @@ static const char *openpgp_sigs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *x509_verify_args[] = {
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
static const char *x509_sigs[] = {
|
||||||
|
"-----BEGIN SIGNED MESSAGE-----",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
static struct gpg_format gpg_format[] = {
|
static struct gpg_format gpg_format[] = {
|
||||||
{ .name = "openpgp", .program = "gpg",
|
{ .name = "openpgp", .program = "gpg",
|
||||||
.verify_args = openpgp_verify_args,
|
.verify_args = openpgp_verify_args,
|
||||||
.sigs = openpgp_sigs
|
.sigs = openpgp_sigs
|
||||||
},
|
},
|
||||||
|
{ .name = "x509", .program = "gpgsm",
|
||||||
|
.verify_args = x509_verify_args,
|
||||||
|
.sigs = x509_sigs
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct gpg_format *use_format = &gpg_format[0];
|
static struct gpg_format *use_format = &gpg_format[0];
|
||||||
@ -192,6 +204,9 @@ int git_gpg_config(const char *var, const char *value, void *cb)
|
|||||||
if (!strcmp(var, "gpg.program") || !strcmp(var, "gpg.openpgp.program"))
|
if (!strcmp(var, "gpg.program") || !strcmp(var, "gpg.openpgp.program"))
|
||||||
fmtname = "openpgp";
|
fmtname = "openpgp";
|
||||||
|
|
||||||
|
if (!strcmp(var, "gpg.x509.program"))
|
||||||
|
fmtname = "x509";
|
||||||
|
|
||||||
if (fmtname) {
|
if (fmtname) {
|
||||||
fmt = get_format_by_name(fmtname);
|
fmt = get_format_by_name(fmtname);
|
||||||
return git_config_string(&fmt->program, var, value);
|
return git_config_string(&fmt->program, var, value);
|
||||||
|
Loading…
Reference in New Issue
Block a user