{"thread":{"id":"52102","subject":"[RFC] Proposal for a new config-based git signing interface","startedAt":"2019-10-23T18:46:44Z","lastAt":"2019-10-23T18:46:44Z","messageCount":1,"participants":["Ibrahim El"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"384716","messageId":"R3X1WzWH0sgOh85GuUmXwsTC6CPKysi4TRzN_BPecDVGr__ET2-mitZ2DZA0_bpKkzLRtnTtoomIWxZtL52_1XkihYBVBAuWMpSdwoboixY=@pm.me","threadId":"52102","inReplyTo":null,"subject":"[RFC] Proposal for a new config-based git signing interface","fromName":"Ibrahim El","fromEmail":"ibrahim.el@pm.me","sentAt":"2019-10-23T18:46:31Z","receivedAt":"2019-10-23T18:46:44Z","isPatch":false,"sender":{"key":"ibrahim.el@pm.me","avatar":null},"body":"Hello,\n\nThis is a follow-up on my previous emails related to the proposal of a new signing interface:\n\nhttps://public-inbox.org/git/CACi-FhDeAZecXSM36zroty6kpf2BCWLS=0R+dUwuB96LqFKuTA@mail.gmail.com/T/#r43cbf31b86642ab5118e6e7b3d4098bade5f5a0a\nhttps://public-inbox.org/git/Z2XOTcGuVovMKhcdrrO08KWI2I7L9s0CyFITvvj3jkmGTQPB6FkCiyOtTm6GdYWbnf25dsPD8M08kDCuD37EE1B-sxHQ3se9Kn1zVBrCPZw=@pm.me/T/#u\nhttps://public-inbox.org/git/N31G34oKnfr3MVifk42-Kt3YtM_3fHuCp3V1cpGOK5f1jn1vbg1TaSCy9ukI-YD8qRfu4xMcHcPc78xFE0MSwJQWNrSvuQuer9wSNugNRLg=@pm.me/T/#u\nhttps://public-inbox.org/git/8AMhjK19PJ35u3LCR57IvtAzOBN5bKK2vUn0Ns-4mmZzK9U14W5CGW5R8aITNXBm78J4Z7nd09RTVKW2pGaB4PnF7p2PireF_vzRST8DngE=@pm.me/T/#u\nhttps://public-inbox.org/git/0oTOrSdJdIaEfs3NVkfRmLxjYRvUPkucwwaXPuhCjS2QL3ztRJLfIlBkcpjSRiZQaY70SKSkg8_w20rxnuD4Vu3IbRcGOZM-fht8G7ySEHk=@pm.me/T/#u\nhttps://public-inbox.org/git/T4zS1hogOjySpdv7lDjVaZV83KKSeK9fx8m33SIo-e_BH4RtKcm67btmGzTPeflbRnQr7mWjTpObB0hCkX8VkGZElkQbLEgbrETg6Aq4nUg=@pm.me/T/#u\nhttps://public-inbox.org/git/74R10RrvOffzj20d_Owd_1WFMh1bWq8mIhEEBSzbhkHfbvW5BLHZj-L-AgHYnpqkxgZdCfW5b72GoIvKHucQz7tdiGZEzietp0IKpU1_wuI=@pm.me/T/#u\n\nThe main feedback we received from the previous RFCs was that the drivers for external signing tools were still written in C and that we should go more for a configuration based interface.\n\nI'v been thinking about how to go about it and would love to have your feedback on my proposed approach:\n\n- Implement updated user configuration to define signing tools\n- Implement a tool-agnostic signing interface in C code\n- Add the possibility to use bash helper scripts to drive additional tools in case the default interface don't work as intended.\n- The same configuration aliases can be passed to command line arguments\n\nYou can find below a detailed description of the proposed config and command line options:\n\nhttps://hackmd.io/ZHsddYXkSmyb6rYajdyGLg\nhttps://hackmd.io/yxS9nfiQSvmRZntcfnHOGQ\n\nThe configuration part would look like this:\n\n```\n[signing]\n  format = openpgp\n\n[signing \"openpgp\"]\n  program = \"/usr/bin/gpg\"\n\tkeyring = \"--keyring pubring.kbx --no-default-keyring\"\n\tidentity = \"--local-user \\\"Jane Committer <jane@hackers.com>\\\"\"\n\tsign = \"--sign --status-fd=2 --detach-sign --ascii\"\n\tverify = \"--verify --status-fd=2\"\n\n[signing \"openpgp.signature\"]\n\tregex = \"^-----BEGIN PGP SIGNATURE-----$[^-]*^-----END PGP SIGNATURE-----$\"\n\tmultiline = true\n```\n\nThe equivilent command line to do a digitally signed commit looks like:\n\n```\ngit commit \\\n  --sign\n\t--signing-format=openpgp \\\n\t--signing-openpgp-program=\"/usr/bin/gpg\" \\\n\t--signing-openpgp-keyring=\"--keyring pubring.kbx --no-default-keyring\" \\\n\t--signing-openpgp-identity=\"--local-user \\\"Jane Committer <jane@hackers.com>\\\"\" \\\n\t--signing-openpgp-sign=\"--sign --status-fd=2 --detach-sign --ascii\"\n```\n\nCheers,\n\n\nIbrahim\n\n\n"}]}