From 29db8333c52b9395414401e289cc87366d3ee068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Roth?= Date: Sat, 31 Oct 2026 23:23:45 +0100 Subject: [PATCH] recreate test keys with faketime --- pgp/multisig-both.gpg | Bin 1332 -> 1332 bytes pgp/multisig-known-bad.signature | Bin 310 -> 310 bytes pgp/multisig-known-good.signature | Bin 310 -> 310 bytes pgp/multisig-one.gpg | Bin 664 -> 664 bytes pgp/multisig.clearsigned | 31 ++++++++++++++-------------- pgp/multisig.signature | Bin 620 -> 620 bytes pgp/verify_test.go | 33 +++++++++++++++++++----------- 7 files changed, 36 insertions(+), 28 deletions(-) diff --git a/pgp/multisig-both.gpg b/pgp/multisig-both.gpg index dd794b76facf2d4623ea40df60ee2d96f0f59365..1cb44a828110ae00d570cabe44c4a13d3f1f044f 100644 GIT binary patch delta 1155 zcmV-}1bq9n3bYD;nE?$1XLN;t0SEy3_k{ymYWT;kGbCp+0n=zbuV*qxqgu=_IdHe` z%!b1_Ikc0lxuJsNjh}&amobzqU+rQ|fgrD~DNM;#1X!OODAVmP;J0QA2l0zDT^JO; z0kQDG`^V_>-xR0N2OxsCI}JU%5Ngx$Cs7*MTw|1j@+6s8Jdd)zsQ{1q_%*dBU;&i5O921*q=u?$)ehJ7B#v`&gA-Th|fA zIoOjQ(3sE-;C$N23<>Q{&zbUd&yx!QNE)e%2Vvsymsc4t)nSD`hMo8HNrnXiXLN;t zlWhSXe}z7Vo%i%fhGt3#0Lc}<_eb|&Y~=7j8;3aG$@5Xs#+HX;5po3f+|MX^s7=fN z2xM6-`Kv{WBNxNMJ5p_DH>(J5pcLG3-;V zVpXp1$(?og{w*w+(7Uo<{gt)Yc!ulq0SyFabcKKc2mrT6<8(81r)^xnlCRYvT?ytHNv7gfi4kl>$-tY&3&IzVm3~56f3AEH z&=#buvNQX0MClcNJn8tji@6EH4AZz$`F(i7PPZnmf;r3C_K zbcKMEZ2=#D6WIiAwx}hgr0WO(rR;Ys`=ygR%~S7yZ@tMKl{rb@{NyuKQ0rl#-T3}6 zT0-0>iM2v}mDOytwSh9S=C%KiJ<$U}T9vT;LNiWobf}0GfPNLA10HebxD~^Iof7xb zjX1-OHk4P1$!neD@zpz+GHw;*%Tdw353IlY@QBHOFO}xNx#ph~w2EAVV*tbl|>G=w3HS9UlCPa3~z$51nfu%d{dzX}7fHYspN5W4jTF{dizA{UnZ02gG zN_FXYRB3EXf6$qx=P@6Juv~HS(EB`~f;=?XQaoQ&bjY1W5pxHC#!CXig_`V8oQ@;n#P@ja&)ne1||xUTjuqKVuWU#ePK# zk%S*)MYn;||BTkw{s_to#EVy=BLhS9#mY}7UbUQ4);13_)#-uNbVNE{Vspb(#v`)i zs+XETqRUJTO)=fXsKCXclk`G-HIoYgNE$0%9g$aKL9ax{0O2sLD2DA=cU%PmYM3Z@ zlWhSXe=w~mhV58)TsdP0{Sqqr5Tqn(?F&ckrX}z&Q_K`qL7)56G^|w*;e(j$-D1 zABiv$_5?Bhm70ITSeSe;zW$S0U^4jLowoxyMw<{O8k)AzB3X667!sYEvNyxLVy+bW zZ&mvEO-$nSXRs&^yS6fjl}--LC;H%W#7jndHy%52I{Tu>(|pXN5yh*PPj&S-$#I9) ze_tE5w;H8UHl}{HTB6690SyFdm?(Gw2ms3zLRc2r$R&?VV3JOD+p7>0nYIAAx)&EG zf9$k0`d(cyuj)7f?8?7>`7w?mZU9G|PS@gL_eOoa>=(#o<}*{@ z$51*;XoE*XRek#|qA`J2zu>ppdTZ!9Y&mxyMKk#hE#D517zY|~ zqqwU0D|$V_AmNq}rYv++F1L9Mpi&4RU!meW{t;?jvec&lNV@XWomA&HLcBSP_3?fh z*woHZ3nAoi$;dRUOMQ4dJw11&&G%OB5HeTj42C*axu*9CyJ6T3D2_E_qw76|8#aM# zE$nY1RK2H{U1%^57+7^`qs2oWo diff --git a/pgp/multisig-known-bad.signature b/pgp/multisig-known-bad.signature index 113b88731930858a0939aea6ada2fdf270024116..f763c2cddb8e6754c3cbfd130a2c7bc14c858e98 100644 GIT binary patch literal 310 zcmV-60m=S}0W$;u0SW*e79j-ek6{xqE<xLPD4EM_HK)% zx7w5xM_4K4Kc+Q~VJ*ROqupSywjJy8gObB(f8IkBKV_)ktuLLC$zkE2X^TUG+sj~p z+mT(9J86~2wENNxlsrq$7cDaui<)8r40D^7fGVI7J<+B6d{|GR<{#z3;@g|XGkHSK z`XzVyxd;kFf*-_WyGQM?hZ=bpWpME1e@yg8`F+6uC6xoJS-y;fSzuK=4}Gdt-Ubxi}qZB-ofF%TpVt^oW;q z<_zUl5poujgBW3l1vJ-#Jf)G>_Y99eky=829hH&#k|sH#mMtY7&jEULby=2*Oj6>k z+!z{i{T0uy#X5_KIiYrKIuo0ZHXoU*2?reL?)xO92AaH4#@iH?=;{W3Js{|=y^K~@ IfuqM1K=D6~tpET3 diff --git a/pgp/multisig-known-good.signature b/pgp/multisig-known-good.signature index faf7d86e4192db5b8dee99c4e30a13e13bad1aad..e025ea043555847ef39ee6a13f46ee38fd36ccab 100644 GIT binary patch literal 310 zcmV-60m=S}0W$;u0SW*e79j+wiU(oh@RwH^FV$g%K8Bt5^ht&V0&3=Ik^l+`5QRR5 zo%i%fhPJ5)0PBpgti8Evi=`fMjn zSNa)*s@Uz{20|3L6biBBI*Gsju8#(mZBfl-l{)5>)Hlv=yZ?LAS=&F?or^M9J z2<3{#{fr&8g5siqy1$mVfI7VLDGLbWOMekc&CKAEEN@-U3>tuSp@~7|DKJERVuUIQ z-Hu|)`fKE{f#z`BkM4d|sgPOEHQP6{H-FZmUxQlx-v++9Nwc+Ym!3Yy53%@6(>)P- I3rJJgWk;r+cmMzZ literal 310 zcmV-60m=S}0W$;u0SEvc79j*HULBEFV?nP(#sJ|kttf`=Sa)0n0&18l{{RXJ5HPJM zhV58)Tz*Uk|5d!qWpm(_h7BK)SqX}%2_;9ssX2XxK;Tv5yt{C|G>^7x!vqg$a<^L6 z>VUP=6kbvlLtz6ev3wm3ukxNYHt3Fyiz%BeG2{`1L|0F*VB&!^#XR^x+|6tj(6`~C zE72iPgi5y6KhddDu2;xy^7a}Jh(%asGCk3czRKNJcxagt?L$KOYf1L{7q7QclNE(c zi0~Ai_vS3H?>ZpAcCaiI4tK|Ym8>>!SkkCEG5PlzsbKx!)E`|PDX0@%AKLANa&t#i zv>(+ZsHzE7G$wc$DK7kLbAnfJI4ZnSWWu8pD IbM-qgQ0$hC3IG5A diff --git a/pgp/multisig-one.gpg b/pgp/multisig-one.gpg index 6a24c6cc07ecf93ea41f3b641287b270ab36f5d5..c060444538d57725d94c898d690cfcf72c67cfb7 100644 GIT binary patch delta 580 zcmV-K0=xZ~1(*eYnE?$1XLN;t0SEy3_k{ymYWT;kGbCp+0n=zbuV*qxqgu=_IdHe` z%!b1_Ikc0lxuJsNjh}&amobzqU+rQ|fgrD~DNM;#1X!OODAVmP;J0QA2l0zDT^JO; z0kQDG`^V_>-xR0N2OxsCI}JU%5Ngx$Cs7*MTw|1j@+6s8Jdd)zsQ{1q_%*dBU;&i5O921*q=u?$)ehJ7B#v`&gA-Th|fA zIoOjQ(3sE-;C$N23<>Q{&zbUd&yx!QNE)e%2Vvsymsc4t)nSD`hMo8HNrnXiXLN;t zlWhSXe}z7Vo%i%fhGt3#0Lc}<_eb|&Y~=7j8;3aG$@5Xs#+HX;5po3f+|MX^s7=fN z2xM6-`Kv{WBNxNMJ5p_DH>(J5pcLG3-;V zVpXp1$(?og{w*w+(7Uo<{gt)Yc!ulaoQ&bjY1W5pxHC#!CXig_`V8oQ@;n#P@ja&)ne1||xUTjuqKVuWU#ePK# zk%S*)MYn;||BTkw{s_to#EVy=BLhS9#mY}7UbUQ4);13_)#-uNbVNE{Vspb(#v`)i zs+XETqRUJTO)=fXsKCXclk`G-HIoYgNE$0%9g$aKL9ax{0O2sLD2DA=cU%PmYM3Z@ zlWhSXe=w~mhV58)TsdP0{Sqqr5Tqn(?F&ckrX}z&Q_K`qL7)56G^|w*;e(j$-D1 zABiv$_5?Bhm70ITSeSe;zW$S0U^4jLowoxyMw<{O8k)AzB3X667!sYEvNyxLVy+bW zZ&mvEO-$nSXRs&^yS6fjl}--LC;H%W#7jndHy%52I{Tu>(|pXN5yh*PPj&S-$#I9) S4qqF!w;H8UHl}{HTB64uh!NcY diff --git a/pgp/multisig.clearsigned b/pgp/multisig.clearsigned index 94d9531c..f94c9e3d 100644 --- a/pgp/multisig.clearsigned +++ b/pgp/multisig.clearsigned @@ -1,22 +1,21 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 +Hash: SHA512 aptly multi-signature verification fixture - -----BEGIN PGP SIGNATURE----- -iQEzBAEBCAAdFiEEK14dkVdjQa9ExgDhMK0ohu1Yd1wFAmqYKJEACgkQMK0ohu1Y -d1wi/Qf/du6Cfs5Og7jqNG17jUEMNO+ZTYfI60ytrcQ47BgX21zGorRWE6M9L6EJ -YbgYptGRrSHrVIZJXWVVWsdWbTHG4pW5ph2cSeVjOQWGF7JqlqjJOmrbzrQo2FSs -EwQiCloJ7sBRj7bVtf1ovkfFWp00wNO77ZHJK0vBCSf8v43V0BEykL25lvEG5KTG -TO8k+Yh9hDo/0DkPQpp7b5k9IVOgJrnQn9NuW7iD62FeM8WKrhk6EAHDzhDD5jyT -hf3ADA9nEc4i0bPVMwVXMHgW+Wmm6DtJxQYNlZrPzPLG7+1mpZN1OQBG0w/QnLsW -p6o2Nh+xVwO5ko7uSUtTCrt2IGogk4kBMwQBAQgAHRYhBDLwA6IWaB1MyBD6IZi1 -MB6x+hMXBQJqmCiRAAoJEJi1MB6x+hMXZzgH/jHmAjbymQcvZ9HsQCIv7aN07sCr -HtjgUPzaOsibn8NRQiXtVQqqDChaQi2brSqeTG2oNN2+buRNQAXwyEmtC7+6SdH3 -/lnH/7IpdqMRBBtmiAH5ny9DfgenWNWb8F2hAcoc00RugiDFFyVmlBfBXK5/l+KI -DanIKW97TXXMA8J8KAe/asOXaht8oiW85dmAlSlrHRWZxOBTLR3540nMTD0/Cp5n -i+ngQpqIzSykFQ/4scYVT4rc/Iu64yCV75O5fumQDrqMPqXfD+Lms4bFhQYxja8K -uofxwhwHvz5xEGSDve/krZrD8JG7mMINZjjxIr5t83eKXcxhHd7BVUBj4yI= -=ulCF +iQEzBAEBCgAdFiEEqYoHYeLwl1cZL9VhhT6Gnff0SYYFAmrmaZIACgkQhT6Gnff0 +SYYKYAgAujy2QKb0Gjg9YSX16Ff5XCkd/XJSVwSHxVfX5TXN2daby+a3fns78Z9u +gbNF8qB0n6P8Q8xpPvrvnx125yJidutBR77Y1fjBm5Ks6N/x1kWg9lIXwS5eYglA +I7Ctm3vEdD96wyYnHiBOo9sufasrfX1CnCBd1q1MkDrNpaiYmvSMeK+f6Ozs7OK2 +IfYNB5dNsI/LI65bKbgGFiOXoqMlXYFDn9GA734jrk3CvOImks4Q9GEi/qhaPKHe +sU9lZ9KU9Okj9Yy96c7Dk29iGaxhhKTiZ+2UGvyczVRenf2+v5t8/M11CgagApPP +nq8MRgPBKk6BdMgMd0SyZZhPj0VEpokBMwQBAQoAHRYhBOyPYRMwLkNvKOuL0hPZ +BG62qCWlBQJq5mmSAAoJEBPZBG62qCWlgv8H/1CEchjYZDgPWFu7cZE+abBPByTX +VcYU62CQPBpkxJ00pviuKgYRzQX0FCxQxpQOQlHv3ToVzL3a62m1vrTRa3NhT0U8 +DYdRxcW8o/11hnY3VeiPavOvORhwn70FeBYtYw7BipHHxwOElh7Ey5dkzHS+Z2OL +0kCNvltjKEFZM+q4w2yPbSpam7wCS5gYLl0d+99ornPtzDwBOreXFoC1MER3y1hB +H3XbLqggE6gfumfiGR9Hljvh5CT/ebk7RwMWCcrp3/MdXwfpH+6JGg1AvF/TwmEi +XAl8LljwTybylH+8wKAHYX4ed7GvJBOigJth+3o7sh8n7oqL0YJH0JoSjbM= +=ThV5 -----END PGP SIGNATURE----- diff --git a/pgp/multisig.signature b/pgp/multisig.signature index c9ef553f024acf3080a683f75b0ccaa38287ddaa..21f33aad965a02588b44ef31a6714911cf3fcd88 100644 GIT binary patch literal 620 zcmV-y0+aoT0W$;u0SW*e79j+wiU(oh@RwH^FV$g%K8Bt5^ht&V0&3=Ik^l+`5QRR5 zo%i%fhPJ5)0PBpgti8Evi=`fMjn zSNa)*s@Uz{20|3L6biBBI*Gsju8#(mZBfl-l{)5>)Hlv=yZ?LAS=&F?or^M9J z2<3{#{fr&8g5siqy1$mVfI7VLDGLbWOMekc&CKAEEN@-U3>tuSp@~7|DKJERVuUIQ z-Hu|)`fKE{f#z`BkM4d|sgPOEHQP6{H-FZmUxQlx-v++9Nwc+Ym!3Yy53%@6(>)P- z3rJJgWr+bZ1ONdF038+~1niGt6EH4AZz$`F(i7PPZnmf;r3C_N=4p}u3JDMs*#vI3 zs3oOCy9fOiKv5D*0yb9|oh{4HO1EylgM}$ z5*DkkR#t4>%t!u0p>GqCWF!FN1DI=3-EF_tCj^u6m`Zr>n@C*RUXBc2(`Y%lmhFR~ G;rW+>P&Li~ literal 620 zcmV-y0+aoT0W$;u0SEvc79j*HULBEFV?nP(#sJ|kttf`=Sa)0n0&18jkpKz_5HPJM zhV58)T;VMT|6?bHEx0zZsCZmUZ3YLbZKnO`4R_{cld%?O(kK_(Q+W87q85+o65h2V zHq5D!$n|k+ewy&P0HD*0p~bBr3=Jc?s|f z)$fn3nhD6r>a)EbXj{tPvxcyh@iJPy!cmRA)~YwChFRnj{ISYmH8|}8GEFxs0j6{5 z0h#iQCy422XF05)e0`m7wLB7@b2{BE6K~mQP$I~p(dwQ8!@il^i!>p9%zm5!oTWh( zW1>hjRL}f%lt4gSD3W3VI7Z!(_@d=KAr9c7>z~LePZo=$?%xN7r`Sh_wwp!{&7;)W|NXlcuX#*GX0@ zhEceH*u2NVSrL9!i0e&;g%Wi{AhO3b;yobYljwnu*r)q@*5}|cM6jr5IUF~NN9-#C zamY`$N}s0zFV@YuP(HqQ8PzhRj(c|TR;uY4!hILt7rQeawMt)p%aUb' rsa2048 sign 0 -// gpg --batch --pinentry-mode loopback --passphrase '' --quick-generate-key 'Aptly multisign unknown fixture ' rsa2048 sign 0 -// gpg --export 2B5E1D91576341AF44C600E130AD2886ED58775C 32F003A216681D4CC810FA2198B5301EB1FA1317 > multisig-both.gpg -// gpg --export 2B5E1D91576341AF44C600E130AD2886ED58775C > multisig-one.gpg -// gpg --local-user 2B5E1D91576341AF44C600E130AD2886ED58775C --local-user 32F003A216681D4CC810FA2198B5301EB1FA1317 --detach-sign --output multisig.signature multisig.text -// gpg --local-user 2B5E1D91576341AF44C600E130AD2886ED58775C --local-user 32F003A216681D4CC810FA2198B5301EB1FA1317 --clearsign --output multisig.clearsigned multisig.text -// gpg --local-user 2B5E1D91576341AF44C600E130AD2886ED58775C --detach-sign --output multisig-known-good.signature multisig.text -// gpg --local-user 32F003A216681D4CC810FA2198B5301EB1FA1317 --detach-sign --output multisig-known-bad.signature multisig-bad.text +// gpg --batch --pinentry-mode loopback --passphrase '' \ +// --faked-system-time 20250101T000000 \ +// --quick-generate-key 'Aptly multisign known fixture ' rsa2048 sign 0 +// gpg --batch --pinentry-mode loopback --passphrase '' \ +// --faked-system-time 20250101T000000 \ +// --quick-generate-key 'Aptly multisign unknown fixture ' rsa2048 sign 0 +// gpg --export > multisig-both.gpg +// gpg --export > multisig-one.gpg +// gpg --local-user --local-user \ +// --detach-sign --output multisig.signature multisig.text +// gpg --local-user --local-user \ +// --clearsign --output multisig.clearsigned multisig.text +// gpg --local-user --detach-sign --output multisig-known-good.signature multisig.text +// gpg --local-user --detach-sign --output multisig-known-bad.signature multisig-bad.text +// +// Replace and with the actual fingerprints from step 2. // // multisig-bad.text was made by changing multisig.text after signing it. @@ -58,7 +67,7 @@ func (s *VerifierSuite) TestVerifyClearsigned(c *C) { keyInfo, err := s.multisigBothVerifier.VerifyClearsigned(clearsigned, false) c.Assert(err, IsNil) - c.Check(keyInfo.GoodKeys, DeepEquals, []Key{"30AD2886ED58775C", "98B5301EB1FA1317"}) + c.Check(keyInfo.GoodKeys, DeepEquals, []Key{"853E869DF7F44986", "13D9046EB6A825A5"}) c.Check(keyInfo.MissingKeys, DeepEquals, []Key(nil)) } @@ -69,8 +78,8 @@ func (s *VerifierSuite) TestVerifyClearsignedPartialKeyring(c *C) { keyInfo, err := s.multisigOneVerifier.VerifyClearsigned(clearsigned, false) c.Assert(err, IsNil) - c.Check(keyInfo.GoodKeys, DeepEquals, []Key{"30AD2886ED58775C"}) - c.Check(keyInfo.MissingKeys, DeepEquals, []Key{"98B5301EB1FA1317"}) + c.Check(keyInfo.GoodKeys, DeepEquals, []Key{"853E869DF7F44986"}) + c.Check(keyInfo.MissingKeys, DeepEquals, []Key{"13D9046EB6A825A5"}) } func (s *VerifierSuite) TestVerifyDetachedPartialKeyring(c *C) {