Это должно быть проще с Git 2.19 (Q3 2018), так как "git tag -s
" и т. Д. Теперь имеют несколько переменных конфигурации (gpg.format
, которые могут быть установлены на "openpgp
" или "x509
", и gpg.<format>.program
, который используется, чтобы указать, какую программу использовать для работы с форматом), чтобы разрешить использование сертификатов x.509 с CMS через "gpgsm
" вместо
openpgp через "gnupg
".
См. коммит 53fc999 (20 июля 2018 г.), коммит 1e7adb9 , коммит b02f51b , коммит 42149d7 , коммит 58af57e , коммит 57a8dd7 (17 июля 2018 г.) и коммит 1865a64 (18 июля 2018 г.) Хеннингом Шильдом (henning-schild
) .
(Объединено с Junio C Hamano - gitster
- в коммит 3ec5ebe , 15 августа 2018 г.)
Это включало такие изменения, как:
gpg-interface
: добавить новый конфиг, чтобы выбрать, как подписать коммит
Добавить «gpg.format
», где пользователь может указать, какой тип подписи
использовать для коммитов.
gpg-interface
: ввести абстракцию для нескольких форматов gpg
Создайте структуру, содержащую сведения о формате для поддерживаемых форматов.
Этот коммит готовит к внедрению большего количества форматов, которые могут использовать другие программы и соответствовать другим сигнатурам.
gpg-интерфейс: больше не кодировать строку ключей len
gnupg
печатает идентификатор ключа, за которым следует пробел, а затем подписывающее лицо.
Тот же шаблон также используется в gpgsm
, но здесь длина ключа будет 40 вместо 16.
Вместо жесткого кодирования ожидаемой длины найдите первый пробел и вычислите его.
Ввод, который не соответствует ожидаемому формату, теперь будет игнорироваться, прежде чем мы перейдем к найденному + 17, который мог находиться за концом неожиданной строки.