This series introduces support for verifying commits and tags signed by multiple algorithms. These commits allow for signing commits and tags that can be round-tripped through both SHA-1 and SHA-256. We verify only the signature using the current hash algorithm, since we currently don't rewrite objects. Changes from v2: * Fix problems with size_t and unsigned long on 32-bit systems by creating a cleanup patch at the beginning of the series. * Fix a clang warning with initialization by using memset. Changes from v1: * Fix brown paper bag bug where some tests failed due to a bad rebase. brian m. carlson (6): ref-filter: switch some uses of unsigned long to size_t commit: ignore additional signatures when parsing signed commits gpg-interface: improve interface for parsing tags commit: allow parsing arbitrary buffers with headers ref-filter: hoist signature parsing gpg-interface: remove other signature headers before verifying builtin/receive-pack.c | 4 +- builtin/tag.c | 16 ++++++-- commit.c | 85 +++++++++++++++++++++++++++------------- commit.h | 12 +++++- fmt-merge-msg.c | 29 ++++++++------ gpg-interface.c | 15 ++++++- gpg-interface.h | 9 ++++- log-tree.c | 15 +++---- ref-filter.c | 33 ++++++++++------ t/t7004-tag.sh | 25 ++++++++++++ t/t7510-signed-commit.sh | 43 +++++++++++++++++++- tag.c | 15 +++---- 12 files changed, 226 insertions(+), 75 deletions(-)