multisig test helpers and first multisig test

This commit is contained in:
Lance Vick 2020-11-20 02:32:45 -08:00
parent 5a020522b6
commit 9b195eb791
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
16 changed files with 343 additions and 19 deletions

View File

@ -1,16 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEZ1U/vaRrtxq9LgsLjkeh7DWhVR0FAl+3i50ACgkQjkeh7DWh
VR2oPQ//a8DBHeB/2QmVjqVHb7M7a8ukzNtMO9o4QAJ4DG7HHIjAx6NjPYRGD17G
w+7HUxW9RbAdMja8RwMo6EIgHgFusl4lck9X6sRhW+fIP4GOBLjU56+95u+kUisz
gDGM/aAy5xiSDqUXvGyPSgmiVDSyIzY//NhIE2+ekSoNaD12Wd0HZAdTWx5nyQLO
SARVAKx7gDBzbTP8OuGmlnvUJa+BsB4g00/uTjxLyQ1zAI6GQ5qtRZCT9xJNdrCR
/lcMyWx6e6VCGaA4o2/N/7LAGRhEIfOeeEZTRbpTYmcNq+zxQ+PYUMFiML9BN/tN
QoV7SQ+p/zegUZSQkwq3yiQ+d1fhVfcM3pxsqszEFZ2CiU492Nt8i3m2sGVfnVCp
k7F7YVU6Fqwmwr4QwxRltnSgGrKcU5/txY135jfkh3cicJxcrOuByw/7QUhJYxsr
jlLtFF0IsqHcIx8udXdX4lOaWXeSwyVjtfo6rJ1RsGY2LdBtQRyeS/ZaV/XoOUok
8hMgIg6/HcPSPTPo/oZNj1LYIbf4QK1O5OMcSFwGwBrHryKKOh/YuQVW3KZY60cG
xiILBF6PM2enKwisd3uaAmj/mKesd4T6Nj3vBlAwyKbhFYBl0SHpR5jsy3bsSAuy
HP7MQ3nRV3XmMfVMk8o7IlOYAJsk3PbKzU6hf5UB6JqCWzlPzWw=
=Vn53
iQIzBAABCgAdFiEEZ1U/vaRrtxq9LgsLjkeh7DWhVR0FAl+3mzsACgkQjkeh7DWh
VR3wDhAAoCUwef/hA9HkLLUmEhft6UzbGfDU8PlTPc+CI17WeDQnytDMrAy2jMgf
O53c51qVeFNs+17eoEGaTW4cCinzjR21+cXQArfoBPCE4PQLmU0RA5BMOYgNslvZ
XcQlR2BB3fVt1CInfDNAjSuGXOFXrqPdRitpZcZGpMsAgpUBl7jTHWb0OnVgg4fP
KjtmxQV0P2irNNS8tTVrRHsSDEX+JzhVCRtY5gnKLllRAhQCLx5pgBq+Ll9vCWHE
Ddbt0U9HR/HjQBjLYrJTiO41e34bTB2KIy6gnK+buKJxeICed3+/w1o2x2pNCXye
kq/rvEPBAbUOCBIn8uP9CA0MNzqssz498/I36NF8d2k6qnHWGSi7+MBMEbHYN2WR
CQgANhmEmEXGuABEdeHoA6fyoB3bILNk6MuKnv1sOxtnzfbl8VUtMjnZBey1JdR4
kkWZCmMeUql513odcYsrv7kX2kdf4RTWzlbpdc6W1E3scNs2OFPbPItHE9tLZRXH
At+t5MUYtyyX38BuSYSBpPlBfH6f5gEk//o6dDh7xz0ytJ3x0hOE/nlBAehl0hDS
onxRtnKtgImBBCGe2R536trccl8/lc7v6ih7LCikkfT9eX+fy2IrIzaSnRT/H5O6
PrFuXeRXZyhwfG9+K8BGfpYrH1e4Oqq23wL4rUyXIGlSkIuE04A=
=I3xZ
-----END PGP SIGNATURE-----

View File

