{"thread":{"id":"51741","subject":"[PATCH 0/5] New signing interface API with pluggable drivers","startedAt":"2019-08-26T19:57:56Z","lastAt":"2019-08-27T18:49:48Z","messageCount":3,"participants":["Ibrahim El","brian m. carlson"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"381245","messageId":"tz1YiiRtWStGrH2sc42DyD-8bDtH1A52rOCCapct59Qos6jEikqscvusUs7QeOBRNmCF7L_AL1ezKurbTp6qEZCmEk7L9B28wH-TVQGBSdY=@pm.me","threadId":"51741","inReplyTo":null,"subject":"[PATCH 0/5] New signing interface API with pluggable drivers","fromName":"Ibrahim El","fromEmail":"ibrahim.el@pm.me","sentAt":"2019-08-26T19:57:45Z","receivedAt":"2019-08-26T19:57:56Z","isPatch":true,"sender":{"key":"ibrahim.el@pm.me","avatar":null},"body":"Following previous introduction mail [1], this first series of 5 patches is a re-write of the signing interface API in an effort to support easily the addition of new tools with minimal effort and also keeping backwards compatibility with current tools and configuration.\n\nAll existing tests currently pass with backward compatibility.\n\n[1]: https://public-inbox.org/git/CACi-FhDeAZecXSM36zroty6kpf2BCWLS=0R+dUwuB96LqFKuTA@mail.gmail.com/T/#r43cbf31b86642ab5118e6e7b3d4098bade5f5a0a\n\nThe patches are ordered as follow:\n[1/5] - Adding Documentation files explaining the different changes using a design document and updates to the configuration part\n[2/5] - Adding new files that define the signing interface API and also drivers for the existing GPG and GPGSM X.509 tools\n[3/5] - Migrating the code to using the new signing interface API. Old GPG Interface code is commented and ommited\n[4/5] - Removing the old GPG interface and updating the code to remove all gpg mentions from it to make it transparent to the signing tool that is being used\n[5/5] - Duplicating existing signature related tests and updating them to using the new configuration aliases\n\nIbrahim El Rhezzali (5):\n  Added documentation for the new signing interface\n  Added new signing interface API\n  Migrated to the new signing interface API\n  Removed old gpg interface and gpg mentions in code\n  Duplicated signing tests using new config aliases\n\n Documentation/config/commit.txt               |   12 +-\n Documentation/config/gpg.txt                  |   18 +-\n Documentation/config/push.txt                 |    9 +-\n Documentation/config/signing.txt              |   63 +\n Documentation/config/tag.txt                  |    4 +-\n Documentation/config/user.txt                 |   10 +-\n Documentation/git-am.txt                      |    9 +-\n Documentation/git-cherry-pick.txt             |    9 +-\n Documentation/git-commit-tree.txt             |   18 +-\n Documentation/git-commit.txt                  |   19 +-\n Documentation/git-rebase.txt                  |    9 +-\n Documentation/git-revert.txt                  |    9 +-\n Documentation/merge-options.txt               |    5 +-\n Documentation/technical/signing-interface.png |  Bin 0 -> 76116 bytes\n Makefile                                      |    4 +-\n builtin/am.c                                  |   11 +-\n builtin/commit-tree.c                         |    6 +-\n builtin/commit.c                              |   12 +-\n builtin/fmt-merge-msg.c                       |    4 +-\n builtin/log.c                                 |    4 +-\n builtin/merge.c                               |   10 +-\n builtin/pull.c                                |   16 +-\n builtin/push.c                                |    5 +-\n builtin/rebase.c                              |   60 +-\n builtin/receive-pack.c                        |    6 +-\n builtin/replace.c                             |    2 +-\n builtin/revert.c                              |    6 +-\n builtin/send-pack.c                           |    6 +-\n builtin/tag.c                                 |   17 +-\n builtin/verify-commit.c                       |   18 +-\n builtin/verify-tag.c                          |   12 +-\n commit.c                                      |   39 +-\n commit.h                                      |    6 +-\n gpg-interface.c                               |  378 -----\n gpg-interface.h                               |   67 -\n log-tree.c                                    |   20 +-\n pretty.c                                      |    8 +-\n ref-filter.c                                  |    1 +\n send-pack.c                                   |    5 +-\n sequencer.c                                   |   59 +-\n sequencer.h                                   |    2 +-\n signing-interface.c                           |  487 ++++++\n signing-interface.h                           |  151 ++\n signing-tool-openpgp.c                        |  409 +++++\n signing-tool-x509.c                           |  383 +++++\n signing-tool.h                                |   35 +\n t/t3431-rebase-interactive-signconfig.sh      | 1480 ++++++++++++++++++\n t/t4215-log-signconfig.sh                     | 1710 ++++++++++++++++++++\n t/t5548-push-signed-signconfig.sh             |  276 ++++\n t/t5573-pull-verify-signatures.sh             |   10 +-\n t/t7013-tag-signconfig.sh                     | 2074 +++++++++++++++++++++++++\n t/t7031-verify-tag-signconfig.sh              |  175 +++\n t/t7522-signed-commit-signconfig.sh           |  288 ++++\n t/t7612-merge-verify-signatures.sh            |   18 +-\n tag.c                                         |   16 +-\n tag.h                                         |    2 +-\n 56 files changed, 7797 insertions(+), 695 deletions(-)\n create mode 100644 Documentation/config/signing.txt\n create mode 100644 Documentation/technical/signing-interface.png\n delete mode 100644 gpg-interface.c\n delete mode 100644 gpg-interface.h\n create mode 100644 signing-interface.c\n create mode 100644 signing-interface.h\n create mode 100644 signing-tool-openpgp.c\n create mode 100644 signing-tool-x509.c\n create mode 100644 signing-tool.h\n create mode 100755 t/t3431-rebase-interactive-signconfig.sh\n create mode 100755 t/t4215-log-signconfig.sh\n create mode 100755 t/t5548-push-signed-signconfig.sh\n create mode 100755 t/t7013-tag-signconfig.sh\n create mode 100755 t/t7031-verify-tag-signconfig.sh\n create mode 100755 t/t7522-signed-commit-signconfig.sh\n\n-- \n2.11.0\n\n\n"},{"id":"381262","messageId":"20190826231543.GD11334@genre.crustytoothpaste.net","threadId":"51741","inReplyTo":"tz1YiiRtWStGrH2sc42DyD-8bDtH1A52rOCCapct59Qos6jEikqscvusUs7QeOBRNmCF7L_AL1ezKurbTp6qEZCmEk7L9B28wH-TVQGBSdY=@pm.me","subject":"Re: [PATCH 0/5] New signing interface API with pluggable drivers","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2019-08-26T23:15:43Z","receivedAt":"2019-08-26T23:15:52Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2019-08-26 at 19:57:45, Ibrahim El wrote:\n> Following previous introduction mail [1], this first series of 5 patches is a re-write of the signing interface API in an effort to support easily the addition of new tools with minimal effort and also keeping backwards compatibility with current tools and configuration.\n> \n> All existing tests currently pass with backward compatibility.\n> \n> [1]: https://public-inbox.org/git/CACi-FhDeAZecXSM36zroty6kpf2BCWLS=0R+dUwuB96LqFKuTA@mail.gmail.com/T/#r43cbf31b86642ab5118e6e7b3d4098bade5f5a0a\n> \n> The patches are ordered as follow:\n> [1/5] - Adding Documentation files explaining the different changes using a design document and updates to the configuration part\n> [2/5] - Adding new files that define the signing interface API and also drivers for the existing GPG and GPGSM X.509 tools\n> [3/5] - Migrating the code to using the new signing interface API. Old GPG Interface code is commented and ommited\n> [4/5] - Removing the old GPG interface and updating the code to remove all gpg mentions from it to make it transparent to the signing tool that is being used\n> [5/5] - Duplicating existing signature related tests and updating them to using the new configuration aliases\n\nI haven't done an in-depth review of this series, but I did point out a\nfew things that stood out to me.  I think the consensus on the list in\nthe past was that for adding future tools, we'd like the drivers to be\nconfiguration-based so that Git need not learn about every signing tool.\nI think such a change would be welcome if done right.\n-- \nbrian m. carlson: Houston, Texas, US\nOpenPGP: https://keybase.io/bk2204\n"},{"id":"381381","messageId":"roBm3J_8ZgID_Uc8ZPZ8rJP0Ljc4ChC5MD9MGGbYIjQISuzvRxM36ZwcPcWQlKydxl-mwVT7tWWnA01ZGLhqdENo5ljEHkmfkIq3trGBM2k=@pm.me","threadId":"51741","inReplyTo":"20190826231543.GD11334@genre.crustytoothpaste.net","subject":"Re: [PATCH 0/5] New signing interface API with pluggable drivers","fromName":"Ibrahim El","fromEmail":"ibrahim.el@pm.me","sentAt":"2019-08-27T18:49:37Z","receivedAt":"2019-08-27T18:49:48Z","isPatch":true,"sender":{"key":"ibrahim.el@pm.me","avatar":null},"body":"Thx for your feedback. I will incorporate the config based improach into a generic driver and will re-submit the patches.\n\n\nIbrahim El\n\n‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐\nOn Monday, August 26, 2019 11:15 PM, brian m. carlson <sandals@crustytoothpaste.net> wrote:\n\n> On 2019-08-26 at 19:57:45, Ibrahim El wrote:\n>\n> > Following previous introduction mail 1, this first series of 5 patches is a re-write of the signing interface API in an effort to support easily the addition of new tools with minimal effort and also keeping backwards compatibility with current tools and configuration.\n> > All existing tests currently pass with backward compatibility.\n> > The patches are ordered as follow:\n> > [1/5] - Adding Documentation files explaining the different changes using a design document and updates to the configuration part\n> > [2/5] - Adding new files that define the signing interface API and also drivers for the existing GPG and GPGSM X.509 tools\n> > [3/5] - Migrating the code to using the new signing interface API. Old GPG Interface code is commented and ommited\n> > [4/5] - Removing the old GPG interface and updating the code to remove all gpg mentions from it to make it transparent to the signing tool that is being used\n> > [5/5] - Duplicating existing signature related tests and updating them to using the new configuration aliases\n>\n> I haven't done an in-depth review of this series, but I did point out a\n> few things that stood out to me. I think the consensus on the list in\n> the past was that for adding future tools, we'd like the drivers to be\n> configuration-based so that Git need not learn about every signing tool.\n> I think such a change would be welcome if done right.\n>\n> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n>\n> brian m. carlson: Houston, Texas, US\n> OpenPGP: https://keybase.io/bk2204\n\n\n"}]}