Changes in v2: - removed trailing commas in array initializers and add leading space - replaced assert(0) with BUG in p5 - consolidated 2 format lookups reusing get_format_data p5 - changed from format "PGP" to "openpgp", later X509 to "x509" - use strcasecmp instead of strcmp for format matching - introduce gpg.<format>.program in p8, no gpg.programX509 anymore - moved t/7510 patch inbetween the two patches changing validation code - changed t/7510 patch to use test_config and test_must_fail This series adds support for signing commits with gpgsm. The first two patches are cleanups of gpg-interface, they are already close to being merged. But since they have not been pulled to next i am resending them. The following 5 patches (p3-p7) prepare for the introduction of the actual feature in patch 8. Finally patch 9 extends the testsuite to cover the new feature. This series can be seen as a follow up of a series that appeared under the name "gpg-interface: Multiple signing tools" in april 2018 [1]. After that series was not merged i decided to get my patches ready. The original series aimed at being generic for any sort of signing tool, while this series just introduced the X509 variant of gpg. (gpgsm) I collected authors and reviewers of that first series and already put them on cc. [1] https://public-inbox.org/git/20180409204129.43537-1-mastahyeti@xxxxxxxxx/ Henning Schild (9): builtin/receive-pack: use check_signature from gpg-interface gpg-interface: make parse_gpg_output static and remove from interface header gpg-interface: add new config to select how to sign a commit t/t7510: check the validation of the new config gpg.format gpg-interface: introduce an abstraction for multiple gpg formats gpg-interface: do not hardcode the key string len anymore gpg-interface: introduce new config to select per gpg format program gpg-interface: introduce new signature format "x509" using gpgsm gpg-interface t: extend the existing GPG tests with GPGSM Documentation/config.txt | 9 +++++ builtin/receive-pack.c | 17 ++------- gpg-interface.c | 88 ++++++++++++++++++++++++++++++++++++++-------- gpg-interface.h | 2 -- t/lib-gpg.sh | 9 ++++- t/lib-gpg/gpgsm-gen-key.in | 6 ++++ t/t4202-log.sh | 66 ++++++++++++++++++++++++++++++++++ t/t5534-push-signed.sh | 52 +++++++++++++++++++++++++++ t/t7003-filter-branch.sh | 15 ++++++++ t/t7030-verify-tag.sh | 47 +++++++++++++++++++++++-- t/t7510-signed-commit.sh | 10 ++++++ t/t7600-merge.sh | 31 ++++++++++++++++ 12 files changed, 317 insertions(+), 35 deletions(-) create mode 100644 t/lib-gpg/gpgsm-gen-key.in -- 2.16.4