@ -1,8 +1,18 @@
64263feac7b00952e9ec3b6c1fd11316faa58ff673c6bd085fac9f6f8d8389f6 .gitignore
67377eee89dfc4411665474ac0bee0f9a19ea7e594bcc8606b0bc3ace69f0aa1 .gitlab-ci.yml
41d2be0d611c203c28303f083bfa142fcc1aa9222b80903a8a4b7279f7a27eca Makefile
c38c2540b680a721a741b4613f9a8d443c8ed8952994f10f73fd8183c3288df7 Makefile
464ed12795e3e41eee83713709069fefb07f0676ba237894a9325aafe5c91e31 README.md
bb1a24c30f2a26889195deac4ad98fcf9fd485baa4aa1dd04c12abef8212f6ad sig
655df07f3827e7055d0c6aa21a0a4907957a34a2b8a1e9131225c537e448e2e3 test/Dockerfile
55250be3c8f25dcbe68a73e8de8c8a94d8ceb0354c7f955519373d9c963903dd test/test.bats
c95e072f0917531257c069516fc1bf08fd98e5c5f3958f5353a219cb5b70fd38 test/test_helper.bash
646a6c11ef22d51bd7fadff5ecc806d8d3e7c62151a0dd56bbeb59eca74c671c test/Dockerfile
dd79ef0e6d0738321f916a5c85a60d44152fb1ffcd71572de98cf48e0d0d911c test/keys/user1.pub.asc
c98a656738f188f650fa0107e3478d640c175a3db481a6c3cbc267f75a05b440 test/keys/user1.sec.asc
aad434de4a8d22d3152769f41f4da39229fec686938d46bf4c31cd9f5f267092 test/keys/user2.pub.asc
4d9433f86858c5b3d188d9b28a550a01149032f4411e4ff41cccf2cf5424fae9 test/keys/user2.sec.asc
bd655f201043873280a387f4694d94ec299e4d6b5b2bf0ad7080153ddbd67ce8 test/keys/user3.pub.asc
c0e3df63b1f01a83e17c463af9e37365a5e38ee0289d59cdfee725df202a311b test/keys/user3.sec.asc
4740db645194e0bae7a0dae88afb4a8e7f67cba35b0b31ba8036529aa3592e2a test/keys/user4.pub.asc
d4cbeffdbf7064aaffe94556b5879c88cddf479e3e76518f25c3491482abd789 test/keys/user4.sec.asc
c608e63175a1e9cc3fe2500372769a9e30b808d2e4d4a950796d98dac14775ea test/keys/user5.pub.asc
873f3a1e2da41587f4b5a0dad5d8b704a37144e54931fe3a167ea9648772a5dc test/keys/user5.sec.asc
0e3bc44d39fb4b8eb0947e802b5a3a4db14ae228c116eb6b33b32c4cd6816c6f test/test.bats
418903b58dad935ee3aa1dfcc4c4ac22fd77a838b87a5c2c3fe4e510a164f0a0 test/test_helper.bash

View File

@ -1,3 +1,6 @@
.PHONY: all
all: lint test verify
.PHONY: test
test: test-image
docker run \

View File

@ -1,7 +1,7 @@
FROM debian:buster
RUN apt-get update && \
apt-get install -y --force-yes sudo bats git gnupg openssl shellcheck
apt-get install -y --force-yes sudo bats git gnupg openssl shellcheck psmisc
RUN useradd -m test -G sudo -s /bin/bash
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

19
test/keys/user1.pub.asc Executable file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EX7eUygEEAMbtUkZ54kMIvKzK/lqtaCXBF1NkKnDJ4rMFeu8KBFjCXBGexv3U
MvuG6n6roXxehCLJvXDq1tzKO5bF9LHSXGJjKBnRhDIUlh9iLAzluTtN8Q6bRO3D
1QGhmPjzleQc+lTFR2ngYRtYjCzdg1IjvLIE50+4MPmoLjydwCTXgV+tABEBAAG0
HFVzZXIgT25lIDx1c2VyMUBleGFtcGxlLmNvbT6IzgQTAQoAOBYhBK4IFXIyw18E
MJ+keMXrxKfPVaLQBQJft5TKAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ
EMXrxKfPVaLQpEgD/0zHuXy6+f6qobNX6n2i2DSoVioHq+WtShQ3yWk/FpJvu7mJ
TxrK/1I8ZMOapoAbnd2zUDer/KH9UeXUXLecPab+JCFrRosWOTdLW7cWNeCodUrk
s54iXYiiicBMYuyvUmvQSXCjxVJwF4RSGBT+hOGhr2aiK5PYz9QioknT45rYuI0E
X7eUygEEAKqz9Il8Nz2IK2/Qb2X388k0jfdCQ2vA/k/0IH9blveUBHNvhWrT1HRY
6w3LhPAEnprTxKBSvcamwkJ5SscjgNDRuRknOoKQkzwxCjC+2fUGLnOqlKL6Q+uR
UvAukfBmCiOUsJR6g8XwB+gna8UkZ2iht49dZlohzHWFks4cfhYRABEBAAGItgQY
AQoAIBYhBK4IFXIyw18EMJ+keMXrxKfPVaLQBQJft5TKAhsMAAoJEMXrxKfPVaLQ
bmEEALtx0mf4Jo1qQyEkJMFizi4Cfoph+12B8nk9MkSfz9jma4Z39eGXRt+3OCJX
CR0maGzC6TGDc62jJjzfBZQKiFo10C4eGh5MoCFyQXHy5r8/LOtqNYbpRQdWfyNv
nhMvOZWUCcsbsq0X9CJqFA3naEjZAad04AJrhOn2FUhSY3Lu
=+6qs
-----END PGP PUBLIC KEY BLOCK-----

33
test/keys/user1.sec.asc Executable file
View File

