{"thread":{"id":"38166","subject":"[PATCH v2 1/1] create gpg homedir on the fly and skip RFC1991 tests for gnupg 2.1","startedAt":"2014-12-11T13:16:12Z","lastAt":"2014-12-13T19:30:21Z","messageCount":16,"participants":["Christian Hesse","Junio C Hamano","Eric Sunshine"],"isPatch":true,"patchVersion":2,"patchTotal":1},"messages":[{"id":"253563","messageId":"1418303772-7909-1-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":null,"subject":"[PATCH v2 1/1] create gpg homedir on the fly and skip RFC1991 tests for gnupg 2.1","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-11T13:16:12Z","receivedAt":"2014-12-11T13:16:12Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"GnuPG 2.1 homedir looks different, so just creat it on the fly by\nimporting needed private and public keys and ownertrust.\nThis solves an issue with gnupg 2.1 running interactive pinentry when\nold secret key is present.\n\nAdditionally GnuPG 2.1 does not longer support RFC1991, so skip these\ntests.\n---\n t/lib-gpg.sh          |  13 ++++++++++---\n t/lib-gpg/ownertrust  |   4 ++++\n t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n t/t7004-tag.sh        |  14 +++++++-------\n 5 files changed, 21 insertions(+), 10 deletions(-)\n create mode 100644 t/lib-gpg/ownertrust\n delete mode 100644 t/lib-gpg/random_seed\n delete mode 100644 t/lib-gpg/trustdb.gpg\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex cd2baef..17c45ad 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -16,12 +16,19 @@ else\n \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n \t\t# Name and email: C O Mitter <committer@example.com>\n \t\t# No password given, to enable non-interactive operation.\n-\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n-\t\tchmod 0700 gpghome\n-\t\tchmod 0600 gpghome/*\n+\t\tmkdir ./gpghome\n+\t\tchmod 0700 ./gpghome\n \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n \t\texport GNUPGHOME\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n \t\ttest_set_prereq GPG\n+\t\tif [ -e \"${GNUPGHOME}\"/pubring.kbx ]; then\n+\t\t\ttest_set_prereq GNUPG21\n+\t\tfi\n \t\t;;\n \tesac\n fi\ndiff --git a/t/lib-gpg/ownertrust b/t/lib-gpg/ownertrust\nnew file mode 100644\nindex 0000000..b3e3c4f\n--- /dev/null\n+++ b/t/lib-gpg/ownertrust\n@@ -0,0 +1,4 @@\n+# List of assigned trustvalues, created Thu 11 Dec 2014 01:26:28 PM CET\n+# (Use \"gpg --import-ownertrust\" to restore them)\n+73D758744BE721698EC54E8713B6F51ECDDE430D:6:\n+D4BE22311AD3131E5EDA29A461092E85B7227189:3:\ndiff --git a/t/lib-gpg/random_seed b/t/lib-gpg/random_seed\ndeleted file mode 100644\nindex 95d249f15fce980f0e8c1a8a18b085b3885708aa..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 600\nzcmV-e0;m1ccZd+x>>TST*Lrq1x^ggx^+ymwieO!6X=U~ZH@{avIgxdn#ai{)Ou@Qw\nza}Z!boffEq^fn)n?c=IEnDpt59Lnc)aR*;8Z;k>gh_NW;ka;7Mt@v#sG(!Y9SSXWv\nzQxd3WlyBr#4ltW6uKOoa6(r3df1VX$cG4`Om6hD-ckaX+Hb_yI?{f`hJQY&k!1cM-\nzoGeY~(Z7aYn$W06djh?W|CMs>W=k@jgf=P2D1UA1T%vz0oE|<O<lIacG0xioPtS&U\nzNd#}P%YpJr-H65~J^RdqA!YV9BEvh7Gw^CdXg+Hp?kj=KGW|+|&g$4?`trWWGuy$9\nzv-|;8Y4(NRHWPyJ{epd{4%FHQKk5j}?0FFDAJ;0kIItZ4y<JS?DIG4~0!#x~;X`!P\nzO%+va?@`?yQnhjrP@&#yjY$YO_0yk|1ddhc8V&ru7d%ytet)mF<ZIUbPB3bvhHQ41\nzNmnYeFxUMu=m$K5&s=5_F&JSR#oU3Y#X{(q7HTp-VYJ)%JjihbZ@R#GeqmU{>0C4Q\nzc}hUG+ighB{7XSaNw_h;=YtqacQ<B(Cg$e)^NTDD-oMD+T`O#-^|-ib>j!<pxHg+(\nzlC$%zE836|E*F*((=>O{Nn@K$taZO}!>$t>GMgsw?!=n_#(%X9Ha|$b=H@VstWYe;\nzPUQ<L$$#9HTcOLoyEd6*A4TOEe3}c}GiW*^P1Lt{nHYUEAB`Qx7*wizaEyM$?AjVN\nmb-6m)4=6PVqdR>h+D!{<c#q1!T9b(}OW7hrrT@nJcBO(OGA4ll\n\ndiff --git a/t/lib-gpg/trustdb.gpg b/t/lib-gpg/trustdb.gpg\ndeleted file mode 100644\nindex 4879ae9a84650a93a4d15bd6560c5d1b89eb4c2f..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 1360\nzcmZQfFGy!*W@Ke#VqggLnYN69fq@Z-(E%eDx(E*bs5<NcGvvcX4&tvN?+<A7410el\nzpr*s&;$I$y;_DG5-p>^?`;Pjx3vc@>clMq$FB`<O@(4fkGH5;5W#Id_>(K1CUIi|N\nzsvi2g;@3gdA(S!jFkIQEWGHo6ST63C=8{BCz1HnYg`Lb06^aOjybMdTjEeXLLrOJU\nRgG}yTes6vJW7bzp^8ko~DZ2mw\n\ndiff --git a/t/t7004-tag.sh b/t/t7004-tag.sh\nindex 796e9f7..1c40967 100755\n--- a/t/t7004-tag.sh\n+++ b/t/t7004-tag.sh\n@@ -1081,7 +1081,7 @@ test_expect_success GPG \\\n get_tag_header rfc1991-signed-tag $commit commit $time >expect\n echo \"RFC1991 signed tag\" >>expect\n echo '-----BEGIN PGP MESSAGE-----' >>expect\n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'creating a signed tag with rfc1991' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \tgit tag -s -m \"RFC1991 signed tag\" rfc1991-signed-tag $commit &&\n@@ -1095,7 +1095,7 @@ cp \"$1\" actual\n EOF\n chmod +x fakeeditor\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'reediting a signed tag body omits signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \techo \"RFC1991 signed tag\" >expect &&\n@@ -1103,13 +1103,13 @@ test_expect_success GPG \\\n \ttest_cmp expect actual\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'verifying rfc1991 signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \tgit tag -v rfc1991-signed-tag\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'list tag with rfc1991 signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \techo \"rfc1991-signed-tag RFC1991 signed tag\" >expect &&\n@@ -1123,12 +1123,12 @@ test_expect_success GPG \\\n \n rm -f gpghome/gpg.conf\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'verifying rfc1991 signature without --rfc1991' '\n \tgit tag -v rfc1991-signed-tag\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'list tag with rfc1991 signature without --rfc1991' '\n \techo \"rfc1991-signed-tag RFC1991 signed tag\" >expect &&\n \tgit tag -l -n1 rfc1991-signed-tag >actual &&\n@@ -1139,7 +1139,7 @@ test_expect_success GPG \\\n \ttest_cmp expect actual\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,!GNUPG21 \\\n \t'reediting a signed tag body omits signature' '\n \techo \"RFC1991 signed tag\" >expect &&\n \tGIT_EDITOR=./fakeeditor git tag -f -s rfc1991-signed-tag $commit &&\n-- \n2.2.0\n"},{"id":"253586","messageId":"xmqqr3w5dd2c.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418303772-7909-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH v2 1/1] create gpg homedir on the fly and skip RFC1991 tests for gnupg 2.1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-11T22:41:31Z","receivedAt":"2014-12-11T22:41:31Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Christian Hesse <mail@eworm.de> writes:\n\n> GnuPG 2.1 homedir looks different, so just creat it on the fly by\n> importing needed private and public keys and ownertrust.\n> This solves an issue with gnupg 2.1 running interactive pinentry when\n> old secret key is present.\n>\n> Additionally GnuPG 2.1 does not longer support RFC1991, so skip these\n> tests.\n> ---\n\nNeeds a sign-off.\n\nAre older GPG implementations still happy with this new way to\ninitialize their gpghome?  \n\n>  t/lib-gpg.sh          |  13 ++++++++++---\n>  t/lib-gpg/ownertrust  |   4 ++++\n>  t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n>  t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n>  t/t7004-tag.sh        |  14 +++++++-------\n>  5 files changed, 21 insertions(+), 10 deletions(-)\n>  create mode 100644 t/lib-gpg/ownertrust\n>  delete mode 100644 t/lib-gpg/random_seed\n>  delete mode 100644 t/lib-gpg/trustdb.gpg\n\nDo these trust files need to be shipped?  In other words, would it\nbe insufficient to just import private-public keyrings?  I know we\nhave been shipping trustdb.gpg, and I do not think it is a problem\nto ship export-ownertrust output, but as long as we are cleaning\nthings up to make us compatible with both older and newer GPG,\nI thought I'd ask ;-)\n\n> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> index cd2baef..17c45ad 100755\n> --- a/t/lib-gpg.sh\n> +++ b/t/lib-gpg.sh\n> @@ -16,12 +16,19 @@ else\n>  \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n>  \t\t# Name and email: C O Mitter <committer@example.com>\n>  \t\t# No password given, to enable non-interactive operation.\n> -\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n> -\t\tchmod 0700 gpghome\n> -\t\tchmod 0600 gpghome/*\n> +\t\tmkdir ./gpghome\n> +\t\tchmod 0700 ./gpghome\n>  \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n>  \t\texport GNUPGHOME\n> +\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n> +\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n>  \t\ttest_set_prereq GPG\n> +\t\tif [ -e \"${GNUPGHOME}\"/pubring.kbx ]; then\n> +\t\t\ttest_set_prereq GNUPG21\n> +\t\tfi\n\nInstead of !GNUPG21 prerequisite, how about using a RFC1991\nprerequisite, which is satisfied by older GPG but not by the ones\nthat lack support?  That is,\n\n\t...\n        test_set_prereq GPG\n\tif ! test \"${GNUPGHOME}\"/pubring.kbx\n        then\n\t\ttest_set_prereq GPG_RFC1991\n\tfi\n\nor something.  That way, we do not have to be in a funny situation\nwhere we say a version of GPG satisfies GNUPG21 prereq but it in\nfact is GPG version 4.3 in the future.\n\nThanks.\n"},{"id":"253600","messageId":"20141212094753.160a0fb5@leda.localdomain","threadId":"38166","inReplyTo":"xmqqr3w5dd2c.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH v2 1/1] create gpg homedir on the fly and skip RFC1991 tests for gnupg 2.1","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T08:47:53Z","receivedAt":"2014-12-12T08:47:53Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"Junio C Hamano <gitster@pobox.com> on Thu, 2014/12/11 14:41:\n> Christian Hesse <mail@eworm.de> writes:\n> \n> > GnuPG 2.1 homedir looks different, so just creat it on the fly by\n> > importing needed private and public keys and ownertrust.\n> > This solves an issue with gnupg 2.1 running interactive pinentry when\n> > old secret key is present.\n> >\n> > Additionally GnuPG 2.1 does not longer support RFC1991, so skip these\n> > tests.\n> > ---\n> \n> Needs a sign-off.\n\nDamn... But yes, you are right. ;)\n\n> Are older GPG implementations still happy with this new way to\n> initialize their gpghome?  \n\nYes, tested with gnupg 1.4.10 from Debian squeeze (6.x).\nEverybody is welcome to test on her/his distribution, though. ;)\n\n> >  t/lib-gpg.sh          |  13 ++++++++++---\n> >  t/lib-gpg/ownertrust  |   4 ++++\n> >  t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n> >  t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n> >  t/t7004-tag.sh        |  14 +++++++-------\n> >  5 files changed, 21 insertions(+), 10 deletions(-)\n> >  create mode 100644 t/lib-gpg/ownertrust\n> >  delete mode 100644 t/lib-gpg/random_seed\n> >  delete mode 100644 t/lib-gpg/trustdb.gpg\n> \n> Do these trust files need to be shipped?  In other words, would it\n> be insufficient to just import private-public keyrings?  I know we\n> have been shipping trustdb.gpg, and I do not think it is a problem\n> to ship export-ownertrust output, but as long as we are cleaning\n> things up to make us compatible with both older and newer GPG,\n> I thought I'd ask ;-)\n\nYes, we need this.\nSome tests check for the trust level, e.g t7510-signed-commit.sh being one of\nthese.\n\n> > diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> > index cd2baef..17c45ad 100755\n> > --- a/t/lib-gpg.sh\n> > +++ b/t/lib-gpg.sh\n> > @@ -16,12 +16,19 @@ else\n> >  \t\t# Type DSA and Elgamal, size 2048 bits, no expiration\n> > date. # Name and email: C O Mitter <committer@example.com>\n> >  \t\t# No password given, to enable non-interactive operation.\n> > -\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n> > -\t\tchmod 0700 gpghome\n> > -\t\tchmod 0600 gpghome/*\n> > +\t\tmkdir ./gpghome\n> > +\t\tchmod 0700 ./gpghome\n> >  \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n> >  \t\texport GNUPGHOME\n> > +\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n> > +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n> > +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n> > +\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n> > +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n> >  \t\ttest_set_prereq GPG\n> > +\t\tif [ -e \"${GNUPGHOME}\"/pubring.kbx ]; then\n> > +\t\t\ttest_set_prereq GNUPG21\n> > +\t\tfi\n> \n> Instead of !GNUPG21 prerequisite, how about using a RFC1991\n> prerequisite, which is satisfied by older GPG but not by the ones\n> that lack support?  That is,\n> \n> \t...\n>         test_set_prereq GPG\n> \tif ! test \"${GNUPGHOME}\"/pubring.kbx\n>         then\n> \t\ttest_set_prereq GPG_RFC1991\n> \tfi\n> \n> or something.  That way, we do not have to be in a funny situation\n> where we say a version of GPG satisfies GNUPG21 prereq but it in\n> fact is GPG version 4.3 in the future.\n\nMakes sense.\nIn addition I do check if gpg does work if --rfc1991 is given, no more\nchecking for keyring file.\n\nI will reply with a new series of patches.\n-- \nBest regards,\nChris\n"},{"id":"253602","messageId":"1418374214-8241-1-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":"20141212094753.160a0fb5@leda.localdomain","subject":"[PATCH 1/3] create gpg homedir on the fly","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T08:50:12Z","receivedAt":"2014-12-12T08:50:12Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"GnuPG 2.1 homedir looks different, so just creat it on the fly by\nimporting needed private and public keys and ownertrust.\nThis solves an issue with gnupg 2.1 running interactive pinentry when\nold secret key is present.\n\nSigned-off-by: Christian Hesse <mail@eworm.de>\n---\n t/lib-gpg.sh          |  10 +++++++---\n t/lib-gpg/ownertrust  |   4 ++++\n t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n 4 files changed, 11 insertions(+), 3 deletions(-)\n create mode 100644 t/lib-gpg/ownertrust\n delete mode 100644 t/lib-gpg/random_seed\n delete mode 100644 t/lib-gpg/trustdb.gpg\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex cd2baef..4e57942 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -16,11 +16,15 @@ else\n \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n \t\t# Name and email: C O Mitter <committer@example.com>\n \t\t# No password given, to enable non-interactive operation.\n-\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n-\t\tchmod 0700 gpghome\n-\t\tchmod 0600 gpghome/*\n+\t\tmkdir ./gpghome\n+\t\tchmod 0700 ./gpghome\n \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n \t\texport GNUPGHOME\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n \t\ttest_set_prereq GPG\n \t\t;;\n \tesac\ndiff --git a/t/lib-gpg/ownertrust b/t/lib-gpg/ownertrust\nnew file mode 100644\nindex 0000000..b3e3c4f\n--- /dev/null\n+++ b/t/lib-gpg/ownertrust\n@@ -0,0 +1,4 @@\n+# List of assigned trustvalues, created Thu 11 Dec 2014 01:26:28 PM CET\n+# (Use \"gpg --import-ownertrust\" to restore them)\n+73D758744BE721698EC54E8713B6F51ECDDE430D:6:\n+D4BE22311AD3131E5EDA29A461092E85B7227189:3:\ndiff --git a/t/lib-gpg/random_seed b/t/lib-gpg/random_seed\ndeleted file mode 100644\nindex 95d249f15fce980f0e8c1a8a18b085b3885708aa..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 600\nzcmV-e0;m1ccZd+x>>TST*Lrq1x^ggx^+ymwieO!6X=U~ZH@{avIgxdn#ai{)Ou@Qw\nza}Z!boffEq^fn)n?c=IEnDpt59Lnc)aR*;8Z;k>gh_NW;ka;7Mt@v#sG(!Y9SSXWv\nzQxd3WlyBr#4ltW6uKOoa6(r3df1VX$cG4`Om6hD-ckaX+Hb_yI?{f`hJQY&k!1cM-\nzoGeY~(Z7aYn$W06djh?W|CMs>W=k@jgf=P2D1UA1T%vz0oE|<O<lIacG0xioPtS&U\nzNd#}P%YpJr-H65~J^RdqA!YV9BEvh7Gw^CdXg+Hp?kj=KGW|+|&g$4?`trWWGuy$9\nzv-|;8Y4(NRHWPyJ{epd{4%FHQKk5j}?0FFDAJ;0kIItZ4y<JS?DIG4~0!#x~;X`!P\nzO%+va?@`?yQnhjrP@&#yjY$YO_0yk|1ddhc8V&ru7d%ytet)mF<ZIUbPB3bvhHQ41\nzNmnYeFxUMu=m$K5&s=5_F&JSR#oU3Y#X{(q7HTp-VYJ)%JjihbZ@R#GeqmU{>0C4Q\nzc}hUG+ighB{7XSaNw_h;=YtqacQ<B(Cg$e)^NTDD-oMD+T`O#-^|-ib>j!<pxHg+(\nzlC$%zE836|E*F*((=>O{Nn@K$taZO}!>$t>GMgsw?!=n_#(%X9Ha|$b=H@VstWYe;\nzPUQ<L$$#9HTcOLoyEd6*A4TOEe3}c}GiW*^P1Lt{nHYUEAB`Qx7*wizaEyM$?AjVN\nmb-6m)4=6PVqdR>h+D!{<c#q1!T9b(}OW7hrrT@nJcBO(OGA4ll\n\ndiff --git a/t/lib-gpg/trustdb.gpg b/t/lib-gpg/trustdb.gpg\ndeleted file mode 100644\nindex 4879ae9a84650a93a4d15bd6560c5d1b89eb4c2f..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 1360\nzcmZQfFGy!*W@Ke#VqggLnYN69fq@Z-(E%eDx(E*bs5<NcGvvcX4&tvN?+<A7410el\nzpr*s&;$I$y;_DG5-p>^?`;Pjx3vc@>clMq$FB`<O@(4fkGH5;5W#Id_>(K1CUIi|N\nzsvi2g;@3gdA(S!jFkIQEWGHo6ST63C=8{BCz1HnYg`Lb06^aOjybMdTjEeXLLrOJU\nRgG}yTes6vJW7bzp^8ko~DZ2mw\n\n-- \n2.2.0\n"},{"id":"253603","messageId":"1418374214-8241-2-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"[PATCH 2/3] skip RFC1991 tests for gnupg 2.1","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T08:50:13Z","receivedAt":"2014-12-12T08:50:13Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"GnuPG >= 2.1.0 does not longer support RFC1991, so skip these\ntests.\n\nSigned-off-by: Christian Hesse <mail@eworm.de>\n---\n t/lib-gpg.sh   |  3 +++\n t/t7004-tag.sh | 14 +++++++-------\n 2 files changed, 10 insertions(+), 7 deletions(-)\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex 4e57942..b0138ad 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -26,6 +26,9 @@ else\n \t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n \t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n \t\ttest_set_prereq GPG\n+\t\tif echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>/dev/null; then\n+\t\t\ttest_set_prereq RFC1991\n+\t\tfi\n \t\t;;\n \tesac\n fi\ndiff --git a/t/t7004-tag.sh b/t/t7004-tag.sh\nindex 796e9f7..35c805a 100755\n--- a/t/t7004-tag.sh\n+++ b/t/t7004-tag.sh\n@@ -1081,7 +1081,7 @@ test_expect_success GPG \\\n get_tag_header rfc1991-signed-tag $commit commit $time >expect\n echo \"RFC1991 signed tag\" >>expect\n echo '-----BEGIN PGP MESSAGE-----' >>expect\n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'creating a signed tag with rfc1991' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \tgit tag -s -m \"RFC1991 signed tag\" rfc1991-signed-tag $commit &&\n@@ -1095,7 +1095,7 @@ cp \"$1\" actual\n EOF\n chmod +x fakeeditor\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'reediting a signed tag body omits signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \techo \"RFC1991 signed tag\" >expect &&\n@@ -1103,13 +1103,13 @@ test_expect_success GPG \\\n \ttest_cmp expect actual\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'verifying rfc1991 signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \tgit tag -v rfc1991-signed-tag\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'list tag with rfc1991 signature' '\n \techo \"rfc1991\" >gpghome/gpg.conf &&\n \techo \"rfc1991-signed-tag RFC1991 signed tag\" >expect &&\n@@ -1123,12 +1123,12 @@ test_expect_success GPG \\\n \n rm -f gpghome/gpg.conf\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'verifying rfc1991 signature without --rfc1991' '\n \tgit tag -v rfc1991-signed-tag\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'list tag with rfc1991 signature without --rfc1991' '\n \techo \"rfc1991-signed-tag RFC1991 signed tag\" >expect &&\n \tgit tag -l -n1 rfc1991-signed-tag >actual &&\n@@ -1139,7 +1139,7 @@ test_expect_success GPG \\\n \ttest_cmp expect actual\n '\n \n-test_expect_success GPG \\\n+test_expect_success GPG,RFC1991 \\\n \t'reediting a signed tag body omits signature' '\n \techo \"RFC1991 signed tag\" >expect &&\n \tGIT_EDITOR=./fakeeditor git tag -f -s rfc1991-signed-tag $commit &&\n-- \n2.2.0\n"},{"id":"253604","messageId":"1418374214-8241-3-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"[PATCH 3/3] replace binary keyrings with armored keys","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T08:50:14Z","receivedAt":"2014-12-12T08:50:14Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"Signed-off-by: Christian Hesse <mail@eworm.de>\n---\n t/lib-gpg.sh          |   3 +-\n t/lib-gpg/keyring.gpg |  88 ++++++++++++++++++++++++++++++++++++++++++++++++++\n t/lib-gpg/pubring.gpg | Bin 2359 -> 0 bytes\n t/lib-gpg/secring.gpg | Bin 3734 -> 0 bytes\n 4 files changed, 89 insertions(+), 2 deletions(-)\n create mode 100644 t/lib-gpg/keyring.gpg\n delete mode 100644 t/lib-gpg/pubring.gpg\n delete mode 100644 t/lib-gpg/secring.gpg\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex b0138ad..03c2dd3 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -21,8 +21,7 @@ else\n \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n \t\texport GNUPGHOME\n \t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n \t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n \t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n \t\ttest_set_prereq GPG\ndiff --git a/t/lib-gpg/keyring.gpg b/t/lib-gpg/keyring.gpg\nnew file mode 100644\nindex 0000000..fb1f048\n--- /dev/null\n+++ b/t/lib-gpg/keyring.gpg\n@@ -0,0 +1,88 @@\n+-----BEGIN PGP PRIVATE KEY BLOCK-----\n+Version: GnuPG v1\n+\n+lQG7BEZnyykRBACzCPjIpTYNL7Y2tQqlEGTTDlvZcWNLjF5f7ZzuyOqNOidLUgFD\n+36qch1LZLSZkShdR3Gae+bsolyjxrlFuFP0eXRPMtqK20aLw7WZvPFpEV1ThMne+\n+PRJjYrvghWw3L0VVIAIZ8GXwrVBuU99uEjHEI0ojYloOvFc2jVPgSaoBvwCg48Tj\n+fol2foSoJa7XUu9yAL8szg8D/RUsTzNF+I9hSRHl7MYKFMYoKEY9BDgrgAujp7YY\n+8qdGsiUb0Ggyzp2kRjZFt4lpcvKhGfHn5GEjmtk+fRbD5qPfMqKFW+T0NPfYlYmL\n+JJ4fs4qZ8Lx7x6iG6X51u+YNwsQuIGjMCC3CeNi3F7or651kkNYASbaQ1NROkCIN\n+NudyA/0aasvoZUoNJAc2cP5Ifs6WhXMWLfMR2p2XbfKwKNYneec60usnSComcKqh\n+sJVk0Gytvr3FOYVhRkXnKAbx+0W2urFP8OFVBTEKO6Ts2VygWGgneQYoHnqzwlUE\n+yjOjlr+lyf7u2s/KAxpKA6jnttEdRZAmzWkhuox1wwAUkr27/QAAn3TEzKR1pxxR\n++R3dHuFpnnfatMIDC5O0IkMgTyBNaXR0ZXIgPGNvbW1pdHRlckBleGFtcGxlLmNv\n+bT6IXgQTEQIAHgUCRmfLKQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRATtvUe\n+zd5DDXQdAKC92f+wOrTkbmPEf+u+qA/Gv6BxQwCfQ128JXCi3MpMB8tI2Kmo15tY\n+gnmdAj0ERmfLThAIAM65eT9T6+gg0fJn+Qxhs3FFDPjxK6AOBS3SieWWmXO6stZZ\n+plvb7r2+sXYp8HMHntnOX3TRPolIx1dsdkv3W3w8yUzf9Lmo2XMPsZ3/isWdEbOI\n+A0rO3B1xwbQO7vEoWHeB7uyYIF6YsIH0pMqxkImciwB1tnJPB9OxqPHlD/HyyHr2\n+voj6nmEGaPQWj8/dkfyenXm6XmNZUZL/slk6tRhNwv4cW3QQLh39nbiz9rqvZMKF\n+XX8wkY4FdQkJjCGwqzG+7yJcyHvem29/iq//jRLZgdiN8BwV3MCTJyDp8/Wb/d9y\n+jZcUm1RdtwRiwfhfQ+zmpyspm7OxINfH65rf7f8ABA0IALRiMRs/eOD59jrYXmPS\n+ZQUbiALlbJJtuP2c9N3WZ5OgrhDiAW+SDIN+hgDynJ9b7C2dE3xNaud4zaXAAF44\n+J4J0bAo2ZtZoJajw+GXwaZfh4Z7nPNHwEcbFD4/uXPCj9jPkcLOJqGmUY1aXdygo\n+t3Hn5U/zo8JxPQ83YbJQhkzAOZ/HGowLNqKgGkLLHn1X9qay0CxlfTQeEN5RZyl3\n+b4qRzGgGALFvoheyZIUw1TbjRpbn3kqlJooEQY02VwXFXfLI/LwzglilH6sSckvs\n+0WHKLZ+0L6b3CgJHN2RsZ7QxwCBi1aemsvr65FeEXp/AYxaG5duUbsugG8PgoJ06\n+bsEAAVQNQO3cXWpuiJ/nNLLnWuPunBKJUlurkBdf2GD+m+muF0VpwDchhqqbTO4e\n+FqOISQQYEQIACQUCRmfLTgIbDAAKCRATtvUezd5DDcHsAKDQcoAtDWJFupVRqleB\n+Cezx4Q2khACcCs+/LtE8Lb9hC+2cvr3uH5p82AI=\n+=aEiU\n+-----END PGP PRIVATE KEY BLOCK-----\n+-----BEGIN PGP PRIVATE KEY BLOCK-----\n+Version: GnuPG v1\n+\n+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\n+=hieJ\n+-----END PGP PRIVATE KEY BLOCK-----\ndiff --git a/t/lib-gpg/pubring.gpg b/t/lib-gpg/pubring.gpg\ndeleted file mode 100644\nindex 1a3c2d487c2fda9169751a3068fa51e853a1e519..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 2359\n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\nI{Xf<G4artTjQ{`u\n\ndiff --git a/t/lib-gpg/secring.gpg b/t/lib-gpg/secring.gpg\ndeleted file mode 100644\nindex 82dca8f80bf170fde5705862c3eeb9d994725042..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 3734\n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\nb1#l&j<67Nr^MulyK!({nR7ex2{s`<}t0L{v\n\n-- \n2.2.0\n"},{"id":"253605","messageId":"CAPig+cTEY4fbNuVv0S-jOk7CKouh5aRKSR=KejJQD3a9bhcOKQ@mail.gmail.com","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH 1/3] create gpg homedir on the fly","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2014-12-12T08:52:19Z","receivedAt":"2014-12-12T08:52:19Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Fri, Dec 12, 2014 at 3:50 AM, Christian Hesse <mail@eworm.de> wrote:\n> GnuPG 2.1 homedir looks different, so just creat it on the fly by\n\ns/creat/create/\n\n> importing needed private and public keys and ownertrust.\n> This solves an issue with gnupg 2.1 running interactive pinentry when\n> old secret key is present.\n>\n> Signed-off-by: Christian Hesse <mail@eworm.de>\n"},{"id":"253606","messageId":"1418374521-8643-1-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":"CAPig+cTEY4fbNuVv0S-jOk7CKouh5aRKSR=KejJQD3a9bhcOKQ@mail.gmail.com","subject":"[PATCH 1/3] create gpg homedir on the fly","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T08:55:21Z","receivedAt":"2014-12-12T08:55:21Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"GnuPG 2.1 homedir looks different, so just create it on the fly by\nimporting needed private and public keys and ownertrust.\nThis solves an issue with gnupg 2.1 running interactive pinentry when\nold secret key is present.\n\nSigned-off-by: Christian Hesse <mail@eworm.de>\n---\n t/lib-gpg.sh          |  10 +++++++---\n t/lib-gpg/ownertrust  |   4 ++++\n t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n 4 files changed, 11 insertions(+), 3 deletions(-)\n create mode 100644 t/lib-gpg/ownertrust\n delete mode 100644 t/lib-gpg/random_seed\n delete mode 100644 t/lib-gpg/trustdb.gpg\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex cd2baef..4e57942 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -16,11 +16,15 @@ else\n \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n \t\t# Name and email: C O Mitter <committer@example.com>\n \t\t# No password given, to enable non-interactive operation.\n-\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n-\t\tchmod 0700 gpghome\n-\t\tchmod 0600 gpghome/*\n+\t\tmkdir ./gpghome\n+\t\tchmod 0700 ./gpghome\n \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n \t\texport GNUPGHOME\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n+\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n \t\ttest_set_prereq GPG\n \t\t;;\n \tesac\ndiff --git a/t/lib-gpg/ownertrust b/t/lib-gpg/ownertrust\nnew file mode 100644\nindex 0000000..b3e3c4f\n--- /dev/null\n+++ b/t/lib-gpg/ownertrust\n@@ -0,0 +1,4 @@\n+# List of assigned trustvalues, created Thu 11 Dec 2014 01:26:28 PM CET\n+# (Use \"gpg --import-ownertrust\" to restore them)\n+73D758744BE721698EC54E8713B6F51ECDDE430D:6:\n+D4BE22311AD3131E5EDA29A461092E85B7227189:3:\ndiff --git a/t/lib-gpg/random_seed b/t/lib-gpg/random_seed\ndeleted file mode 100644\nindex 95d249f15fce980f0e8c1a8a18b085b3885708aa..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 600\nzcmV-e0;m1ccZd+x>>TST*Lrq1x^ggx^+ymwieO!6X=U~ZH@{avIgxdn#ai{)Ou@Qw\nza}Z!boffEq^fn)n?c=IEnDpt59Lnc)aR*;8Z;k>gh_NW;ka;7Mt@v#sG(!Y9SSXWv\nzQxd3WlyBr#4ltW6uKOoa6(r3df1VX$cG4`Om6hD-ckaX+Hb_yI?{f`hJQY&k!1cM-\nzoGeY~(Z7aYn$W06djh?W|CMs>W=k@jgf=P2D1UA1T%vz0oE|<O<lIacG0xioPtS&U\nzNd#}P%YpJr-H65~J^RdqA!YV9BEvh7Gw^CdXg+Hp?kj=KGW|+|&g$4?`trWWGuy$9\nzv-|;8Y4(NRHWPyJ{epd{4%FHQKk5j}?0FFDAJ;0kIItZ4y<JS?DIG4~0!#x~;X`!P\nzO%+va?@`?yQnhjrP@&#yjY$YO_0yk|1ddhc8V&ru7d%ytet)mF<ZIUbPB3bvhHQ41\nzNmnYeFxUMu=m$K5&s=5_F&JSR#oU3Y#X{(q7HTp-VYJ)%JjihbZ@R#GeqmU{>0C4Q\nzc}hUG+ighB{7XSaNw_h;=YtqacQ<B(Cg$e)^NTDD-oMD+T`O#-^|-ib>j!<pxHg+(\nzlC$%zE836|E*F*((=>O{Nn@K$taZO}!>$t>GMgsw?!=n_#(%X9Ha|$b=H@VstWYe;\nzPUQ<L$$#9HTcOLoyEd6*A4TOEe3}c}GiW*^P1Lt{nHYUEAB`Qx7*wizaEyM$?AjVN\nmb-6m)4=6PVqdR>h+D!{<c#q1!T9b(}OW7hrrT@nJcBO(OGA4ll\n\ndiff --git a/t/lib-gpg/trustdb.gpg b/t/lib-gpg/trustdb.gpg\ndeleted file mode 100644\nindex 4879ae9a84650a93a4d15bd6560c5d1b89eb4c2f..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 1360\nzcmZQfFGy!*W@Ke#VqggLnYN69fq@Z-(E%eDx(E*bs5<NcGvvcX4&tvN?+<A7410el\nzpr*s&;$I$y;_DG5-p>^?`;Pjx3vc@>clMq$FB`<O@(4fkGH5;5W#Id_>(K1CUIi|N\nzsvi2g;@3gdA(S!jFkIQEWGHo6ST63C=8{BCz1HnYg`Lb06^aOjybMdTjEeXLLrOJU\nRgG}yTes6vJW7bzp^8ko~DZ2mw\n\n-- \n2.2.0\n"},{"id":"253640","messageId":"xmqq61dgd8r4.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH 1/3] create gpg homedir on the fly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-12T18:26:55Z","receivedAt":"2014-12-12T18:26:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Christian Hesse <mail@eworm.de> writes:\n\n> GnuPG 2.1 homedir looks different, so just creat it on the fly by\n> importing needed private and public keys and ownertrust.\n> This solves an issue with gnupg 2.1 running interactive pinentry when\n> old secret key is present.\n>\n> Signed-off-by: Christian Hesse <mail@eworm.de>\n> ---\n\nThanks; will queue with s/just creat/&e/;\n\n>  t/lib-gpg.sh          |  10 +++++++---\n>  t/lib-gpg/ownertrust  |   4 ++++\n>  t/lib-gpg/random_seed | Bin 600 -> 0 bytes\n>  t/lib-gpg/trustdb.gpg | Bin 1360 -> 0 bytes\n>  4 files changed, 11 insertions(+), 3 deletions(-)\n>  create mode 100644 t/lib-gpg/ownertrust\n>  delete mode 100644 t/lib-gpg/random_seed\n>  delete mode 100644 t/lib-gpg/trustdb.gpg\n>\n> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> index cd2baef..4e57942 100755\n> --- a/t/lib-gpg.sh\n> +++ b/t/lib-gpg.sh\n> @@ -16,11 +16,15 @@ else\n>  \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n>  \t\t# Name and email: C O Mitter <committer@example.com>\n>  \t\t# No password given, to enable non-interactive operation.\n> -\t\tcp -R \"$TEST_DIRECTORY\"/lib-gpg ./gpghome\n> -\t\tchmod 0700 gpghome\n> -\t\tchmod 0600 gpghome/*\n> +\t\tmkdir ./gpghome\n> +\t\tchmod 0700 ./gpghome\n>  \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n>  \t\texport GNUPGHOME\n> +\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n> +\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n>  \t\ttest_set_prereq GPG\n>  \t\t;;\n>  \tesac\n> diff --git a/t/lib-gpg/ownertrust b/t/lib-gpg/ownertrust\n> new file mode 100644\n> index 0000000..b3e3c4f\n> --- /dev/null\n> +++ b/t/lib-gpg/ownertrust\n> @@ -0,0 +1,4 @@\n> +# List of assigned trustvalues, created Thu 11 Dec 2014 01:26:28 PM CET\n> +# (Use \"gpg --import-ownertrust\" to restore them)\n> +73D758744BE721698EC54E8713B6F51ECDDE430D:6:\n> +D4BE22311AD3131E5EDA29A461092E85B7227189:3:\n> diff --git a/t/lib-gpg/random_seed b/t/lib-gpg/random_seed\n> deleted file mode 100644\n> index 95d249f15fce980f0e8c1a8a18b085b3885708aa..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 600\n> zcmV-e0;m1ccZd+x>>TST*Lrq1x^ggx^+ymwieO!6X=U~ZH@{avIgxdn#ai{)Ou@Qw\n> za}Z!boffEq^fn)n?c=IEnDpt59Lnc)aR*;8Z;k>gh_NW;ka;7Mt@v#sG(!Y9SSXWv\n> zQxd3WlyBr#4ltW6uKOoa6(r3df1VX$cG4`Om6hD-ckaX+Hb_yI?{f`hJQY&k!1cM-\n> zoGeY~(Z7aYn$W06djh?W|CMs>W=k@jgf=P2D1UA1T%vz0oE|<O<lIacG0xioPtS&U\n> zNd#}P%YpJr-H65~J^RdqA!YV9BEvh7Gw^CdXg+Hp?kj=KGW|+|&g$4?`trWWGuy$9\n> zv-|;8Y4(NRHWPyJ{epd{4%FHQKk5j}?0FFDAJ;0kIItZ4y<JS?DIG4~0!#x~;X`!P\n> zO%+va?@`?yQnhjrP@&#yjY$YO_0yk|1ddhc8V&ru7d%ytet)mF<ZIUbPB3bvhHQ41\n> zNmnYeFxUMu=m$K5&s=5_F&JSR#oU3Y#X{(q7HTp-VYJ)%JjihbZ@R#GeqmU{>0C4Q\n> zc}hUG+ighB{7XSaNw_h;=YtqacQ<B(Cg$e)^NTDD-oMD+T`O#-^|-ib>j!<pxHg+(\n> zlC$%zE836|E*F*((=>O{Nn@K$taZO}!>$t>GMgsw?!=n_#(%X9Ha|$b=H@VstWYe;\n> zPUQ<L$$#9HTcOLoyEd6*A4TOEe3}c}GiW*^P1Lt{nHYUEAB`Qx7*wizaEyM$?AjVN\n> mb-6m)4=6PVqdR>h+D!{<c#q1!T9b(}OW7hrrT@nJcBO(OGA4ll\n>\n> diff --git a/t/lib-gpg/trustdb.gpg b/t/lib-gpg/trustdb.gpg\n> deleted file mode 100644\n> index 4879ae9a84650a93a4d15bd6560c5d1b89eb4c2f..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 1360\n> zcmZQfFGy!*W@Ke#VqggLnYN69fq@Z-(E%eDx(E*bs5<NcGvvcX4&tvN?+<A7410el\n> zpr*s&;$I$y;_DG5-p>^?`;Pjx3vc@>clMq$FB`<O@(4fkGH5;5W#Id_>(K1CUIi|N\n> zsvi2g;@3gdA(S!jFkIQEWGHo6ST63C=8{BCz1HnYg`Lb06^aOjybMdTjEeXLLrOJU\n> RgG}yTes6vJW7bzp^8ko~DZ2mw\n"},{"id":"253642","messageId":"xmqq1to4d8bh.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418374214-8241-3-git-send-email-mail@eworm.de","subject":"Re: [PATCH 3/3] replace binary keyrings with armored keys","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-12T18:36:18Z","receivedAt":"2014-12-12T18:36:18Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Christian Hesse <mail@eworm.de> writes:\n\n> Signed-off-by: Christian Hesse <mail@eworm.de>\n> ---\n\nCould you explain why it is a good idea to do this to the future\nreaders of \"git log\" who encounter this change?\n\nNote that I do not have a particular objection to this change.  If\nthe original were using a single file as an import source and that\nhappened to be ascii-armored, I wouldn't have suggested a patch that\nis a reverse of this patch to split it into two binary keyrings.\n\nIt's just that I do not want to see \"replace X with Y\" without any\nmention of \"because Y is better than X in such and such way\",\nespecially when X and Y would equally work well.  The reason does\nnot have to be particularly strong, and something like \"a single\nunreadable ASCII-armored blob is sufficient for the purpose of our\ntest set-up, instead of two unreadable binary blobs\" is sufficient.\n\nAnd there is more reason than that, then we would definitely want to\nknow about it (e.g. there is a plan in the future to drop importing\nbinary on the GPG side; importing pubring and then secring may not\nwork and the order may have to be swapped, or any random reason that\nmakes \"X and Y would equally work well\" untrue).\n\nThanks.\n\n>  t/lib-gpg.sh          |   3 +-\n>  t/lib-gpg/keyring.gpg |  88 ++++++++++++++++++++++++++++++++++++++++++++++++++\n>  t/lib-gpg/pubring.gpg | Bin 2359 -> 0 bytes\n>  t/lib-gpg/secring.gpg | Bin 3734 -> 0 bytes\n>  4 files changed, 89 insertions(+), 2 deletions(-)\n>  create mode 100644 t/lib-gpg/keyring.gpg\n>  delete mode 100644 t/lib-gpg/pubring.gpg\n>  delete mode 100644 t/lib-gpg/secring.gpg\n>\n> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> index b0138ad..03c2dd3 100755\n> --- a/t/lib-gpg.sh\n> +++ b/t/lib-gpg.sh\n> @@ -21,8 +21,7 @@ else\n>  \t\tGNUPGHOME=\"$(pwd)/gpghome\"\n>  \t\texport GNUPGHOME\n>  \t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n> -\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n> -\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n>  \t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n>  \t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n>  \t\ttest_set_prereq GPG\n> diff --git a/t/lib-gpg/keyring.gpg b/t/lib-gpg/keyring.gpg\n> new file mode 100644\n> index 0000000..fb1f048\n> --- /dev/null\n> +++ b/t/lib-gpg/keyring.gpg\n> @@ -0,0 +1,88 @@\n> +-----BEGIN PGP PRIVATE KEY BLOCK-----\n> +Version: GnuPG v1\n> +\n> +lQG7BEZnyykRBACzCPjIpTYNL7Y2tQqlEGTTDlvZcWNLjF5f7ZzuyOqNOidLUgFD\n> +36qch1LZLSZkShdR3Gae+bsolyjxrlFuFP0eXRPMtqK20aLw7WZvPFpEV1ThMne+\n> +PRJjYrvghWw3L0VVIAIZ8GXwrVBuU99uEjHEI0ojYloOvFc2jVPgSaoBvwCg48Tj\n> +fol2foSoJa7XUu9yAL8szg8D/RUsTzNF+I9hSRHl7MYKFMYoKEY9BDgrgAujp7YY\n> +8qdGsiUb0Ggyzp2kRjZFt4lpcvKhGfHn5GEjmtk+fRbD5qPfMqKFW+T0NPfYlYmL\n> +JJ4fs4qZ8Lx7x6iG6X51u+YNwsQuIGjMCC3CeNi3F7or651kkNYASbaQ1NROkCIN\n> +NudyA/0aasvoZUoNJAc2cP5Ifs6WhXMWLfMR2p2XbfKwKNYneec60usnSComcKqh\n> +sJVk0Gytvr3FOYVhRkXnKAbx+0W2urFP8OFVBTEKO6Ts2VygWGgneQYoHnqzwlUE\n> +yjOjlr+lyf7u2s/KAxpKA6jnttEdRZAmzWkhuox1wwAUkr27/QAAn3TEzKR1pxxR\n> ++R3dHuFpnnfatMIDC5O0IkMgTyBNaXR0ZXIgPGNvbW1pdHRlckBleGFtcGxlLmNv\n> +bT6IXgQTEQIAHgUCRmfLKQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRATtvUe\n> +zd5DDXQdAKC92f+wOrTkbmPEf+u+qA/Gv6BxQwCfQ128JXCi3MpMB8tI2Kmo15tY\n> +gnmdAj0ERmfLThAIAM65eT9T6+gg0fJn+Qxhs3FFDPjxK6AOBS3SieWWmXO6stZZ\n> +plvb7r2+sXYp8HMHntnOX3TRPolIx1dsdkv3W3w8yUzf9Lmo2XMPsZ3/isWdEbOI\n> +A0rO3B1xwbQO7vEoWHeB7uyYIF6YsIH0pMqxkImciwB1tnJPB9OxqPHlD/HyyHr2\n> +voj6nmEGaPQWj8/dkfyenXm6XmNZUZL/slk6tRhNwv4cW3QQLh39nbiz9rqvZMKF\n> +XX8wkY4FdQkJjCGwqzG+7yJcyHvem29/iq//jRLZgdiN8BwV3MCTJyDp8/Wb/d9y\n> +jZcUm1RdtwRiwfhfQ+zmpyspm7OxINfH65rf7f8ABA0IALRiMRs/eOD59jrYXmPS\n> +ZQUbiALlbJJtuP2c9N3WZ5OgrhDiAW+SDIN+hgDynJ9b7C2dE3xNaud4zaXAAF44\n> +J4J0bAo2ZtZoJajw+GXwaZfh4Z7nPNHwEcbFD4/uXPCj9jPkcLOJqGmUY1aXdygo\n> +t3Hn5U/zo8JxPQ83YbJQhkzAOZ/HGowLNqKgGkLLHn1X9qay0CxlfTQeEN5RZyl3\n> +b4qRzGgGALFvoheyZIUw1TbjRpbn3kqlJooEQY02VwXFXfLI/LwzglilH6sSckvs\n> +0WHKLZ+0L6b3CgJHN2RsZ7QxwCBi1aemsvr65FeEXp/AYxaG5duUbsugG8PgoJ06\n> +bsEAAVQNQO3cXWpuiJ/nNLLnWuPunBKJUlurkBdf2GD+m+muF0VpwDchhqqbTO4e\n> +FqOISQQYEQIACQUCRmfLTgIbDAAKCRATtvUezd5DDcHsAKDQcoAtDWJFupVRqleB\n> +Cezx4Q2khACcCs+/LtE8Lb9hC+2cvr3uH5p82AI=\n> +=aEiU\n> +-----END PGP PRIVATE KEY BLOCK-----\n> +-----BEGIN PGP PRIVATE KEY BLOCK-----\n> +Version: GnuPG v1\n> +\n> +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\n> +=hieJ\n> +-----END PGP PRIVATE KEY BLOCK-----\n> diff --git a/t/lib-gpg/pubring.gpg b/t/lib-gpg/pubring.gpg\n> deleted file mode 100644\n> index 1a3c2d487c2fda9169751a3068fa51e853a1e519..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 2359\n> 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\n> I{Xf<G4artTjQ{`u\n>\n> diff --git a/t/lib-gpg/secring.gpg b/t/lib-gpg/secring.gpg\n> deleted file mode 100644\n> index 82dca8f80bf170fde5705862c3eeb9d994725042..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 3734\n> 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\n> b1#l&j<67Nr^MulyK!({nR7ex2{s`<}t0L{v\n"},{"id":"253654","messageId":"xmqqk31wbobc.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH 1/3] create gpg homedir on the fly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-12T20:33:43Z","receivedAt":"2014-12-12T20:33:43Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"After queuing these three, I _think_ it is better to have something\nlike this patch on top, as it is distracting to let the GPG message\nwhile setting up the test gpghome leak into the test output,\nespecially without running these tests with \"-v\" option.\n\nThe splitting of RFC1991 prerequiste part is about future-proofing.\nWhen we want to define other kinds of specific prerequisites in the\nfuture, I'd prefer to see it done separately from the basic set-up\ncode.\n\n t/lib-gpg.sh | 26 ++++++++++++++------------\n 1 file changed, 14 insertions(+), 12 deletions(-)\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex b611b78..33de402 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -16,23 +16,25 @@ else\n \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n \t\t# Name and email: C O Mitter <committer@example.com>\n \t\t# No password given, to enable non-interactive operation.\n-\t\tmkdir ./gpghome\n-\t\tchmod 0700 ./gpghome\n-\t\tGNUPGHOME=\"$(pwd)/gpghome\"\n-\t\texport GNUPGHOME\n-\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n-\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n+\t\tmkdir ./gpghome &&\n+\t\tchmod 0700 ./gpghome &&\n+\t\tGNUPGHOME=\"$(pwd)/gpghome\" &&\n+\t\texport GNUPGHOME &&\n+\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg &&\n+\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import-ownertrust \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust &&\n \t\ttest_set_prereq GPG\n-\t\tif echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>&1\n-\t\tthen\n-\t\t\ttest_set_prereq RFC1991\n-\t\tfi\n \t\t;;\n \tesac\n fi\n \n+if test_have_prereq GPG &&\n+    echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>&1\n+then\n+\ttest_set_prereq RFC1991\n+fi\n+\n sanitize_pgp() {\n \tperl -ne '\n \t\t/^-----END PGP/ and $in_pgp = 0;\n"},{"id":"253655","messageId":"xmqqiohgbob4.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418374214-8241-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH 1/3] create gpg homedir on the fly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-12T20:33:51Z","receivedAt":"2014-12-12T20:33:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"After queuing these three, I _think_ it is better to have something\nlike this patch on top, as it is distracting to let the GPG message\nwhile setting up the test gpghome leak into the test output,\nespecially without running these tests with \"-v\" option.\n\nThe splitting of RFC1991 prerequiste part is about future-proofing.\nWhen we want to define other kinds of specific prerequisites in the\nfuture, I'd prefer to see it done separately from the basic set-up\ncode.\n\nThanks.\n\n t/lib-gpg.sh | 26 ++++++++++++++------------\n 1 file changed, 14 insertions(+), 12 deletions(-)\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex b611b78..33de402 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -16,23 +16,25 @@ else\n \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n \t\t# Name and email: C O Mitter <committer@example.com>\n \t\t# No password given, to enable non-interactive operation.\n-\t\tmkdir ./gpghome\n-\t\tchmod 0700 ./gpghome\n-\t\tGNUPGHOME=\"$(pwd)/gpghome\"\n-\t\texport GNUPGHOME\n-\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n-\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n-\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n+\t\tmkdir ./gpghome &&\n+\t\tchmod 0700 ./gpghome &&\n+\t\tGNUPGHOME=\"$(pwd)/gpghome\" &&\n+\t\texport GNUPGHOME &&\n+\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg &&\n+\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import-ownertrust \\\n+\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust &&\n \t\ttest_set_prereq GPG\n-\t\tif echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>&1\n-\t\tthen\n-\t\t\ttest_set_prereq RFC1991\n-\t\tfi\n \t\t;;\n \tesac\n fi\n \n+if test_have_prereq GPG &&\n+    echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>&1\n+then\n+\ttest_set_prereq RFC1991\n+fi\n+\n sanitize_pgp() {\n \tperl -ne '\n \t\t/^-----END PGP/ and $in_pgp = 0;\n"},{"id":"253656","messageId":"1418416939-22171-1-git-send-email-mail@eworm.de","threadId":"38166","inReplyTo":"xmqq1to4d8bh.fsf@gitster.dls.corp.google.com","subject":"[PATCH 3/3] replace binary keyrings with armored keys","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T20:42:19Z","receivedAt":"2014-12-12T20:42:19Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"Importing PGP key public and security ring works, but this is supposed\nfor runtime. As name suggests we prefer exported format for import.\n\nThe extra benefit is that we do not have all secret keys in one binary\nblob and all public keys in another. Instead public and secret keys for\none key pair are bundled.\n\nBy using armored format (which is plain ASCII) we can just concatenate\nthe key pairs in one file. (First block is 0xCDDE430D, second block is\n0xB7227189.) The individual key pairs can be added and/or removed with\nsimple text editor. Last but not least git and patch can handle this a\nlot better.\n\nSigned-off-by: Christian Hesse <mail@eworm.de>\n---\n t/lib-gpg.sh          |   3 +-\n t/lib-gpg/keyring.gpg |  88 ++++++++++++++++++++++++++++++++++++++++++++++++++\n t/lib-gpg/pubring.gpg | Bin 2359 -> 0 bytes\n t/lib-gpg/secring.gpg | Bin 3734 -> 0 bytes\n 4 files changed, 89 insertions(+), 2 deletions(-)\n create mode 100644 t/lib-gpg/keyring.gpg\n delete mode 100644 t/lib-gpg/pubring.gpg\n delete mode 100644 t/lib-gpg/secring.gpg\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex b0138ad..03c2dd3 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -21,8 +21,7 @@ else\n                GNUPGHOME=\"$(pwd)/gpghome\"\n                export GNUPGHOME\n                gpg --homedir \"${GNUPGHOME}\" --import \\\n-                       \"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n-                       \"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n+                       \"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n                gpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n                        \"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n                test_set_prereq GPG\ndiff --git a/t/lib-gpg/keyring.gpg b/t/lib-gpg/keyring.gpg\nnew file mode 100644\nindex 0000000..fb1f048\n--- /dev/null\n+++ b/t/lib-gpg/keyring.gpg\n@@ -0,0 +1,88 @@\n+-----BEGIN PGP PRIVATE KEY BLOCK-----\n+Version: GnuPG v1\n+\n+lQG7BEZnyykRBACzCPjIpTYNL7Y2tQqlEGTTDlvZcWNLjF5f7ZzuyOqNOidLUgFD\n+36qch1LZLSZkShdR3Gae+bsolyjxrlFuFP0eXRPMtqK20aLw7WZvPFpEV1ThMne+\n+PRJjYrvghWw3L0VVIAIZ8GXwrVBuU99uEjHEI0ojYloOvFc2jVPgSaoBvwCg48Tj\n+fol2foSoJa7XUu9yAL8szg8D/RUsTzNF+I9hSRHl7MYKFMYoKEY9BDgrgAujp7YY\n+8qdGsiUb0Ggyzp2kRjZFt4lpcvKhGfHn5GEjmtk+fRbD5qPfMqKFW+T0NPfYlYmL\n+JJ4fs4qZ8Lx7x6iG6X51u+YNwsQuIGjMCC3CeNi3F7or651kkNYASbaQ1NROkCIN\n+NudyA/0aasvoZUoNJAc2cP5Ifs6WhXMWLfMR2p2XbfKwKNYneec60usnSComcKqh\n+sJVk0Gytvr3FOYVhRkXnKAbx+0W2urFP8OFVBTEKO6Ts2VygWGgneQYoHnqzwlUE\n+yjOjlr+lyf7u2s/KAxpKA6jnttEdRZAmzWkhuox1wwAUkr27/QAAn3TEzKR1pxxR\n++R3dHuFpnnfatMIDC5O0IkMgTyBNaXR0ZXIgPGNvbW1pdHRlckBleGFtcGxlLmNv\n+bT6IXgQTEQIAHgUCRmfLKQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRATtvUe\n+zd5DDXQdAKC92f+wOrTkbmPEf+u+qA/Gv6BxQwCfQ128JXCi3MpMB8tI2Kmo15tY\n+gnmdAj0ERmfLThAIAM65eT9T6+gg0fJn+Qxhs3FFDPjxK6AOBS3SieWWmXO6stZZ\n+plvb7r2+sXYp8HMHntnOX3TRPolIx1dsdkv3W3w8yUzf9Lmo2XMPsZ3/isWdEbOI\n+A0rO3B1xwbQO7vEoWHeB7uyYIF6YsIH0pMqxkImciwB1tnJPB9OxqPHlD/HyyHr2\n+voj6nmEGaPQWj8/dkfyenXm6XmNZUZL/slk6tRhNwv4cW3QQLh39nbiz9rqvZMKF\n+XX8wkY4FdQkJjCGwqzG+7yJcyHvem29/iq//jRLZgdiN8BwV3MCTJyDp8/Wb/d9y\n+jZcUm1RdtwRiwfhfQ+zmpyspm7OxINfH65rf7f8ABA0IALRiMRs/eOD59jrYXmPS\n+ZQUbiALlbJJtuP2c9N3WZ5OgrhDiAW+SDIN+hgDynJ9b7C2dE3xNaud4zaXAAF44\n+J4J0bAo2ZtZoJajw+GXwaZfh4Z7nPNHwEcbFD4/uXPCj9jPkcLOJqGmUY1aXdygo\n+t3Hn5U/zo8JxPQ83YbJQhkzAOZ/HGowLNqKgGkLLHn1X9qay0CxlfTQeEN5RZyl3\n+b4qRzGgGALFvoheyZIUw1TbjRpbn3kqlJooEQY02VwXFXfLI/LwzglilH6sSckvs\n+0WHKLZ+0L6b3CgJHN2RsZ7QxwCBi1aemsvr65FeEXp/AYxaG5duUbsugG8PgoJ06\n+bsEAAVQNQO3cXWpuiJ/nNLLnWuPunBKJUlurkBdf2GD+m+muF0VpwDchhqqbTO4e\n+FqOISQQYEQIACQUCRmfLTgIbDAAKCRATtvUezd5DDcHsAKDQcoAtDWJFupVRqleB\n+Cezx4Q2khACcCs+/LtE8Lb9hC+2cvr3uH5p82AI=\n+=aEiU\n+-----END PGP PRIVATE KEY BLOCK-----\n+-----BEGIN PGP PRIVATE KEY BLOCK-----\n+Version: GnuPG v1\n+\n+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\n+=hieJ\n+-----END PGP PRIVATE KEY BLOCK-----\ndiff --git a/t/lib-gpg/pubring.gpg b/t/lib-gpg/pubring.gpg\ndeleted file mode 100644\nindex 1a3c2d487c2fda9169751a3068fa51e853a1e519..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 2359\n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\nI{Xf<G4artTjQ{`u\n\ndiff --git a/t/lib-gpg/secring.gpg b/t/lib-gpg/secring.gpg\ndeleted file mode 100644\nindex 82dca8f80bf170fde5705862c3eeb9d994725042..0000000000000000000000000000000000000000\nGIT binary patch\nliteral 0\nHcmV?d00001\n\nliteral 3734\n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\nb1#l&j<67Nr^MulyK!({nR7ex2{s`<}t0L{v\n\n-- \n2.2.0\n"},{"id":"253657","messageId":"20141212214558.6b4b778c@leda.localdomain","threadId":"38166","inReplyTo":"xmqqk31wbobc.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH 1/3] create gpg homedir on the fly","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-12T20:45:58Z","receivedAt":"2014-12-12T20:45:58Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"Junio C Hamano <gitster@pobox.com> on Fri, 2014/12/12 12:33:\n> After queuing these three, I _think_ it is better to have something\n> like this patch on top, as it is distracting to let the GPG message\n> while setting up the test gpghome leak into the test output,\n> especially without running these tests with \"-v\" option.\n> \n> The splitting of RFC1991 prerequiste part is about future-proofing.\n> When we want to define other kinds of specific prerequisites in the\n> future, I'd prefer to see it done separately from the basic set-up\n> code.\n\nSounds reasonable and looks good to me. So...\n\nSigned-off-by: Christian Hesse <mail@eworm.de>\n\nThanks!\n\n>  t/lib-gpg.sh | 26 ++++++++++++++------------\n>  1 file changed, 14 insertions(+), 12 deletions(-)\n> \n> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> index b611b78..33de402 100755\n> --- a/t/lib-gpg.sh\n> +++ b/t/lib-gpg.sh\n> @@ -16,23 +16,25 @@ else\n>  \t\t# Type DSA and Elgamal, size 2048 bits, no expiration date.\n>  \t\t# Name and email: C O Mitter <committer@example.com>\n>  \t\t# No password given, to enable non-interactive operation.\n> -\t\tmkdir ./gpghome\n> -\t\tchmod 0700 ./gpghome\n> -\t\tGNUPGHOME=\"$(pwd)/gpghome\"\n> -\t\texport GNUPGHOME\n> -\t\tgpg --homedir \"${GNUPGHOME}\" --import \\\n> -\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n> -\t\tgpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n> -\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n> +\t\tmkdir ./gpghome &&\n> +\t\tchmod 0700 ./gpghome &&\n> +\t\tGNUPGHOME=\"$(pwd)/gpghome\" &&\n> +\t\texport GNUPGHOME &&\n> +\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg &&\n> +\t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null\n> --import-ownertrust \\\n> +\t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust &&\n>  \t\ttest_set_prereq GPG\n> -\t\tif echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991\n> >/dev/null 2>&1\n> -\t\tthen\n> -\t\t\ttest_set_prereq RFC1991\n> -\t\tfi\n>  \t\t;;\n>  \tesac\n>  fi\n>  \n> +if test_have_prereq GPG &&\n> +    echo | gpg --homedir \"${GNUPGHOME}\" -b --rfc1991 >/dev/null 2>&1\n> +then\n> +\ttest_set_prereq RFC1991\n> +fi\n> +\n>  sanitize_pgp() {\n>  \tperl -ne '\n>  \t\t/^-----END PGP/ and $in_pgp = 0;\n-- \nBest regards,\nChris\n"},{"id":"253667","messageId":"xmqq1to4y1uy.fsf@gitster.dls.corp.google.com","threadId":"38166","inReplyTo":"1418416939-22171-1-git-send-email-mail@eworm.de","subject":"Re: [PATCH 3/3] replace binary keyrings with armored keys","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-12T21:50:13Z","receivedAt":"2014-12-12T21:50:13Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Christian Hesse <mail@eworm.de> writes:\n\n> Importing PGP key public and security ring works, but this is supposed\n> for runtime. As name suggests we prefer exported format for import.\n>\n> The extra benefit is that we do not have all secret keys in one binary\n> blob and all public keys in another. Instead public and secret keys for\n> one key pair are bundled.\n>\n> By using armored format (which is plain ASCII) we can just concatenate\n> the key pairs in one file. (First block is 0xCDDE430D, second block is\n> 0xB7227189.) The individual key pairs can be added and/or removed with\n> simple text editor. Last but not least git and patch can handle this a\n> lot better.\n\nActually we can handle binary patch just fine ;-)\n\nWill replace what I queued earlier with this one.  Thanks.\n\n\n>\n> Signed-off-by: Christian Hesse <mail@eworm.de>\n> ---\n>  t/lib-gpg.sh          |   3 +-\n>  t/lib-gpg/keyring.gpg |  88 ++++++++++++++++++++++++++++++++++++++++++++++++++\n>  t/lib-gpg/pubring.gpg | Bin 2359 -> 0 bytes\n>  t/lib-gpg/secring.gpg | Bin 3734 -> 0 bytes\n>  4 files changed, 89 insertions(+), 2 deletions(-)\n>  create mode 100644 t/lib-gpg/keyring.gpg\n>  delete mode 100644 t/lib-gpg/pubring.gpg\n>  delete mode 100644 t/lib-gpg/secring.gpg\n>\n> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\n> index b0138ad..03c2dd3 100755\n> --- a/t/lib-gpg.sh\n> +++ b/t/lib-gpg.sh\n> @@ -21,8 +21,7 @@ else\n>                 GNUPGHOME=\"$(pwd)/gpghome\"\n>                 export GNUPGHOME\n>                 gpg --homedir \"${GNUPGHOME}\" --import \\\n> -                       \"$TEST_DIRECTORY\"/lib-gpg/pubring.gpg \\\n> -                       \"$TEST_DIRECTORY\"/lib-gpg/secring.gpg\n> +                       \"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg\n>                 gpg --homedir \"${GNUPGHOME}\" --import-ownertrust \\\n>                         \"$TEST_DIRECTORY\"/lib-gpg/ownertrust\n>                 test_set_prereq GPG\n> diff --git a/t/lib-gpg/keyring.gpg b/t/lib-gpg/keyring.gpg\n> new file mode 100644\n> index 0000000..fb1f048\n> --- /dev/null\n> +++ b/t/lib-gpg/keyring.gpg\n> @@ -0,0 +1,88 @@\n> +-----BEGIN PGP PRIVATE KEY BLOCK-----\n> +Version: GnuPG v1\n> +\n> +lQG7BEZnyykRBACzCPjIpTYNL7Y2tQqlEGTTDlvZcWNLjF5f7ZzuyOqNOidLUgFD\n> +36qch1LZLSZkShdR3Gae+bsolyjxrlFuFP0eXRPMtqK20aLw7WZvPFpEV1ThMne+\n> +PRJjYrvghWw3L0VVIAIZ8GXwrVBuU99uEjHEI0ojYloOvFc2jVPgSaoBvwCg48Tj\n> +fol2foSoJa7XUu9yAL8szg8D/RUsTzNF+I9hSRHl7MYKFMYoKEY9BDgrgAujp7YY\n> +8qdGsiUb0Ggyzp2kRjZFt4lpcvKhGfHn5GEjmtk+fRbD5qPfMqKFW+T0NPfYlYmL\n> +JJ4fs4qZ8Lx7x6iG6X51u+YNwsQuIGjMCC3CeNi3F7or651kkNYASbaQ1NROkCIN\n> +NudyA/0aasvoZUoNJAc2cP5Ifs6WhXMWLfMR2p2XbfKwKNYneec60usnSComcKqh\n> +sJVk0Gytvr3FOYVhRkXnKAbx+0W2urFP8OFVBTEKO6Ts2VygWGgneQYoHnqzwlUE\n> +yjOjlr+lyf7u2s/KAxpKA6jnttEdRZAmzWkhuox1wwAUkr27/QAAn3TEzKR1pxxR\n> ++R3dHuFpnnfatMIDC5O0IkMgTyBNaXR0ZXIgPGNvbW1pdHRlckBleGFtcGxlLmNv\n> +bT6IXgQTEQIAHgUCRmfLKQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRATtvUe\n> +zd5DDXQdAKC92f+wOrTkbmPEf+u+qA/Gv6BxQwCfQ128JXCi3MpMB8tI2Kmo15tY\n> +gnmdAj0ERmfLThAIAM65eT9T6+gg0fJn+Qxhs3FFDPjxK6AOBS3SieWWmXO6stZZ\n> +plvb7r2+sXYp8HMHntnOX3TRPolIx1dsdkv3W3w8yUzf9Lmo2XMPsZ3/isWdEbOI\n> +A0rO3B1xwbQO7vEoWHeB7uyYIF6YsIH0pMqxkImciwB1tnJPB9OxqPHlD/HyyHr2\n> +voj6nmEGaPQWj8/dkfyenXm6XmNZUZL/slk6tRhNwv4cW3QQLh39nbiz9rqvZMKF\n> +XX8wkY4FdQkJjCGwqzG+7yJcyHvem29/iq//jRLZgdiN8BwV3MCTJyDp8/Wb/d9y\n> +jZcUm1RdtwRiwfhfQ+zmpyspm7OxINfH65rf7f8ABA0IALRiMRs/eOD59jrYXmPS\n> +ZQUbiALlbJJtuP2c9N3WZ5OgrhDiAW+SDIN+hgDynJ9b7C2dE3xNaud4zaXAAF44\n> +J4J0bAo2ZtZoJajw+GXwaZfh4Z7nPNHwEcbFD4/uXPCj9jPkcLOJqGmUY1aXdygo\n> +t3Hn5U/zo8JxPQ83YbJQhkzAOZ/HGowLNqKgGkLLHn1X9qay0CxlfTQeEN5RZyl3\n> +b4qRzGgGALFvoheyZIUw1TbjRpbn3kqlJooEQY02VwXFXfLI/LwzglilH6sSckvs\n> +0WHKLZ+0L6b3CgJHN2RsZ7QxwCBi1aemsvr65FeEXp/AYxaG5duUbsugG8PgoJ06\n> +bsEAAVQNQO3cXWpuiJ/nNLLnWuPunBKJUlurkBdf2GD+m+muF0VpwDchhqqbTO4e\n> +FqOISQQYEQIACQUCRmfLTgIbDAAKCRATtvUezd5DDcHsAKDQcoAtDWJFupVRqleB\n> +Cezx4Q2khACcCs+/LtE8Lb9hC+2cvr3uH5p82AI=\n> +=aEiU\n> +-----END PGP PRIVATE KEY BLOCK-----\n> +-----BEGIN PGP PRIVATE KEY BLOCK-----\n> +Version: GnuPG v1\n> +\n> +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\n> +=hieJ\n> +-----END PGP PRIVATE KEY BLOCK-----\n> diff --git a/t/lib-gpg/pubring.gpg b/t/lib-gpg/pubring.gpg\n> deleted file mode 100644\n> index 1a3c2d487c2fda9169751a3068fa51e853a1e519..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 2359\n> zcmYk+dpy(oAHebNE||IBWzo{b+(V5FmD>sBRzgB-b2$ggOmwlLCX+jdlu4Ugy0}c6\n> zOCb?b<WA)lvmBSUNy+t8=kfcU^WXdN`SbmGzTUYYI@C6>Q&R>CFkvh0MQ90q7WxUi\n> zNE+8C=`|9Lbx88@UC3K(|0~&4!@(6~HC~o?!*xV=FV0@c<wHRJ_j*(givQRpOnyVn\n> zTkbWB&g!A_76J%nr>)&jP8vovn9E}Q>nA87#`-pHNboiup7+Q(?8JDOtU=2z`(6I0\n> zC7-&ZlTS?8m4O<8f~l4%GW9(9dg-3WL$05RK%-8V6l6m|$H~ZMCDqSPhBN;XF8>mR\n> zvNeaAXkQg$l(3WqCAL+25O0GFyJ&^BXd5;)m?*fnjnAF-+jV=yB1ZAW3}f7oPVt)l\n> zvj5xgpVXVX^LH>4b9qlMwUx%tk|XP9B$`|FkU_6uy3NtUY^6HwIT|i)5U^vV_4hlb\n> zsY{@_M97B9@139U_7b~A(C0RflDo1g5sJD?GVf?Pp@It3pvDERY44oIQLVk_%I;PC\n> ziF+IJsNq@bL5iQP4HqTMU$bG=RXXt|-GmI_n8NvyGX)+&8W)67Y8RQ!ZqQdojO@mu\n> zj?Kk)-LD`j_K;F8t4Gx)ZSR}lopni(F97+BXZ0J^>Q+c6<ndq<2~R|tVF{t3zsAG(\n> zXur^NA$YwXFBS<tP&pYepe6+V`JG?{L|9A|CISIN6u=OOA{Yc#1A&#U0&r1jIo7h;\n> zn=va1k}7c5ZkFm<TjKJ`((uoT)i(3GS%U37prG+X_RD5(0@H?;pYj>|F&2f+I$Hq-\n> zAhlqLpI98FVL(^yg+nLiJ|TMqf#1dbnBg|!D}3z&Ng>@{DknQPqONMtv)JqX;<JXz\n> z^P0Q}k^GS^Us8_+^=O-W$a#lvUYE@}j*Wk*EggxFs-$ftw$fyn2@w0P531qMt0fot\n> zD37Sv#ra!EpIa5NUkYDUrcv{50+B4DlSp4>DW4<77qnme+K{lC?<XAeMKQH|G<`jv\n> zcA?G(>*<oQRpn{=MEQ90=5{ZVw4Uk)t%muvt{m4)@xHPzJw+%|R5WR4#RG$e&+2E|\n> zFOA(HTuCh7N|qgo9Zu$LSNPDBseznbTE4R}PE5{`zjM-?4fTJ%;%hZOQ=+YThgpdn\n> zYMZ+~zOV&AC160czX9S<^u+hCro%qiUc3+@0n7=>2(8)3`!YHhm|5^x`Xh*tA%2Y<\n> z4+!$^dd=(7<Srloog4k8s0r{f(TF33z|jGNL3>JhD|lXT&g5i1*Q|#p^RiVcb@2?3\n> z@zrSh9FtlaoP|A=6NN&t!?_%%B}Q|&xs<VAm2>>Drh|9eRFcHd^a2&jPPG{Kuf<hw\n> zb?`C!)uhK<0yU!uiRrI{gn>!|U8xF3**Acmvd!j>*%$3igdRyoy9>2?3)<J88pU}O\n> z?RX$dbeQk)d!>7~TEF-k9Q>OxE+nwppb6<eP*PmAx;pKC-REu-RxzIQJ}a!V0P$j?\n> zfMy!@Ji!jC{KK5+FLRDyg!q4XJ)Z{(Zg1OCKV@H$<Ld-$mc#AH+sId~0Ge{^r$%w&\n> zvpc!&5m>3TSMa#gN40<Q$^}V4U5;h{27&<{H`fCJU&CEwDK$-3Q6}b89|hy{Nxnm~\n> z{sz(*r)e>D(7;1LTwT&c>EXP(VTMc5AUiLw)RqQW)qA}e+Te#C{z>GnJ%N&DeZBHJ\n> zdaIgE1!DSYVH(UbUx~c*<dbc7DcYoF+0uJ140KL?XIr#<gt|;%ZH48<j9f3rPpI#6\n> zd6omm-DF){EoNsg@Ajnb3<=lios5xpHS^Y=Xc{u}-AdR)#~E5^oOXC7>9(;s{A3NX\n> z%^PK&Qm64ORzAI!o0BN~KJY*)slPU1?1sklrvItP7r!&0Ig+hfxlIQy<;5nqeY6yy\n> zEsdE(5-eb77wg+Tg-6MqVU$0XANbV*G9Um{z1xNu9D%eBj=&O#xL`k|8SbC)|KW$>\n> zNfuO)2~-XQ2GoVXKbQA!`N9e?uqa#%stAVsr+z<CJqlYroa(_4Srg%I${UNht(*B8\n> z6lpm;QDU?Y?Tlkrh+_yH8Q2;<50RP#q2iKS!t#`sH>^?#akA!7nK~-HTW_s$y@O&p\n> zzmJpncwrD8+xb@}W#@-Da`wK$ccoe>azRTwv>s<&HL`4W{@&$kd!q#h&YToxN$HnV\n> z6<sTg#qjCgJ)YB<1ExFhVF02(dc56GjBn9!ekSz+)S~l5Tok;I8RPp9Q_db8Y!D`#\n> zjJJ-i))U!`@fIJo^PfL*q{hIpd{W?_Kef5#zuv(4Lpf?J*SZpobIbR<WS=Q|D^wDV\n> zAmzH8&*krsd{QlNt$8nBdLNUd?+YWQEZ~=4AFg7n%qjN5e%-Wx(cQ;5DYOigc4skI\n> zUG!Aix#*{7jJNot>$y3vHM{#~vNDAoCkLU4H6c?<!QY;X)<L?T^m+B^7MfbbS}73p\n> z4y*3JZC0#OZFSbeh+i{FD=7>(XX0)0$ABCoW<@;y&7xyke&_%>s}bHCcS7~e#xX(P\n> zwa^y|Ew19@Y>=#-Lt~t^EP~zp{p!r@RY?(-vMUV6C5)r?;i>+m2%zjTYB;NF-I&&A\n> zsuE=rG=3r=GnTByhjIfKl+TZT)=F^pk7eWXkHIc;ZS!=eJP&aqv8+c>t+lO#4SUlE\n> zAN1Y$ycBfX1(qqh?t!_yjR&U}pS{oRTmi1<v6|TKVWS&D%wOoJpdC=<ADn(f{ST*K\n> zQU6cPd^ikfoi^CqelWNMJoh<VldY985znD#4iU*QAy|Ph=Rpvvys8*~#nBmWaGPR<\n> zNkwMK@m=5FK{#ZY*dZLnLQ?Yh503`QrQqm-8B(8v?!~Tm*DvUeQTd(bw+=YF5Tz}p\n> z2O_IsZ<{W15^sz`ZOw`%P#BBIjKCiCHIvod7Ea;AZ0Id##z2Y=$6CYcx7>L-|NG`g\n> z+}gGrmQ_chb(%wCUyg<xD4evO_O3B6j#<2g+P$APz-$}LqojOE8Z9UA9-cz)U6xz8\n> z$ypPV*ctHX>7)@tj|=70^YI2<i0ZRho!a_z6l!9cR2!w1BF3!=I)Wt2Il(#*Pcfn?\n> I{Xf<G4artTjQ{`u\n>\n> diff --git a/t/lib-gpg/secring.gpg b/t/lib-gpg/secring.gpg\n> deleted file mode 100644\n> index 82dca8f80bf170fde5705862c3eeb9d994725042..0000000000000000000000000000000000000000\n> GIT binary patch\n> literal 0\n> HcmV?d00001\n>\n> literal 3734\n> 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\n> b1#l&j<67Nr^MulyK!({nR7ex2{s`<}t0L{v\n"},{"id":"253679","messageId":"20141213203021.7bec320e@leda.localdomain","threadId":"38166","inReplyTo":"xmqq1to4y1uy.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH 3/3] replace binary keyrings with armored keys","fromName":"Christian Hesse","fromEmail":"mail@eworm.de","sentAt":"2014-12-13T19:30:21Z","receivedAt":"2014-12-13T19:30:21Z","isPatch":true,"sender":{"key":"mail@eworm.de","avatar":"https://avatars.githubusercontent.com/u/970853?v=4"},"body":"Junio C Hamano <gitster@pobox.com> on Fri, 2014/12/12 13:50:\n> Christian Hesse <mail@eworm.de> writes:\n> > Last but not least git and patch can handle this a\n> > lot better.\n> \n> Actually we can handle binary patch just fine ;-)\n\nAh, that was kind of misleading. :-p\nGenerating a patch with git including binary data and trying to apply with\npatch results in something like \"git binary diffs are not supported\".\n\nAnyway... Thanks for applying!\n-- \nBest regards,\nChris\n"}]}