@ -0,0 +1,33 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQHYBF+3lMoBBADG7VJGeeJDCLysyv5arWglwRdTZCpwyeKzBXrvCgRYwlwRnsb9
1DL7hup+q6F8XoQiyb1w6tbcyjuWxfSx0lxiYygZ0YQyFJYfYiwM5bk7TfEOm0Tt
w9UBoZj485XkHPpUxUdp4GEbWIws3YNSI7yyBOdPuDD5qC48ncAk14FfrQARAQAB
AAP8DKJDbK7ugA/kvbupslQbjnRIOTdeG6oyv+hr8ZULCCEV7FePb00EDOX5bCCV
4bp1/WifI7YCfeTJKo75drazv74nxIRuZcWF0SXCktQ6P9a1Ln011dlULrOevgN7
hKzOHwVrOWSRR2RP/56SeYecnXv8hn5PxRzJQ+LiRKPXxEkCANB7L/N4olQdxUuO
kZ5jsjUJlV35MM+huci9hLsbCIdKZNA7CB8+wONPDJ+KGNMZquD6FXqhftwbtF+r
iIn1YwkCAPREptCA/kQltY6k8u8RwLNbnTIkuYuviN7H01r3jMLkBwzKJv/AVPp3
PLbyzkKHIR66mDcOM08toUgE/Jz8jIUB/jBMVMUqj6nErJvhOV6y+pemsI8ha5o3
aaDe6UHW9GT3WQDqW02UZ7IFkYgaucbiEcs3GBidzJFeV6HHA9J/HFOlvrQcVXNl
ciBPbmUgPHVzZXIxQGV4YW1wbGUuY29tPojOBBMBCgA4FiEErggVcjLDXwQwn6R4
xevEp89VotAFAl+3lMoCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQxevE
p89VotCkSAP/TMe5fLr5/qqhs1fqfaLYNKhWKger5a1KFDfJaT8Wkm+7uYlPGsr/
Ujxkw5qmgBud3bNQN6v8of1R5dRct5w9pv4kIWtGixY5N0tbtxY14Kh1SuSzniJd
iKKJwExi7K9Sa9BJcKPFUnAXhFIYFP6E4aGvZqIrk9jP1CKiSdPjmtidAdgEX7eU
ygEEAKqz9Il8Nz2IK2/Qb2X388k0jfdCQ2vA/k/0IH9blveUBHNvhWrT1HRY6w3L
hPAEnprTxKBSvcamwkJ5SscjgNDRuRknOoKQkzwxCjC+2fUGLnOqlKL6Q+uRUvAu
kfBmCiOUsJR6g8XwB+gna8UkZ2iht49dZlohzHWFks4cfhYRABEBAAEAA/sGXRJI
CE2KYY/F+bIXbeqEhQ0oSyv2gcGxQxdtjAFpHhda4szJVleAlVqA34YHiRKNEMkv
FVqOA+QwxHMHULFh99uOZGwuksqLLM56UxjFHU/rrOIMZbnK3yzwBGMXyqtddJQM
+FRML0HC2wT/Xg4mwFZuPcqOZ4v2Gww5CvQLCQIAxEa3LnAQH0lurMWeIpstants
emrhMwCfOVorHMb2h4qk99paiebSKgWqV6qEXjPuvu6sssL2veOHiRZCPKN5KQIA
3qUp4Bs/t4U+tkXlG0/Zts73pfgWEw3ZJnfg68wVcGf71dNTnIWwU4ZmwKsXCdz/
UO7IXmcrX12n7JqBTIuKqQH+K7MIV7idWAw9OX1lf8e9Tc7jgUj3M2hQF41KVS54
8ksRY6ONa85tRDTxb37Pt1qGAkOvviRZNGW3ZUVVSPk7yJoSiLYEGAEKACAWIQSu
CBVyMsNfBDCfpHjF68Snz1Wi0AUCX7eUygIbDAAKCRDF68Snz1Wi0G5hBAC7cdJn
+CaNakMhJCTBYs4uAn6KYftdgfJ5PTJEn8/Y5muGd/Xhl0bftzgiVwkdJmhswukx
g3OtoyY83wWUCohaNdAuHhoeTKAhckFx8ua/PyzrajWG6UUHVn8jb54TLzmVlAnL
G7KtF/QiahQN52hI2QGndOACa4Tp9hVIUmNy7g==
=E0E+
-----END PGP PRIVATE KEY BLOCK-----

19
test/keys/user2.pub.asc Executable file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EX7eU5gEEANtC8OHYTaricmAp/YYczK1RvmNK+IXNWt/VqpX+Ewpoo5tR86Kb
ps6+U2dFV9E//H05eFaX491TKjUA46abwu2NK70wQ35R66oZj+PSr3eDcrx7gBFM
tWZRD1XcW86KxW/sBNJCMcL22Ys2zoTdb4oonBG51JD8zjEvSa45xVylABEBAAG0
HFVzZXIgVHdvIDx1c2VyMkBleGFtcGxlLmNvbT6IzgQTAQoAOBYhBL5NYPbP0iN6
ivl4WDxRyt0zvQ7oBQJft5TmAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ
EDxRyt0zvQ7o3KYD/12EptcPkLg9ADDPMiGmvIB5a6sj/WWWohXiXVv/XJ2Qa6W0
it/xSPsaWF31hnDt1TnWfOEnarVZD/nR1h7O3rAQ+twM7+fEQxfbo6ATYIyPCF8M
EBlCQQcHNzFjliFRCUYfLz1vziOidG6RDmdUIIkDvNQ458ChsCANo/FMRxiouI0E
X7eU5gEEAL/WFaCVm+cSXbjHYG04kx8p2AtNeGC1UHtlJfR4JnqdRa7/FhBEPzJv
aSkKK83Nc4GdTYScy0f0mInlZqoDVUyFYcrzFvO8OvTxo+ntUx3N0kGS/+wYoypm
z6E3AJZHXhHRslELysE8wkYD+24EFzfMRP12HRP+90Ujx4I5yBEzABEBAAGItgQY
AQoAIBYhBL5NYPbP0iN6ivl4WDxRyt0zvQ7oBQJft5TmAhsMAAoJEDxRyt0zvQ7o
0M0D/Rhn7JIy/1zFu6DOEMVKHhzaVwRj5TEyJNPiJ0EMxOXPXF7CmOzz2BqxKM4A
K9Tq834mIUGG+kO0qvdBzv1Cl9cAAhAtbY4lYIlhVGrKhoLrMbJww+OZRG1uE/bg
cewQzEcIOPRakY08v21hFS1zIlyPtUNuK91b1C5XjTnr/kOy
=iH6c
-----END PGP PUBLIC KEY BLOCK-----

33
test/keys/user2.sec.asc Executable file
View File

@ -0,0 +1,33 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQHYBF+3lOYBBADbQvDh2E2q4nJgKf2GHMytUb5jSviFzVrf1aqV/hMKaKObUfOi
m6bOvlNnRVfRP/x9OXhWl+PdUyo1AOOmm8LtjSu9MEN+UeuqGY/j0q93g3K8e4AR
TLVmUQ9V3FvOisVv7ATSQjHC9tmLNs6E3W+KKJwRudSQ/M4xL0muOcVcpQARAQAB
AAP5AbKpgd42b8HUJ+l7VJwJe7gb1NICTary7rPNX975T8XSqoO+cr5o0sYHiE+x
p+Wqc1/MDkOb2J1pwMJSgPpIzqFzHlHeyItXYBw6V4Jb5WQkoQEqPiIVRC47hCAh
hIW3X80FsOQLjoIQ6TbfYTPy8Sm5/P5F3XEuodyrrB8lYMsCAOdlBdGd/0w/knha
1zvwsPEUhRjJ3OrpVO8TbUMgrApFtFwlBVJKHhLSfBCXuF1WmL8H2aqaiSSiejqM
yBY2nm8CAPKToe/fC3GpV6QBejOr/EYwPQnOhO1S3vCjtFDFxtRJf1Wdw3xqhIuK
UpmukE6W/rHjjnAmP9AP8tSwZJdTQCsB/004xjVlmjEYYXz34wYDKsmLTX6dJB1U
GSFXTrI/kM7+j4yY6ewF1JNpnCP8bxradSqd2kDuUkTautLvrhN0JZ6jOrQcVXNl
ciBUd28gPHVzZXIyQGV4YW1wbGUuY29tPojOBBMBCgA4FiEEvk1g9s/SI3qK+XhY
PFHK3TO9DugFAl+3lOYCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQPFHK
3TO9DujcpgP/XYSm1w+QuD0AMM8yIaa8gHlrqyP9ZZaiFeJdW/9cnZBrpbSK3/FI
+xpYXfWGcO3VOdZ84SdqtVkP+dHWHs7esBD63Azv58RDF9ujoBNgjI8IXwwQGUJB
Bwc3MWOWIVEJRh8vPW/OI6J0bpEOZ1QgiQO81DjnwKGwIA2j8UxHGKidAdgEX7eU
5gEEAL/WFaCVm+cSXbjHYG04kx8p2AtNeGC1UHtlJfR4JnqdRa7/FhBEPzJvaSkK
K83Nc4GdTYScy0f0mInlZqoDVUyFYcrzFvO8OvTxo+ntUx3N0kGS/+wYoypmz6E3
AJZHXhHRslELysE8wkYD+24EFzfMRP12HRP+90Ujx4I5yBEzABEBAAEAA/wOUSQN
ESbxAGH/pw81wSanVg0HKIStTWrdXE4QW27RVzwUbhPPkMa/21u963Ubp20q67pi
a5dD3mfYYGDTztFGdiEI157AhuqBhyA7RVXh7GY3VIwb8/cD2Vq7FyzALHiuDGNg
mWjRnde3NGKPRTAeMGGiLnME22qTePz/570KMQIAxZ0wpwMLqRRKrIqiyt7zuOVy
2Scvkq2sUjzMmAaJPMzcRdLCQCDiEARhYdphqQTEMYRFTeC/XkELZoVRqo2vAwIA
+IPix6nGOmzbH1O95UwFk1hL63qCPnw0UbqHLwj90H5EK/2HP7NH+MxDX7TRGWQq
evndt5xKU09LWoKcLHcmEQIA5Q+v/KdmUEObjkooAl5COcLVq+85AAPncH7qMVcT
QAJGw7cB/NhwPGQqd+VHujz59Y3IxagKxUcNp83ffe1F1JooiLYEGAEKACAWIQS+
TWD2z9Ijeor5eFg8UcrdM70O6AUCX7eU5gIbDAAKCRA8UcrdM70O6NDNA/0YZ+yS
Mv9cxbugzhDFSh4c2lcEY+UxMiTT4idBDMTlz1xewpjs89gasSjOACvU6vN+JiFB
hvpDtKr3Qc79QpfXAAIQLW2OJWCJYVRqyoaC6zGycMPjmURtbhP24HHsEMxHCDj0
WpGNPL9tYRUtcyJcj7VDbivdW9QuV4056/5Dsg==
=TM3W
-----END PGP PRIVATE KEY BLOCK-----

19
test/keys/user3.pub.asc Executable file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EX7eVAwEEAPMGB92bT6rxJ25+cHw8TKiKoHSaCZaldm+vJTRG6SrzbXUtUvLe
2i32yySmM1iC3EG0OYQ9nUBbKp/kxwf8ruTEN1M4rTjvjIIGxDGHhmdx8upddoqt
Fr0mURgjKebJG3B3HFJem7eEwbrVM7cEAikrI0IiWEt6aOXjpXqBisuvABEBAAG0
HlVzZXIgVGhyZWUgPHVzZXIzQGV4YW1wbGUuY29tPojOBBMBCgA4FiEEPkWsnhkL
TuMrrp9hozGvtUB2HWkFAl+3lQMCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AA
CgkQozGvtUB2HWlxEgQA04U2DSGNb/YscC26kZgS4TMepqzicgRFSt4qUZmJrAvS
WrkCmUcMRNBq2yj/WFNEjr7esqjinFhDJmP9g05dnKTnfCy2vTeWubLSN3VnFwDC
QwTWP04+zIqK2UK3EoA7fquyagwXMpYxdgr1YIx5Ff2kJsuQGoS1fn7i6/5saGa4
jQRft5UDAQQAx9xj1PDHss6rSCOL9BcU6nfn81nxldUq3O4C+aCo5Zy+mP8VWDIS
8sXGKI5rlUHXaLMKCxYooKUYnXbsa4aJqs2b5hmC4wDqaxRJ3R6Z8n54/EtH2wQk
M0d18QZe2uTxwWS7pjTC+dJ6qpQxkPvHj+Gd8UoE8THr96RG7trQt1sAEQEAAYi2
BBgBCgAgFiEEPkWsnhkLTuMrrp9hozGvtUB2HWkFAl+3lQMCGwwACgkQozGvtUB2
HWn+fQQA3X43i8jrM1HWztchbbCMoaaRDXn+yXCTSPeKzMd+71idXt3t4upD08yR
PYyBuohJPyGOq8wguQESKeIjNwNSejXli/TijYTUFhyiBngIpH69w7Cm/rqXTEnU
VECUUAmUedHHrqRrKclV/MeYLjnRJ2CeJE5Ij1M+8A4qPzzOLDs=
=h20O
-----END PGP PUBLIC KEY BLOCK-----

33
test/keys/user3.sec.asc Executable file
View File

@ -0,0 +1,33 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQHYBF+3lQMBBADzBgfdm0+q8SdufnB8PEyoiqB0mgmWpXZvryU0Rukq8211LVLy
3tot9sskpjNYgtxBtDmEPZ1AWyqf5McH/K7kxDdTOK0474yCBsQxh4ZncfLqXXaK
rRa9JlEYIynmyRtwdxxSXpu3hMG61TO3BAIpKyNCIlhLemjl46V6gYrLrwARAQAB
AAP6Avu1eAJykWohbklODzBcTotZGeVULc29LPTM853VOepAEzqptIKI0hyf9MS3
h6QfmQzh0d5Bwmr8FHdl/BKdgPpJ8eYyMP/5+no8Go1Cf5uxdWyi8LT4Xy5rISQt
6xTkDZdXJ6f7cD1ywxJMaUmaIl6WOVoAqMIbkG0tJCwW7b0CAPh31t1ytGC6AJrF
7XXCqVRmO1x6Z0mrzPXOYvExiHCmtCSbCfdsVnLcen8Es9g7fdxtB3yrEOSOuuz0
X69iAEsCAPpj8MbBN6gge07Z5hTuRAVYJDvlmFvqLI6aE8OxAaXltLgYRkqEHIgc
IuIK3kEe+0RXGphO9KdATWm0BFBMK60CAMWV0VuT9sXz9WPh2yvd/c2qOxYgXryp
DtQjJxtDnQJAtnJGqShOmCaSaNnzTxiyNXL2qpMf/yBJRhbW27bHB5WfkbQeVXNl
ciBUaHJlZSA8dXNlcjNAZXhhbXBsZS5jb20+iM4EEwEKADgWIQQ+RayeGQtO4yuu
n2GjMa+1QHYdaQUCX7eVAwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCj
Ma+1QHYdaXESBADThTYNIY1v9ixwLbqRmBLhMx6mrOJyBEVK3ipRmYmsC9JauQKZ
RwxE0GrbKP9YU0SOvt6yqOKcWEMmY/2DTl2cpOd8LLa9N5a5stI3dWcXAMJDBNY/
Tj7MiorZQrcSgDt+q7JqDBcyljF2CvVgjHkV/aQmy5AahLV+fuLr/mxoZp0B2ARf
t5UDAQQAx9xj1PDHss6rSCOL9BcU6nfn81nxldUq3O4C+aCo5Zy+mP8VWDIS8sXG
KI5rlUHXaLMKCxYooKUYnXbsa4aJqs2b5hmC4wDqaxRJ3R6Z8n54/EtH2wQkM0d1
8QZe2uTxwWS7pjTC+dJ6qpQxkPvHj+Gd8UoE8THr96RG7trQt1sAEQEAAQAD/ieL
RLlyNqD7YUpxthRCqOHHfb5ZkoJJ3iQ+d5o6npBn1hJhjjCYH8WnOhD2NPUgROWz
Xw5YgQtf/yHQ0PBpez1VkOgMp7KMinuQPj6+HIL/au5KWNVgHLONbN2ihxoINs6F
QlGWmzLgMiWiz5DiiBfQiAqFcQNyb7ECghDZSE0xAgDRd2grzCa1Qr55MNjIwdDb
vXYOlAO1szqFlsSbWvvghtzS1mXnqiFU/FmA/O8XU5obs7Bm3MQHJ9zWQSruKrop
AgD0QrSVkaKvVXb4mgOjJovP01v2jiN0Og4OkBWMbKwxq50e6zdmGFzBs/rcVmDR
xu49KYHUk5PRm0TA5G7d/x3jAgDqZChBpv1rM23LXnCK9jbk/jP0SXF9RDzdwzW3
oxfD5HNrnQMXAUwV2DDk9q5gqBtGD1XeSv9QS4yqYjPRDqkZodyItgQYAQoAIBYh
BD5FrJ4ZC07jK66fYaMxr7VAdh1pBQJft5UDAhsMAAoJEKMxr7VAdh1p/n0EAN1+
N4vI6zNR1s7XIW2wjKGmkQ15/slwk0j3iszHfu9YnV7d7eLqQ9PMkT2MgbqIST8h
jqvMILkBEiniIzcDUno15Yv04o2E1BYcogZ4CKR+vcOwpv66l0xJ1FRAlFAJlHnR
x66kaynJVfzHmC450SdgniROSI9TPvAOKj88ziw7
=Lbg/
-----END PGP PRIVATE KEY BLOCK-----

19
test/keys/user4.pub.asc Executable file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EX7eVHAEEALzWp0O7qcJOlJ18bIu/uo2rx9hmsGeXim5Ye3WUdQ3fGQTBCTGi
NNMSmNts5cvgEPDbrP1k0X+URAetchpvS4mbfjD1XebIAA/pocrKukxy0E/h6sCj
hIm528XuDMbi8Jw+MO+B+OvpuIvmJE77WlzL/b378V1C6Kqvg948GzmHABEBAAG0
HVVzZXIgRm91ciA8dXNlcjRAZXhhbXBsZS5jb20+iM4EEwEKADgWIQQ4OUSpCL9e
XRXo7k29PJ3KfDNU6AUCX7eVHAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
CRC9PJ3KfDNU6M2gA/44XL4kQfbPtmVSxDm41Ld5RMtxBqqgkInRcDIUSU/pf+sB
Xq1wkArXWj9RTayCJjYnT+OwTJgfk/LtCdceaP7PKLl0+Jy3bMN69E6utSoiNQ9E
hKLAFACKQTXIiZiH2AxRypLZvUHhZa/JucLcLQMVqNdHVWIyQtyC6m9d0Y06Z7iN
BF+3lRwBBAD+N2X1kbRBWYRtsFOxmvOpQvN4Qq3YkiJpZn4tRtTBx7just5qZ4xF
xfPNZ/5iHImf411UA323L2mXx2it/AJ7HwPwrgHcoDfH1llT1QL3aTHqSSePvN84
2tfWo2TXQolLly1+9/OYzlfnTrfZ2+8q4nkS5hacz/oVGhrRYgYNFQARAQABiLYE
GAEKACAWIQQ4OUSpCL9eXRXo7k29PJ3KfDNU6AUCX7eVHAIbDAAKCRC9PJ3KfDNU
6P7tBACqK+uhUtYaoz7ngdiDnqDEyRcXxPQnIwg/SXhqydCMDHI9HnBJYc3lPUia
3jIR4memh3blFhCWQc6VblJjPEKYab+LML53WI9TA28DU9gG7Z8uYrykm8aP869Q
8ZoOhppmQ0G+/0rccYE0KdxHa6NhCUM3TYsNREmqtlUBOfTETA==
=c9bG
-----END PGP PUBLIC KEY BLOCK-----

33
test/keys/user4.sec.asc Executable file
View File

@ -0,0 +1,33 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQHYBF+3lRwBBAC81qdDu6nCTpSdfGyLv7qNq8fYZrBnl4puWHt1lHUN3xkEwQkx
ojTTEpjbbOXL4BDw26z9ZNF/lEQHrXIab0uJm34w9V3myAAP6aHKyrpMctBP4erA
o4SJudvF7gzG4vCcPjDvgfjr6biL5iRO+1pcy/29+/FdQuiqr4PePBs5hwARAQAB
AAP+O9XQPjgSfE0l7hjk1As2c3mA42L2dnygEoLa69DUnkaYyNbZsO5yyobUBIMm
9UjUVV1mHQx7DW/PdpdQ1mt5hV6TtKz2kPzSyKcAYbTAoJa7eg4ty5Wp62KXXtHy
2vcyowX2ZW7QOmhv50f4xA6gR7zewtbyWJBwfnal3szS7TECAMRkY9AGq7EAC2Bb
vM7t+mihpgx/LEbMTs/eNk7HMxVz4DvxTdknSwG8X/VHoBRNvLN8XFtIpGUn04lI
te8siEUCAPYnWLalY9QcrJE/1Smz8bF4ZhvWth9blfYP/G+kGJKp5qGOXVLZQbof
IwqtDE5HTSoaeNtZgmqyYY1i6MEWtVsB/jadD9DhTpzldmS+fmHjuiyeXg8yoGkI
wxy6qwb6C8S0anD5ZDwzFH6I1h+B6dILzKMEd1399kq1nf9Z/iI/BKunZLQdVXNl
ciBGb3VyIDx1c2VyNEBleGFtcGxlLmNvbT6IzgQTAQoAOBYhBDg5RKkIv15dFeju
Tb08ncp8M1ToBQJft5UcAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEL08
ncp8M1TozaAD/jhcviRB9s+2ZVLEObjUt3lEy3EGqqCQidFwMhRJT+l/6wFerXCQ
CtdaP1FNrIImNidP47BMmB+T8u0J1x5o/s8ouXT4nLdsw3r0Tq61KiI1D0SEosAU
AIpBNciJmIfYDFHKktm9QeFlr8m5wtwtAxWo10dVYjJC3ILqb13RjTpnnQHYBF+3
lRwBBAD+N2X1kbRBWYRtsFOxmvOpQvN4Qq3YkiJpZn4tRtTBx7just5qZ4xFxfPN
Z/5iHImf411UA323L2mXx2it/AJ7HwPwrgHcoDfH1llT1QL3aTHqSSePvN842tfW
o2TXQolLly1+9/OYzlfnTrfZ2+8q4nkS5hacz/oVGhrRYgYNFQARAQABAAP+LZZw
pdN9sDRl36e9sn1XkbRsZdYLR+mY2y7ilKr9j0yKGOAhq5IrIP4JJP4vq5dzhKUo
wN6pZjbN6EZ9uqmVJfSgWB79+Qaxcd1CEnNCerA435OrpF5Yx7LJKJGNyQlI9P37
zrTbEOvuK4iGEZ77pqOg+S9W2c6Bx3NwIlYzXQcCAP5qdyABGtwIqDpyvRGRjnjo
oCjaLAX6x40A07OePe0O/Gv7I9Ga0GX6a7psAeohhxQLHgbW/WKi3NVgZY9DVdcC
AP/MnW8oIOi8ZK1cYnpdKgPjqATlIFG92o5fu65dpf+7EBk4M1aqYqOy78kE0XaN
KSR35Llu40hzM1Gv31cKvvMCAKhtn+DU8BHhfHMc/rIjzJdXyMdiM6p9i9Vi20Ho
s7L3ddL4Sp6E0P5EbG/23V0x59/7GZ40I5NJvVDRRBUETIuqaoi2BBgBCgAgFiEE
ODlEqQi/Xl0V6O5NvTydynwzVOgFAl+3lRwCGwwACgkQvTydynwzVOj+7QQAqivr
oVLWGqM+54HYg56gxMkXF8T0JyMIP0l4asnQjAxyPR5wSWHN5T1Imt4yEeJnpod2
5RYQlkHOlW5SYzxCmGm/izC+d1iPUwNvA1PYBu2fLmK8pJvGj/OvUPGaDoaaZkNB
vv9K3HGBNCncR2ujYQlDN02LDURJqrZVATn0xEw=
=eb7E
-----END PGP PRIVATE KEY BLOCK-----

19
test/keys/user5.pub.asc Executable file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EX7eVMwEEALbkQCNVWluL6rsl33a/F1UUvCTGH28AQTV5HAKwgt6VoxsIxlgD
+6Rb5grbNVsG6Ydc1SflxemhI5U1VQ3pvFQOpOuqGVH1V4tZkQMZTTvxQpbcRD4z
Dpon/jx8813WmsvV+/yZFBE357nHkftKXX0gH0JJM6sMtI/VqhwVW2O5ABEBAAG0
HVVzZXIgRml2ZSA8dXNlcjVAZXhhbXBsZS5jb20+iM4EEwEKADgWIQT4OWsR+m4o
sq7I4asmQKng419xlgUCX7eVMwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
CRAmQKng419xlh8oBACMFBtTy6xk2/OrZQlO4uudAcNG+8wFpf1/owpf8kIMyW60
aM3MdOOHQ0GG520KRtnIxI0ynA1w0UVmLfv27KOgiAvs+GG+LQntadtsZFteXI6f
eTy2TcfqE8JXgzDBNDFx49KZqa1hd9Fvc8bcKypolrxlZcp/Gn45ItwHuHkQOLiN
BF+3lTMBBAC7VPAQu9lzcvsyksYMvjsvgCtfO/rie2iAcXOaPsGJq5ehCUujKan/
8GPFLtsO99DOzYF/PIK+McHHzzlP5LetvTPQcWdVIV3EhTY6jRwU4ATK2Z2Gz2ID
OuAqYEqka6EQsryJWaeWjT6Xnlt9wBZE8pzt0MHZFKRC/6nKaTXXiwARAQABiLYE
GAEKACAWIQT4OWsR+m4osq7I4asmQKng419xlgUCX7eVMwIbDAAKCRAmQKng419x
lua6A/wIrnVnD1JR+EjZWWEA5lRoyyogviWfwPhPaq1v5d/2PWsLZtPgV9gJZ597
97MsJ563476obGsvjHqaWB5WtIwJtidQsGllkK5MBZHpOo9Dv+9tBO04YfUKqGdJ
nEDdKkJPT+nA7EhhUOFlUQRQ49Gu7rlKnP+uGYsiwMvJ1/zl/A==
=qaXJ
-----END PGP PUBLIC KEY BLOCK-----

33
test/keys/user5.sec.asc Executable file
View File

@ -0,0 +1,33 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQHYBF+3lTMBBAC25EAjVVpbi+q7Jd92vxdVFLwkxh9vAEE1eRwCsILelaMbCMZY
A/ukW+YK2zVbBumHXNUn5cXpoSOVNVUN6bxUDqTrqhlR9VeLWZEDGU078UKW3EQ+
Mw6aJ/48fPNd1prL1fv8mRQRN+e5x5H7Sl19IB9CSTOrDLSP1aocFVtjuQARAQAB
AAP8CCM3x1qw3onnM9SHkN0HyL1XcbtvAp1cSWjOGkCIUicOTtGhIaFrvPBp1+nR
Ae/YzDEROuk6WR7WWnk5A5l2y6Nparm/bGm8LLBK6sOsvE80if7UxrzRjm/tSQHv
VuiOYFRqSn8JQk6LtUhUZI0hpSdT+pjQj/le+xv8/jbzWEECANXTV/RUHSewPEDP
FuMy0qkUraSfvW3o26BymoB/XAp1PkACC2iEzsE23GijOJuBYPn6Pw2cnQJADK7j
XcQ27gUCANr29s/rSy0efhynqwSh9nSz83TaceGQ6kuFOs/TGVWw42BeeJ+Mrv22
f5svphrTezrDkhZwtWCVIOpd5w6imSUCAKVitI2cGDoG7hyuuaPRDGSDJXaetRGh
TZzRK2QmpdpxC4hTrXNvO3wtiZWjLO3zZIGbrftccjk6nDBssbMYbA6iXLQdVXNl
ciBGaXZlIDx1c2VyNUBleGFtcGxlLmNvbT6IzgQTAQoAOBYhBPg5axH6biiyrsjh
qyZAqeDjX3GWBQJft5UzAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJECZA
qeDjX3GWHygEAIwUG1PLrGTb86tlCU7i650Bw0b7zAWl/X+jCl/yQgzJbrRozcx0
44dDQYbnbQpG2cjEjTKcDXDRRWYt+/bso6CIC+z4Yb4tCe1p22xkW15cjp95PLZN
x+oTwleDMME0MXHj0pmprWF30W9zxtwrKmiWvGVlyn8afjki3Ae4eRA4nQHXBF+3
lTMBBAC7VPAQu9lzcvsyksYMvjsvgCtfO/rie2iAcXOaPsGJq5ehCUujKan/8GPF
LtsO99DOzYF/PIK+McHHzzlP5LetvTPQcWdVIV3EhTY6jRwU4ATK2Z2Gz2IDOuAq
YEqka6EQsryJWaeWjT6Xnlt9wBZE8pzt0MHZFKRC/6nKaTXXiwARAQABAAP2JVHG
gY7qwxUk9e5HhkJfiBcAjPhmAriTGQOBBDl8VPDaRDqV1ut18obxWVb8TP8RmiFW
qwJjCYDgGe4ufLwT2zF4Bk8sEzgXK4fKc1cHdrzwVkqzWyqkpPdMRukMyadJD2G6
k8JUiMZ0zNWHT4mjvHTqDG9mRM9enRmdFo+SwQIA0BpoLYgcewpwBipr4YMbm39E
hsjK0yr7VivcSi0eZ3+xqe+19GKvciz6rgI1P4LyZr6kWSJrB5writL8Fs9oqwIA
5nKqokGvKAEQH96573bSR4UlyxzGsOyvgJn8uh8KA8Nvw5XQ8khzICLNrXGnit09
/A3yYUuVJ/Hi5yYs0ZcMoQH+NQKroF0iPOW0a88Vo6x3KjnItk34COgWl3W5Zgxv
Nx8AfKwFdC5UoT7RgW5Ak8TSlBSLiO3+w4/yY1QWdwG2RJsmiLYEGAEKACAWIQT4
OWsR+m4osq7I4asmQKng419xlgUCX7eVMwIbDAAKCRAmQKng419xlua6A/wIrnVn
D1JR+EjZWWEA5lRoyyogviWfwPhPaq1v5d/2PWsLZtPgV9gJZ59797MsJ563476o
bGsvjHqaWB5WtIwJtidQsGllkK5MBZHpOo9Dv+9tBO04YfUKqGdJnEDdKkJPT+nA
7EhhUOFlUQRQ49Gu7rlKnP+uGYsiwMvJ1/zl/A==
=Sg1j
-----END PGP PRIVATE KEY BLOCK-----

View File

@ -63,3 +63,38 @@ load test_helper
run grep 37d2046a395cbfc .sig/manifest.txt
[ "$status" -eq 0 ]
}
@test "Can verify git repo has signed commits by anyone" {
set_identity "user1"
echo "test string" > somefile
git init
git add .
git commit -m "initial commit"
run sig verify --method git
[ "$status" -eq 0 ]
}
@test "Can verify git repo has signed commits by three different identities" {
git init
set_identity "user1"
echo "test string 1" > somefile1
git add .
git commit -m "user1 commit"
set_identity "user2"
echo "test string 2" > somefile2
git add .
git commit -m "user2 commit"
set_identity "user3"
echo "test string 3" > somefile3
git add .
git commit -m "user3 commit"
run sig verify --method git --threshold 3
[ "$status" -eq 0 ]
}

View File

@ -11,6 +11,9 @@ setup(){
cp /home/test/sig/sig /tmp/bin/sig
export PATH=${bin_dir}:${PATH}
cd "$temp_dir" || return 1
rm -rf ~/.gnupg
rm -rf ~/.gitconfig
killall gpg-agent || :
}
teardown(){
@ -19,7 +22,20 @@ teardown(){
set_identity(){
local -r name="${1?}"
echo "set key to $name"
killall gpg-agent || :
rm -rf ~/.gnupg || :
rm -rf ~/.gitconfig || :
gpg --import ${HOME}/sig/test/keys/*.pub.asc
gpg --import ${HOME}/sig/test/keys/${name}.sec.asc
local -r fingerprint=$( \
gpg --list-keys --with-colons "${name}" 2>&1 \
| awk -F: '$1 == "fpr" {print $10}' \
| head -n1 \
)
git config --global user.email "${name}@example.com"
git config --global user.name "${name}"
git config --global user.signingKey "${fingerprint}"
git config --global commit.gpgSign "true"
git config --global merge.gpgSign "true"
echo "default-key ${fingerprint}" > ~/.gnupg/gpg.conf
}