monkeysign issueshttps://0xacab.org/monkeysphere/monkeysign/-/issues2023-12-14T19:44:51Zhttps://0xacab.org/monkeysphere/monkeysign/-/issues/64considering monkeysign retirement2023-12-14T19:44:51Zanarcatconsidering monkeysign retirementHi all,
TL;DR: Unless my co-maintainers (@dkg, @lavamind, @micah, @simonft, that's you!) step up here and volunteer to continue maintaining Monkeysign, I plan to retire the Monkeysign project.
Ever since GTK2 was abandoned (#21), I hav...Hi all,
TL;DR: Unless my co-maintainers (@dkg, @lavamind, @micah, @simonft, that's you!) step up here and volunteer to continue maintaining Monkeysign, I plan to retire the Monkeysign project.
Ever since GTK2 was abandoned (#21), I have wondered what to do about Monkeysign. Rewriting the GUI with another toolkit is a big challenge, and there is already another project that does much better on the GUI side ([GNOME Keysign](https://wiki.gnome.org/Apps/Keysign)) that was originally built on top of Monkeysign (but now flies on its own, on top of GPGME).
So in #21, I thought of just removing the GUI from Monkeysign completely. That would leave us with the commandline. But then the state of that code is not much better: it relies on a custom GPG library I wrote on a whim when none would do the job back when Monkeysign started. To have Monkeysign work well in the future, we would need to port Monkeysign to another library, either GPGME or PGPy, probably the former considering the latter is still missing some key functionality. But that would mean there would be very little code from Monkeysign left.
Considering all this, I am not sure what's left of Monkeysign I want to keep. It's really showing its age: Monkeysign was started in 2010 at a time where Python 3 was just a funky acronym and still a bad idea. Python was really different back then: pytest didn't exist so the Monkeysign test suite is heavy and unreliable.
Everytime I pick up Monkeysign, it's a huge pain: the test suite fails because my key expired or some other weird situation. I can't stand looking at `gpg.py` anymore. Fixing this would mean basically rewriting Monkeysign from scratch, and while I might be up for that, I don't have time to do that right now, and I'm not sure it's worth it, as there are viable alternatives that are better maintained (GNOME Keysign for the GUI and [pius](https://www.phildev.net/pius/) or [caff](https://tracker.debian.org/pkg/signing-party) all have more recent releases than Monkeysign).
It was a great ride, and Monkeysign was a great prototype for ideas that have been embraced by other projects like OpenKeychain and GNOME keysign. It popularized the idea of facilitating keysigning with qrcodes and made its point. I think it's time to retire it.
This means, in effect, the following:
1. I will make one last point release for 2.2.x <del>and 2.0.x</del> for stretch <del>and jessie</del>, as there are some critical bugfixes there pending, along with a (minor) security issue (done)
2. propose a 2.2.4 stable update for stretch when it is accepted in unstable (in progress, SRU filed as [#901814](https://bugs.debian.org/901814))
3. once the discussion here resolves (~2 weeks) I will file a release critical bug to kick monkeysign out of Buster. this will allow other DDs to use and maintain Monkeysign if they so wish
4. I might release another 2.3.0 final release to unstable to bundle the stray commits on the 2.x branch
In any case, I am definitely considering stepping down from the project even if someone shows up. If the energy is there, I might be available to review patches and comment on issues, but I've dragged this project for too long and I'm tired of it. I'm also too concerned of the reliability of the GPG library that I can commit to any sort of security promises anymore. It has been very difficult to (basically) reverse-engineer the "proprietary" (as in "custom") protocol GnuPG speaks over its various file descriptors, partly because the documentation is limited and confusing but mostly because it is so unusual. So I will try my best to stay away from implementing stuff on top of GPG in the future and will look towards native interfaces like PGPy. That's not to say OpenPGP itself is not a good idea, but we need a better tools to deal with it as something that is too hard to use is inherently insecure, regardless of its theoretical security properties.
Comments are very welcome, of course.2018-07-02https://0xacab.org/monkeysphere/monkeysign/-/issues/59monkeysign does not open icedove new message window2019-11-09T22:40:28ZMuri Nicanormonkeysign does not open icedove new message windowWhen using the --mua switch, monkeysign does not open an icedove 'new message' window
## Expected behavior
a new message window appearing with the signed key as an attachment
## Actual behavior
no window appeared
when i try to run
`...When using the --mua switch, monkeysign does not open an icedove 'new message' window
## Expected behavior
a new message window appearing with the signed key as an attachment
## Actual behavior
no window appeared
when i try to run
```
xdg-email --utf8 --to foo@bar.com --subject 'foo bar' --body 'hello' --attach somefile
```
it works
## Steps to reproduce
```
monkeysign 4454 A6DA E73D FA29 FA2A ED0A 6503 A747 6C6A 1835 --mua --debug
Initializing UI
copying your gpg.conf in temporary keyring
installing symlinks for sockets from /run/user/1000/gnupg/S.gpg-agent to /tmp/pygpg-3poldj/S.gpg-agent
reset GPG_TTY to /dev/pts/6
looking for key 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 in your keyring
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--export', '4454A6DAE73DFA29FA2AED0A6503A7476C6A1835']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFgM8kQBCAC5miRcaN6Knaf+4LN/UbBCwV/1rrl9dRlp7/nXnoI/vVxWj7Zp
JMdhTdn8+8aZcftPlyYmgdy0t541Gz+GG8+kcHc3e+ePIC0DQ67P8Up5pMuAkYdK
h8Jnmg7BjOE7LMRfRCHYdCw5bXD/jbijc0Kl2LCRQeQK1Lt0xjLBy5hgFQvgb1fs
2sDRNbcfnTMtvGFYyYcxm4JnY+38rzkG+FLvhHdXb66kfn7oazTM4gZ95+3kNMys
zHDyIlVFI/K0azQOVPeZLnAicxY32nflV5GuUUVufg+6T/ZFeuBcwXD6jRWiUbpi
mt90hsT5v7WozSEPCbVTJ6EvflTQtmkwrSuRABEBAAG0GFRlc3ROYW1lIDx0ZXN0
QHRlc3QudGxkPokBPQQTAQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUC
WAzycQUJAA0vLQAKCRBlA6dHbGoYNf9RCACUjOLh89K1XTgTfSQdfXLfCPSFKX6x
H2Eusf1RH5rSMDZxL0ftM9lz9UElOHohgQ6/MqOxwogCTFgjcFfRoSpCelCnGs2T
79fLK5TDz92bW/vJshLcbCxY/bSHZfnSYn/PcWYUIloOWhEya43GDPbO6B83IEF1
eu9ndUKbFvgVqsP+2yaI3YQK0QiQ0QqgUDaBT03ErnddK3w18KIisBGucYJ9QbNS
yaPAPvco9/QQu6zMwkfFn44HKC69bb15hNtFAGjSzGXdFr/FFX7nkbS97t0zDAiw
ad0qRYhTyLJb+7sBccA8m6n5ZDQsnelE9ggqE9IUNe3sZt5EA3jZVTZ+uQENBFgM
8kQBCAC9WqsBuazbYbdsCFKSTnHtGTvx4N1aUt4xMuV9RZaWAPJX7a8unNbHf8L8
WJMD+6deCmN0UbFln/1yj2aIn7zl2rPkfi5cSUZ7dkp91hUfiP4e6+iDxGeo5d0W
mxbzH5bBCRaKAood2w+eA1oXUVYIGsCPTR67JIYeaT4Kwd9b//duM5PqZGnbPq/G
5a81gLDgAdIeu3e4zRrE+pJ7xnIqg/E6MqqkEyZXopVYgI8rnQ4CnUhx2HYqEeJw
GMhHs0BgBU3cmnQWbTPHS2EhoesITQaqVC4PaSalYCmO03QvwHeGFDumtSAuBUQa
wOxlY4a8w2tvRyCj9zDJJW8UQH0VABEBAAGJASUEGAEKAA8CGwwFAlgM8qcFCQAN
L2MACgkQZQOnR2xqGDX7NQgAuOHEdYlaBiS94AeYXg11fLTgfr3WWW9JMZEOJVHu
CtIjYX7bBm8AfWV+5RkLZtrhmBOsLqVBDEjDIsv7DdBEwcmo5sWDavasZfOztrGX
IAOVex54bWZNSW5A1CHbqj3BIDSN3J1Wi5RT4DwX2OCcILbMEV16jEXyS6zl1/iR
n1psCA1orh7J98odJ/qQwWFQ10mQoiOVckMJaAXmQMXWhaCH+/8lQXO3b4OSjLwn
vYX0L6WShxyaLncHqBKYVybZ4Z8qbq8DsFQXxB0bKYeV7bqwG95wwF0pNfCojkaL
kmKRKI/01+/eP8IS2eWP2wv48uFipdXixdpDcfW8Nq5xFg==
=c3Td
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
[GNUPG:] EXPORT_RES 1 0 1
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 0
[GNUPG:] IMPORTED 6503A7476C6A1835 TestName <test@test.tld>
[GNUPG:] IMPORT_OK 1 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 0
skipped: [GNUPG:] IMPORTED 6503A7476C6A1835 TestName <test@test.tld>
FOUND: [GNUPG:] IMPORT_OK 1 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
copying your public key to temporary keyring in /tmp/pygpg-3poldj
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--list-secret-keys']
ret: 0 stdout: sec:u:4096:1:076D7386D16D072E:1358537354:1484642796::u:::scESCA:::D2760001240102010006041562420000::::
fpr:::::::::0A222156C805923BB6A5C26A076D7386D16D072E:
grp:::::::::985F3EF74449BB0AB68D786CE7D093589E256E53:
uid:u::::1450946807::7CBDDE4A2540659EA9E84A0CCDAE12E5EBE0BD37::Muri Nicanor <muri@immerda.ch>:::::::::
ssb:u:4096:1:D337170F9485B35A:1358537354:1484642845:::::e:::D2760001240102010006041562420000:::
fpr:::::::::4DEDFD4C9B97C2100396F3CDD337170F9485B35A:
grp:::::::::E81CB81814D676ABCEA5B19264B5E688CE0DA164:
ssb:u:4096:1:4461E29BA84AE1CC:1456337399:1487873399:::::a:::D2760001240102010006041562420000:::
fpr:::::::::FF71E11C783598859BBCA94D4461E29BA84AE1CC:
grp:::::::::1239444929E4A8F13D88AFEFA641DDDC374EE7F6:
sec:u:2048:1:6503A7476C6A1835:1477243460:1478107505::u:::scESC:::+::::
fpr:::::::::4454A6DAE73DFA29FA2AED0A6503A7476C6A1835:
grp:::::::::0BE754A157FDB977B5F2946C780B4C40EFEE1815:
uid:u::::1477243505::CE5AC3C6682C26B47DEB6599188EF27B1D027DDB::TestName <test@test.tld>:::::::::
ssb:u:2048:1:D0B4CCE60E0FFBB0:1477243460:1478107559:::::e:::+:::
fpr:::::::::1555B29B04E461AC66CEF38DD0B4CCE60E0FFBB0:
grp:::::::::C29D3EC52D61AE3EFBCD7394AA14060AED34F165:
stderr:
found secret key: pub [ultimate] 4096R/D16D072E 1358537354 [expiry: 2017-01-17 09:46:36]
Fingerprint = 0A22 2156 C805 923B B6A5 C26A 076D 7386 D16D 072E
uid 1 [ultimate] Muri Nicanor <muri@immerda.ch>
sub 4096R/A84AE1CC 1456337399 [expiry: 2017-02-23 19:09:59]
sub 4096R/9485B35A 1358537354 [expiry: 2017-01-17 09:47:25]
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--export', '0A222156C805923BB6A5C26A076D7386D16D072E']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFD5oooBEADMfYaXbJf+5a3sJPhdlt/eUo0KSjqlKvveZdsBCbobUHnrAXWZ
LIpY9rY2yoIzLNre2nOPlh2rpD0DsOhTCoTicqRlKFF5/11pBCqVh+4NPs6ab4CH
zt/s3lTSEIrLWKhblvh/Qjn34k+dlkqvfH2NHb3NZ7qHa7Xvhjl3+7PG+6aOw2Ki
e+XGyKfaKX9l0FYU1FMt2AcLXJ6aZAaP6Dkbp/3VDYJeZkssBwA4AvIxnI6WecMb
nVGjuU1sv9pTLsigz1Xpv2t4FlHb4RejIvKdTcpsFVbFcX2RfUiwQXLWzLHT44Ep
1aMI2WWjU0ZgdF+FJm2Jp7uTON2vBnBmy31jxggTjQ0nhu4cyAfdUM+O9t+9soaM
DMsvVhdsGOOujrU+zHBSCFucytleYb18mefsNyBmJD1wDxEqWsCyYDtmA1Eg7UYZ
QTTlRfK0RNq4ScJ+cgHdlyfMhUlnPKdMwjGF73prT5zCAxplYEI0yZAJJcH1ehlT
fOOlJi1G0vXU7uYtByfVpuZNuhU5LOz8coaGDEAh7lcGr1etaF8RTJvliUeH1Qsq
SkrxrDKfSgxB4q6FhtTFTid+BLo0f46uZjQayvjUHunRiPIjnDIp8pJyjcVxHPaf
JJRFgwhOu9Jg1UT43qxPG45Me4MB2Wcp0vUrMY2JVnWQtDIKfMfb3BekNwARAQAB
tB5NdXJpIE5pY2Fub3IgPG11cmlAaW1tZXJkYS5jaD6JAj0EEwEKACcCGwMFCwkI
BwMFFQoJCAsFFgIDAQACHgECF4AFAlZ7sPcFCQeEN2IACgkQB21zhtFtBy7mkBAA
kU6uFirREDd/ZM+zL2g8BXa0Qyo6yp5qNcU2h8rAw4QeQ0fUQQGxwX8FXa0uOnbT
pLUGbo9v81VKSmGl0lhg9vTouLsfWxInD3psHuZRDor0/Th6F7K8zCL6ERB7PrxX
x5mLnTX/dsROdwWx7eOpGWC9D7ZdVUgJf4Wexckacg4IiMRD/+ZzGkvufTMPYAcf
8YDEbTAHGTxMykEYdo8w/5NGnOjXerHjThahfi5B87sCCDxmOVBwNEtEZoaUmt/N
KnAYZBVTw88SQiOXeu9gqwtGS9n6TfId4ATejTtEHr9k5SGt9LOqleqRSHyM/Pz7
vY1dxsJQ3gmaR/9V07Qau+QUPbO05GotWcjOvVKIMoLYhskA6tpT2Kr4wFQGLU1+
9JMXl9nC+rYtqKlhO81tAOjR28NqNd6N0WXzy7srco/+WT5z+/XfNJbvOMQT+sao
qU7/tQpm7EEYMGwgTwPBPr1t3Fyu08J72Q2XhBTIT+KVo1SxuNNd13dBZJHnoOrS
i9waUHU0Wr7bZsRLranplBrNRCfktp3wtfoLlyPm9t5LUBwSCJbp6DYVI0Yppqf2
v4+4m8knw2MlK2oLlw92Md6RBh6pmDqTYRkY7D/ah3QKIt1xK36NOK7mQB5Lwu2E
XwOvQpMWz+IE582wbOJbE/BDZMaMCa/99go8Jpr/L5yJAj0EEwEIACcFAlD5oooC
GwMFCQHhM4AFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQB21zhtFtBy57HQ/9
FzwA288VJaiKtUt8zOSZbkksOowfjKJWtMKdxArQzMBinxDrH0AdJL09bhrRWMdK
Xd1ZbrGFqJizz+rqKeZLASEFwWvw5PLmLMaylrrUjV75qJevFLpZyUPFFeLcGuje
Zg62gPHHzCnM6T+GTnnH6s0IaxxaM8SZpQcSNP/muz3nvnyge2gVng3bEvkLKyCC
GsZuikbixpTR8fxFI4S20S9CkKNTvwpBTSNWbHQEn7me6o0uDwo6be+5Ac5FrG3l
SBJRtV2iKi9hLctoSM6Y5VUUTUZrYR3FOuggJBSD4YMaEuBs+jblJq7IweXROeBr
KUlYikrwpaG1GzJAvNUUpDKyl5Bi94i4XK0NIknlmPethj+6SmzkOoAmTwMW/HZw
PyjorF6l4URfzEFQwStVgfN+KAa2uGkhqoOQfflnf9bS74+7KQcb5oaszFFP0DTj
L4+PuseXEnqzZ3RgSayco4quP60bm/6iXhB2ZfRMkU3upezBm+Qdw5PutebETfCH
e+VBRylphl6U6T3ujVObSbboJNFPdmlyOu8m36HeQuJ5g7d98KGyNj4DepmktZhM
sNTccZy+aSrcm/nVHDsYO5ueK6u2sL09XMc87J1Z3OdqdRUAmJr0yhtKgmXz8/l6
OcDGMRmT2LOzPvG2JIah+dbYXfPIPZlz32O0I2/jZwSJAj0EEwEIACcCGwMFCwkI
BwMFFQoJCAsFFgIDAQACHgECF4AFAlLFWu8FCQPHScMACgkQB21zhtFtBy4lyQ//
bfjTNnRAbURqRBLSG+If5b5/GzDtLy1jRtiziLGgQljpLkAr16oE1QPF+oIa5nVm
SisIHYj5vdDGviXXYzTwwV9jDaZwuC4CKF1TbQVGMrVSw7MQJAZCwEqyBWBuva+s
AqoSBHxYABUhLpoGNT/Aoqy6f2qc5VpbkYEyp6etPEn5A2JHgJkL1XyyJHH6l2MF
1wznEFmsDWACWur5acKRAYermlFp9PJ6sUN53DobzfhYGYdANqJ7Pit10uasfkhr
nMuwYsvMPJNh8wm4gA2mDI/XkjD+3eu6GCKL8O6wwPGO845ypUa5DHWl2XoelMpX
Hk+86JW+UDkWXjYdyjfmlsSOBk4/XbZiyUh5Kx/vmNywMLaVyD26N15DXb0kyqkE
EqqeCjvrbDaaPdFvOY0FT3iv2BekbCsD+NpoB1snaLEsYKWxgIHhDOXm6K6RxJjr
rxER5eAdRea4xAIS860Kc6iMp9xQwJ/xMiAbKM7yZfckVwVOUBK7+ZyvwRP6Y8EC
+Q8GXxQTdH/nUiLVwWH5aJbMcGgJ/kWssFDb4vKku8ktTqWRM/xi6FuLbTaZENyu
CYE/2Sb6Ochu2/Jo6joypY8PbNDQcg55WBn72nHBOT19F5cehSvzyCqOAZMvU4h4
YNtHlcKLCUvn6BQ6YiFcLLYCRC3NMWb52mTHpyFja9KJAj0EEwEIACcCGwMFCwkI
BwMFFQoJCAsFFgIDAQACHgECF4AFAlSXHMcFCQW0uvoACgkQB21zhtFtBy6Jew/+
P2URyIBEv1wv5BTw79R5/ZRXhVUvgpq7Qlfsp3/IXoEExCvKJkrqtXyehxCCh0n+
tn0lO6A275ZJuVz54Q6lTp9N+DkCwvU6PUZgcc44xSmcZSOirJBwMpDzLWdwB/jb
hJTszpn/zG1YRGX6lDb8J0Yy1e2EAsKY0MkZ8QODQ+LoA2sPHYy6xP06YxOrKqL8
9ls8t26ULGXJfBJddiZU0A2UbWg9Nn1zEGUguA1+L8tzMqR5hfvF8hmKovE6ht0G
5+x2M54ylvSMYVMdQ42jNHx+kzwRigGiOK3eUnqgI2+dgnueFtbG7JLCypTQTZR+
R6i76enEZRykr8LaXw7KvfhXQvXws4AnphK9nAjII2W6QmLsDtNeUlxHNokyJiMo
SZme+bbl2j+xnvUdkzRboQG5MRVCfpLjjCIItnZKbLxX2PkF/n/KwEuPrbWkdHLR
tNIX3IF8A54UG7u4QMxFxug+KGvaxbX3aSidroiHCdW5Q2y1QMdxulyVmn1HaL//
EqG7n8nj4Gr7ELU9RQTOvgDkT+m9+oJp8cpztowftzuh3uHF5sAM0KARwGnx5nmo
WGF/CIT3eSxg7V4vQ99hkdKX3TsFg2dsCrmNBBoSJDRXOEmzBAwWc1Ptor3QpiqH
XzYm59cy3sq4d5ZBzVxuVgFqpCSdteoBRar+igOKRl+5Ag0EUPmiigEQAN6j4y0A
v92tyfYFvGzGmCQyTQYkRNYxfnWuegkWXejtWtft/vK18ktfzaRRTd7aOhZpO0Y+
veo/usr5dNL3WwZEgpayatmRSv2Yi6uQ/Tw+PiBbmMlaOcdkT7cESnYM5a7ItZKD
GeUPowycRyFf8MR5/ci476qmA+ru3E14Z/14uk8a2uAc5qlU3FxcVg1pfHw0s4fF
3AGFjyfy8ylXxVrSaQKX/tOqygkqPZuUsGkoH8ryLHe7bB7+bWobp4eyiVsucKaG
p81rT5ANLJuPX0xbvZgdNT5dKkUhv/etNMsj5ShL9+00BQ47rZtHk5u0VJ4/WHjb
BIAcEKJoDYK983x8N20ewmnRO3TPAULBLXxKRXiNM8RfiLYVeRqqihDyIKjgL5xQ
gu82uLL39hGgmOjVugOYj/Wpb9BYtc+LVB790Inwtm3Xo8W1VGM1NmbC7EDBUd/6
ZGxW2QIGUmrWYAD+fciiTb28wRrn+EPJsQxTq6ftgZTTexCekgmDUG3dXdzhxcAO
DQ2ZZKiMUO4IwiCmLsKiR/Zf1g51+8PTvUgKPdf+gLIffBguvxBiTMQADIQIN8Uh
I2+P4LymSrK+DhJVM9dCg0PKlJXa0yNK1dioqwiUlUSSRldVIq6zD4ME+yEHZ27D
FB2iEIMXg/gkou54CBUsjtvXrlgP7FYU9lqpABEBAAGJAiUEGAEKAA8CGwwFAlZ7
sR8FCQeEN5MACgkQB21zhtFtBy5YYQ//TZy35i38wEWAPePGvBuU/JKD+2iHHvtf
RrHiBztCmf6SA2LWzFGd6qMVCG52WmbhSHjIGzRkVUucg8CS+9BynZUJYJqY9H6V
LqigUBani1kuIDNu4dQRS0qX5bnQIYixU6QIws8KvaMANAnJdnpVpoed+pGE/FPn
WPmzEFh8Hd/K1RMUR1p+UO79d/vqeaS5VhQ4TBnZ5JlY8aJfR60S19OOZrOQCgbf
txjhpwqIT52UOUgYS5b9KZ18NbYWxeWITmQdsDQ3blop156JFBfemN0kvRw1O6o7
XgwoiB5ocsHJVrmDQ0mAQR5PVE0STKNGNsMa0c1sv/UGhTrIfrsPiJE6en7+YKQ2
sHkmTXAs1LSNhcP1jOSni9zKuV+CfZYL9F34HwB5ip6zFtt5O8i64Y2kj2jWZ10T
99/YTJFeTf7a3cGuWgjyw1TM9i6ES/o55FLIMAdA29UhM/RyaC4tCjXruSXw0UhO
36K062wzM/dDCEQJP7IWdd+GsJxwDDTTDYHyXYlo7rRh1YixXYtNWe7S7pZxCj5K
dNfpOZ8c2MWopNQn9MxaP4+1qktgLG/K9xz/jfGFrdj+L6+ThU+0KBpX/smI1lTk
G6mmWjBHW9QPVoopfDvivLUwZPUCprXcw2Ps5B+fAGQFxUVhlQmQfwfTIJa6MWDl
y1HWktpe8O+5Ag0EVs3x9wEQALC/5p2FZua+6ykFWn5qSgRVSrzzX+tusOCjYECy
1iU1ye1mL8XpADtFWueUNwFYLtg2GtoFcb0M1KEAIii4BAgbDkkorGIKNLURQeJX
ZoRPxnG2q0XtdmMyBt9u414ybFQLIfzNS6R0q0xO1POw+dC3B6sG5aL0w+oXtz+t
83i58mWT3NcKD5ajmb19A1cOo38gMHWzGB2iu4x+ExVm161NzOWBJNAqHqOP6Gao
0VH+Pfa7bPDkWXz8t/EaF5vI83NGj7fayYi8qGhWl08qlIogIY8fTqEAcZA7Ir5w
4sso1nGIwo6rMdOWhEkwkeSxgiOiPGM1EPV2xQm0h8UdZASGiLTGlFd+8NWd6piA
Gi0Cx03dvgX207TvlRRE9TQeHwlAXOf0zw4nCUDTQrrFHMSHAqQ/wFfQezlrSdZ/
AR3KNB1d/E09oxu7Oo5/LcuH7BeUsFK5sg2BkElN+gaaRUZVnebt9rdd2L2hoF1b
925Hx07y46CJ4fwgiKcnLTZNzqmy7PODAewoCuBisyTD9Zw0UcHrR3DaNsqIm+VV
Uo2LeF68J+3HaEjFQvBWNO/vSLjKLITcvYfwrDQxlyFDLf/25InysHsuz2cu6aLg
nromwMSXq4THmvPgk4Shr7/cR33FpY+RnjIsr6grhz+Z0k8rRvmYDB7n1qDLJfZc
0r7dABEBAAGJAiUEGAEKAA8FAlbN8fcCGyAFCQHhM4AACgkQB21zhtFtBy5lyg/9
EhbyFXZC1z3dgBUIAJxoRTVof1mHtj+qv3f6kkesZL8nS3rnRfQOOBzfL85kgkJy
ZS1tOWkXzW9FWxZv9iUM7ALlBh53ONJzkic+W6q7LamtgUVIBPH6SoU0NBaCb+7K
6A6Ktw5ygknn3HbM0LYOtM8JQZ/fW8J+iN5yusxv1UKcRH/gIAkv6A09wnUQw82v
CTPqz3Nk2erPhE8gKOkPnPUVtoG71aYrxKX2ED8cuBlqbBMBdVoWM7n+5zxrrCG0
OTuhOhOTpfMSFkQj3FzdPGvZkwm3lOT8J0j9ko4JUPcCLc2G+8CliL38iozV4IiT
TjrB7ug/PI4NICoODs5ev8Z08uyaHh9tqVqUYVPZYw5S5evPGSC+EwOcfxNwDIL3
KgfLb6cg23t8cGxGjosZI7fFfaBV/9cbFuY77grP4isQm+u/KADHGc9nLm24Ku6+
pEXeBla0Z3eRALkXDZpI0cSq1BnPmchenGtDTPjwJSwX/nlqkds7Ao9jA7EurpeJ
52IyBj9cSpoZAiKQ7zvqmpIPGishiDs/MAXgV4iLN1c58W/Q4IlzFxgkwMw33rsh
U6aVw0idBweqvljs5I6CPGpVGzIjP3dtlXg1Xp/ev7jsmX6qQPdiLkQRaHH9cAZT
8fBySP40OOLZPXB3//TNNu1qMH8M/w9mWJSilyMR2uw=
=mXyR
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 0A222156C805923BB6A5C26A076D7386D16D072E
[GNUPG:] EXPORT_RES 1 0 1
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 0A222156C805923BB6A5C26A076D7386D16D072E 0
[GNUPG:] IMPORTED 076D7386D16D072E Muri Nicanor <muri@immerda.ch>
[GNUPG:] IMPORT_OK 1 0A222156C805923BB6A5C26A076D7386D16D072E
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 0A222156C805923BB6A5C26A076D7386D16D072E 0
skipped: [GNUPG:] IMPORTED 076D7386D16D072E Muri Nicanor <muri@immerda.ch>
FOUND: [GNUPG:] IMPORT_OK 1 0A222156C805923BB6A5C26A076D7386D16D072E
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
found secret key: pub [ultimate] 2048R/6C6A1835 1477243460 [expiry: 2016-11-02 18:25:05]
Fingerprint = 4454 A6DA E73D FA29 FA2A ED0A 6503 A747 6C6A 1835
uid 1 [ultimate] TestName <test@test.tld>
sub 2048R/0E0FFBB0 1477243460 [expiry: 2016-11-02 18:25:59]
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--export', '4454A6DAE73DFA29FA2AED0A6503A7476C6A1835']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFgM8kQBCAC5miRcaN6Knaf+4LN/UbBCwV/1rrl9dRlp7/nXnoI/vVxWj7Zp
JMdhTdn8+8aZcftPlyYmgdy0t541Gz+GG8+kcHc3e+ePIC0DQ67P8Up5pMuAkYdK
h8Jnmg7BjOE7LMRfRCHYdCw5bXD/jbijc0Kl2LCRQeQK1Lt0xjLBy5hgFQvgb1fs
2sDRNbcfnTMtvGFYyYcxm4JnY+38rzkG+FLvhHdXb66kfn7oazTM4gZ95+3kNMys
zHDyIlVFI/K0azQOVPeZLnAicxY32nflV5GuUUVufg+6T/ZFeuBcwXD6jRWiUbpi
mt90hsT5v7WozSEPCbVTJ6EvflTQtmkwrSuRABEBAAG0GFRlc3ROYW1lIDx0ZXN0
QHRlc3QudGxkPokBPQQTAQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUC
WAzycQUJAA0vLQAKCRBlA6dHbGoYNf9RCACUjOLh89K1XTgTfSQdfXLfCPSFKX6x
H2Eusf1RH5rSMDZxL0ftM9lz9UElOHohgQ6/MqOxwogCTFgjcFfRoSpCelCnGs2T
79fLK5TDz92bW/vJshLcbCxY/bSHZfnSYn/PcWYUIloOWhEya43GDPbO6B83IEF1
eu9ndUKbFvgVqsP+2yaI3YQK0QiQ0QqgUDaBT03ErnddK3w18KIisBGucYJ9QbNS
yaPAPvco9/QQu6zMwkfFn44HKC69bb15hNtFAGjSzGXdFr/FFX7nkbS97t0zDAiw
ad0qRYhTyLJb+7sBccA8m6n5ZDQsnelE9ggqE9IUNe3sZt5EA3jZVTZ+uQENBFgM
8kQBCAC9WqsBuazbYbdsCFKSTnHtGTvx4N1aUt4xMuV9RZaWAPJX7a8unNbHf8L8
WJMD+6deCmN0UbFln/1yj2aIn7zl2rPkfi5cSUZ7dkp91hUfiP4e6+iDxGeo5d0W
mxbzH5bBCRaKAood2w+eA1oXUVYIGsCPTR67JIYeaT4Kwd9b//duM5PqZGnbPq/G
5a81gLDgAdIeu3e4zRrE+pJ7xnIqg/E6MqqkEyZXopVYgI8rnQ4CnUhx2HYqEeJw
GMhHs0BgBU3cmnQWbTPHS2EhoesITQaqVC4PaSalYCmO03QvwHeGFDumtSAuBUQa
wOxlY4a8w2tvRyCj9zDJJW8UQH0VABEBAAGJASUEGAEKAA8CGwwFAlgM8qcFCQAN
L2MACgkQZQOnR2xqGDX7NQgAuOHEdYlaBiS94AeYXg11fLTgfr3WWW9JMZEOJVHu
CtIjYX7bBm8AfWV+5RkLZtrhmBOsLqVBDEjDIsv7DdBEwcmo5sWDavasZfOztrGX
IAOVex54bWZNSW5A1CHbqj3BIDSN3J1Wi5RT4DwX2OCcILbMEV16jEXyS6zl1/iR
n1psCA1orh7J98odJ/qQwWFQ10mQoiOVckMJaAXmQMXWhaCH+/8lQXO3b4OSjLwn
vYX0L6WShxyaLncHqBKYVybZ4Z8qbq8DsFQXxB0bKYeV7bqwG95wwF0pNfCojkaL
kmKRKI/01+/eP8IS2eWP2wv48uFipdXixdpDcfW8Nq5xFg==
=c3Td
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
[GNUPG:] EXPORT_RES 1 0 1
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--import']
ret: 0 stdout: stderr: [GNUPG:] IMPORT_OK 0 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
[GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
FOUND: [GNUPG:] IMPORT_OK 0 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
FOUND: [GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Preparing to sign with this key
pub [ultimate] 2048R/6C6A1835 1477243460 [expiry: 2016-11-02 18:25:05]
Fingerprint = 4454 A6DA E73D FA29 FA2A ED0A 6503 A747 6C6A 1835
uid 1 [ultimate] TestName <test@test.tld>
sub 2048R/0E0FFBB0 1477243460 [expiry: 2016-11-02 18:25:59]
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--list-keys', '4454A6DAE73DFA29FA2AED0A6503A7476C6A1835']
ret: 0 stdout: tru::1:1477244548:0:3:1:5
pub:-:2048:1:6503A7476C6A1835:1477243460:1478107505::-:::scESC:::::::
fpr:::::::::4454A6DAE73DFA29FA2AED0A6503A7476C6A1835:
uid:-::::1477243505::CE5AC3C6682C26B47DEB6599188EF27B1D027DDB::TestName <test@test.tld>:::::::::
sub:-:2048:1:D0B4CCE60E0FFBB0:1477243460:1478107559:::::e::::::
fpr:::::::::1555B29B04E461AC66CEF38DD0B4CCE60E0FFBB0:
stderr: [GNUPG:] KEY_CONSIDERED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 0
found 1 keys matching your request
Signing the following key
pub [unknown] 2048R/6C6A1835 1477243460 [expiry: 2016-11-02 18:25:05]
Fingerprint = 4454 A6DA E73D FA29 FA2A ED0A 6503 A747 6C6A 1835
uid 1 [unknown] TestName <test@test.tld>
sub 2048R/0E0FFBB0 1477243460 [expiry: 2016-11-02 18:25:59]
Sign all identities? [y/N]
Choose the identity to sign (1-1 or full UID, control-c to abort): 1
Really sign key? [y/N] y
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--sign-key', 'TestName <test@test.tld>']
IGNORED: [GNUPG:] KEY_CONSIDERED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 0
IGNORED: [GNUPG:] KEY_CONSIDERED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835 0
IGNORED: [GNUPG:] KEY_CONSIDERED 0A222156C805923BB6A5C26A076D7386D16D072E 0
SKIPPED: [GNUPG:] GET_BOOL sign_uid.okay
WROTE: y
FOUND: [GNUPG:] GOT_IT
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--secret-keyring', '/home/muri/.gnupg/secring.gpg', '--homedir', '/tmp/pygpg-3poldj', '--export', '4454A6DAE73DFA29FA2AED0A6503A7476C6A1835']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
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
Fg==
=SYWG
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 4454A6DAE73DFA29FA2AED0A6503A7476C6A1835
[GNUPG:] EXPORT_RES 1 0 1
running command ['xdg-email', '--utf8', '--to', '%(to)s', '--subject', '%(subject)s', '--body', '%(body)s', '--attach', '%(attach)s']
press enter when when you have finished writing the email
failed sending message to "TestName" <test@test.tld> with xdg-email --utf8 --to '%%(to)s' --subject '%%(subject)s' --body '%%(body)s' --attach '%%(attach)s': xdg-email: file '%(attach)s' does not exist
Exception OSError: OSError(2, 'No such file or directory') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fbc039407a0>> ignored
deleting the temporary keyring /tmp/pygpg-3poldj
```
## Testsuite output
(see #58 )
## Environment details
```
Monkeysign: 2.2.1
Load path: /usr/lib/python2.7/dist-packages/monkeysign
CPython: 2.7.12+ (GCC 6.2.0 20160927 default Sep 1 2016 20:27:38)
Kernel: Linux tekla 4.7.0-1-amd64 #1 SMP Debian 4.7.6-1 (2016-10-07) x86_64
Operating system: debian stretch/sid (Linux)
PID: 12932, CWD: /home/muri
Command: ['/usr/bin/monkeysign', '--version']
GnuPG: 2.1.15
```Monkeysign 2.2.3simonftsimonfthttps://0xacab.org/monkeysphere/monkeysign/-/issues/30recognize my own fingerprint2019-11-09T22:40:28ZJerome Charaouirecognize my own fingerprint*Imported from bugseverywhere, created on 2013-10-20**Imported from bugseverywhere, created on 2013-10-20*Monkeysign 2.2.2https://0xacab.org/monkeysphere/monkeysign/-/issues/25have print/save right-click-menus on the qrcode2019-11-09T22:40:27ZJerome Charaouihave print/save right-click-menus on the qrcode*Imported from bugseverywhere, created on 2013-10-20**Imported from bugseverywhere, created on 2013-10-20*Monkeysign 2.2.2https://0xacab.org/monkeysphere/monkeysign/-/issues/57User settings in config file can cause tests to fail2019-11-09T22:40:27ZsimonftUser settings in config file can cause tests to failWhen running the test suite, settings from `.config/monkeysign.conf` are used. However, settings like `dry-run` can cause the tests to fail, without the reason for the failure being obvious. Monkeysign should either detect this and print...When running the test suite, settings from `.config/monkeysign.conf` are used. However, settings like `dry-run` can cause the tests to fail, without the reason for the failure being obvious. Monkeysign should either detect this and print an error or should override/ignore anything in the config file when running tests.Monkeysign 2.2.2https://0xacab.org/monkeysphere/monkeysign/-/issues/1weblate doesn't pull from here2018-07-08T19:45:11Zanarcatweblate doesn't pull from herei can't seem to change the URL of the git repo Weblate pulls from here:
https://hosted.weblate.org/projects/monkeysphere/monkeysign/
I have sent a message to the support staff at weblate.org in the hope they change it to point to h...i can't seem to change the URL of the git repo Weblate pulls from here:
https://hosted.weblate.org/projects/monkeysphere/monkeysign/
I have sent a message to the support staff at weblate.org in the hope they change it to point to here...
i have setup a webhook here to ping weblate and readthedocs.org to replicate the setup we had previously, and they seem to work: they both respond with a 200 and do their thing. i was able to fix the URL on RTFD.org but not on weblate.Monkeysign 2.1.0anarcatanarcathttps://0xacab.org/monkeysphere/monkeysign/-/issues/2import all bugs everywhere issues here2018-07-08T19:45:11Zanarcatimport all bugs everywhere issues herei see 21 issues in bugs everywhere, which should be imported here somehow:
```
618/5b8:om: use python-versioneer to manage version numbers
618/4a9:om: allow --cert-notation
618/943:om: Switch from qrencode to qrcode
618/d5c:om: expose a...i see 21 issues in bugs everywhere, which should be imported here somehow:
```
618/5b8:om: use python-versioneer to manage version numbers
618/4a9:om: allow --cert-notation
618/943:om: Switch from qrencode to qrcode
618/d5c:om: expose and search keys on local network
618/cc0:om: port to GTK 3
618/3ae:om: gpg-agent should be started if it's not already
618/69f:om: don't use popups
618/294:ow: wizard? add explanations on what will happen
618/92d:ow: reuse tactical tech's security-in-a-box PGP training material
618/fa7:ow: complete keyring management?
618/d73:ow: key generation
618/7bc:ow: windows port
618/69e:ow: recognize my own fingerprint
618/493:ow: encode a "can you keep my picture" in the qrcode
618/3b2:ow: batch mode
618/890:ow: wrap labels dynamically
618/07c:ow: merge the monkeysign and monkeyscan binaries
618/a08:ow: make all options accessible from the GUI
618/a32:ow: have print/save right-click-menus on the qrcode
618/55d:ow: merge the signing prompts
618/6af:ow: merge with python-gnupg
```
@lavamind offered to do this.Monkeysign 2.1.0Jerome CharaouiJerome Charaouihttps://0xacab.org/monkeysphere/monkeysign/-/issues/5Please review monkeysign documentation for Tails, and merge in interesting ch...2018-07-08T19:45:10ZemmapeelPlease review monkeysign documentation for Tails, and merge in interesting changesHello:
We ship monkeysign with Tails and I am preparing a documentation page to sign keys.
It would be great if you can review it. You can see it here by now:
https://git-tails.immerda.ch/emmapeel/tails/tree/wiki/src/doc/advance...Hello:
We ship monkeysign with Tails and I am preparing a documentation page to sign keys.
It would be great if you can review it. You can see it here by now:
https://git-tails.immerda.ch/emmapeel/tails/tree/wiki/src/doc/advanced_topics/monkeysign.mdwn?h=docs/11240-monkeysignMonkeysign 2.1.0https://0xacab.org/monkeysphere/monkeysign/-/issues/14expose and search keys on local network2018-07-08T19:45:10ZJerome Charaouiexpose and search keys on local network*Imported from bugseverywhere, created on 2013-12-07**Imported from bugseverywhere, created on 2013-12-07*https://0xacab.org/monkeysphere/monkeysign/-/issues/28complete keyring management?2018-07-08T19:45:10ZJerome Charaouicomplete keyring management?*Imported from bugseverywhere, created on 2013-10-20**Imported from bugseverywhere, created on 2013-10-20*https://0xacab.org/monkeysphere/monkeysign/-/issues/32monkeysign fails when signing previously signed key2018-07-08T19:45:10Zsimonftmonkeysign fails when signing previously signed keyWhen attempting to sign a previously signed key, monkeysign fails to
sign and does not recover. Stacktrace:
```
Traceback (most recent call last):
File "./msign", line 358, in watch_out_callback
self.msui.sign_key()
File "/home/...When attempting to sign a previously signed key, monkeysign fails to
sign and does not recover. Stacktrace:
```
Traceback (most recent call last):
File "./msign", line 358, in watch_out_callback
self.msui.sign_key()
File "/home/simonft/monkeysign/ui.py", line 279, in sign_key
if not self.tmpkeyring.sign_key(pattern, alluids):
File "/home/simonft/monkeysign/gpg.py", line 415, in sign_key
self.context.seek(proc.stderr, 'GET_BOOL sign_uid.okay')
File "/home/simonft/monkeysign/gpg.py", line 210, in seek
return self.seek_pattern(fd, '^\[GNUPG:\] ' + pattern)
File "/home/simonft/monkeysign/gpg.py", line 203, in seek_pattern
raise GpgProcotolError(self.returncode, "could not find pattern '%s' in input" % pattern)
gpg.GpgProcotolError: [Errno 0] could not find pattern '^\[GNUPG:\] GET_BOOL sign_uid.okay' in input
```
This is because seek is looking for "GET_BOOL sign_uid.okay", however it actully recieves:
```
[GNUPG:] IMPORT_OK 0 C8CFA98704BD1CE2C035C56DB2FAB24D4DC0D21D
[GNUPG:] ALREADY_SIGNED B2FAB24D4DC0D21D
```
It should be modified to see if a key has already been signed, and
show a message if so.
Also `GpgProcotolError` should be `GpgProtocolError`.
*(from redmine: created on 2013-03-16)*Monkeysign 2.1.0Jerome CharaouiJerome Charaouihttps://0xacab.org/monkeysphere/monkeysign/-/issues/34monkeysign hangs when using --local2018-07-08T19:45:10Zdgouletmonkeysign hangs when using --localWith the latest git HEAD (commit: 633e3c7a5bc2a8e03b37d8b0021f64d79eb45b77), using the --local option make monkeysign hangs indefinitely.
With verbose mode activated, after the second question (Really sign key? [y/N]), the PGP key block...With the latest git HEAD (commit: 633e3c7a5bc2a8e03b37d8b0021f64d79eb45b77), using the --local option make monkeysign hangs indefinitely.
With verbose mode activated, after the second question (Really sign key? [y/N]), the PGP key block output is printed then this:
```
[...]
-----END PGP PUBLIC KEY BLOCK-----
stderr:
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--export-options', 'export-minimal', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--import']
ret: 0 stdout: stderr: [GNUPG:] IMPORT_OK 0 <KEYID-REMOVED-FOR-BUG-REPORT>
[GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 0 0 0 0 0
FOUND: [GNUPG:] IMPORT_OK 0 <KEYID-REMOVED-FOR-BUG-REPORT>
FOUND: [GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 0 0 0 0 0
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--export-options', 'export-minimal', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--lsign-key', '<KEYID-REMOVED-FOR-BUG-REPORT>']
SKIPPED: [GNUPG:] GET_BOOL sign_uid.dupe_okay
FOUND: [GNUPG:] GOT_IT
skipped: [GNUPG:] GET_BOOL sign_uid.okay
[hangs...]
```
Stopping the process at this point, here is the python stack trace:
```
^CTraceback (most recent call last):
File "/usr/local/bin/monkeysign", line 41, in <module>
u.main()
File "/usr/local/lib/python2.7/dist-packages/monkeysign/cli.py", line 64, in main
self.sign_key()
File "/usr/local/lib/python2.7/dist-packages/monkeysign/ui.py", line 305, in sign_key
if not self.keyring.sign_key(pattern, alluids, True):
File "/usr/local/lib/python2.7/dist-packages/monkeysign/gpg.py", line 512, in sign_key
self.context.seek(proc.stderr, 'GOOD_PASSPHRASE')
File "/usr/local/lib/python2.7/dist-packages/monkeysign/gpg.py", line 216, in seek
return self.seek_pattern(fd, '^\[GNUPG:\] ' + pattern)
File "/usr/local/lib/python2.7/dist-packages/monkeysign/gpg.py", line 203, in seek_pattern
line = fd.readline()
KeyboardInterrupt
```
There is no CPU used nor nothing... The process seems well blocked.
*(from redmine: created on 2013-08-20)*Jerome CharaouiJerome Charaouihttps://0xacab.org/monkeysphere/monkeysign/-/issues/35monkeyscan crashed while scanning2018-07-08T19:45:10ZGhost Usermonkeyscan crashed while scanningdkg handed me this cool business card with a QR code of his fingerprint and told me to install monkeysign and then run monkeyscan to scan it. I'm running debian sid, and installed monkeysign 1.0. It scanned the QR code fine, downloaded h...dkg handed me this cool business card with a QR code of his fingerprint and told me to install monkeysign and then run monkeyscan to scan it. I'm running debian sid, and installed monkeysign 1.0. It scanned the QR code fine, downloaded his key, and when I was about to sign it it crashed with this error:
micah@spock:~$ monkeyscan
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/monkeysign/gtkui.py", line 381, in watch_out_callback
self.msui.sign_key()
File "/usr/lib/python2.7/dist-packages/monkeysign/ui.py", line 286, in sign_key
if not self.tmpkeyring.sign_key(pattern, alluids):
File "/usr/lib/python2.7/dist-packages/monkeysign/gpg.py", line 461, in sign_key
raise GpgRuntimeError(self.context.returncode, _('unable to open key for editing: %s') % self.context.stderr.decode('utf-8'))
monkeysign.gpg.GpgRuntimeError: [Errno 0] unable to open key for editing:
It didn't end up signing his key.
*(from redmine: created on 2013-09-24)*Jerome CharaouiJerome Charaouihttps://0xacab.org/monkeysphere/monkeysign/-/issues/39monkeyscan: python subprocess OSError: [Errno 2] No such file or directory2018-07-08T19:45:10Zgeorgmonkeyscan: python subprocess OSError: [Errno 2] No such file or directoryI'm getting this when trying to sign a key:
<br><br>
`found 1 keys matching your request
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/monkeysign/gtkui.py", line 539, in decoded
File "build/bdist.linux-x86_64...I'm getting this when trying to sign a key:
<br><br>
`found 1 keys matching your request
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/monkeysign/gtkui.py", line 539, in decoded
File "build/bdist.linux-x86_64/egg/monkeysign/gtkui.py", line 562, in process_scan
File "build/bdist.linux-x86_64/egg/monkeysign/ui.py", line 359, in export_key
File "build/bdist.linux-x86_64/egg/monkeysign/ui.py", line 405, in sendmail
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory`
<br>
* I could provide a full debug log, if this would be helpful and needed. However, as there are some key IDs etc. inside which I don't want to share, to begin with just the above extract.
* I tried to debug this shortly: I'm unsure which file or directory this is about. The tmp keydir inside `/tmp/` gets created and populated correctly.
* If there is anything I can do to debug this further or you need additional information, please let me know.
* `$ monkeyscan --version
2.x`
* `$ git log --oneline | head -n1
8a0bae1 Merge branch 'sidebar_logo' into '2.x'`
* `$ gpg --version | head -n1
gpg (GnuPG) 1.4.18`
* `$ gpg2 --version | head -n1
gpg (GnuPG) 2.1.11`
* `$ dpkg -l | grep "python-qrencode\|python-gtk2\|python-zbar\|python-zbarpygtk" | cut -d " " -f -40
ii python-gtk2 2.24.0-5
ii python-qrencode 1.2-1
ii python-zbar 0.10+doc-10+b1
ii python-zbarpygtk 0.10+doc-10+b1`
* Debian environment with software out of jessie, jessie-backports and stretchhttps://0xacab.org/monkeysphere/monkeysign/-/issues/51test suite hangs on GnuPG 2.12018-07-08T19:45:10Zanarcattest suite hangs on GnuPG 2.1i can also confirm that the test suite completely hangs on GnuPG 2.1, presumably because the brittle little dialog has changed again. it hangs in multiple places, but here's one example:
```
root@angela:/monkeysign# LANG=C.UTF-8 python ...i can also confirm that the test suite completely hangs on GnuPG 2.1, presumably because the brittle little dialog has changed again. it hangs in multiple places, but here's one example:
```
root@angela:/monkeysign# LANG=C.UTF-8 python -m unittest -v tests.test_ui.CliTestDialog.test_sign_one_uid
test_sign_one_uid (tests.test_ui.CliTestDialog)
test if we can sign only one keyid ... command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--homedir', '/tmp/pygpg-jD71MJ', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
[GNUPG:] IMPORTED 792152527B75921E Antoine Beaupré <anarcat@orangeseeds.org>
[GNUPG:] IMPORT_OK 1 8DC901CE64146C048AD50FBB792152527B75921E
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
skipped: [GNUPG:] IMPORTED 792152527B75921E Antoine Beaupré <anarcat@orangeseeds.org>
FOUND: [GNUPG:] IMPORT_OK 1 8DC901CE64146C048AD50FBB792152527B75921E
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--homedir', '/tmp/pygpg-jD71MJ', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
[GNUPG:] IMPORTED 86E4E70A96F47C6A Second Test Key <unittests@monkeysphere.info>
[GNUPG:] IMPORT_OK 1 3F94240C918E63590B04152E86E4E70A96F47C6A
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
skipped: [GNUPG:] IMPORTED 86E4E70A96F47C6A Second Test Key <unittests@monkeysphere.info>
FOUND: [GNUPG:] IMPORT_OK 1 3F94240C918E63590B04152E86E4E70A96F47C6A
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--homedir', '/tmp/pygpg-jD71MJ', '--import']
ret: 0 stdout: stderr: [GNUPG:] IMPORT_OK 0 3F94240C918E63590B04152E86E4E70A96F47C6A
[GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
[GNUPG:] IMPORT_OK 17 3F94240C918E63590B04152E86E4E70A96F47C6A
[GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0
FOUND: [GNUPG:] IMPORT_OK 0 3F94240C918E63590B04152E86E4E70A96F47C6A
skipped: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
skipped: [GNUPG:] IMPORT_OK 17 3F94240C918E63590B04152E86E4E70A96F47C6A
FOUND: [GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--version']
ret: 0 stdout: gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /tmp/pygpg-jD71MJ
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
stderr:
Initializing UI
copying your gpg.conf in temporary keyring
installing symlinks for sockets
looking for key 7B75921E in your keyring
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--export', '7B75921E']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBEogKJ4BEADHRk8dXcT3VmnEZQQdiAaNw8pmnoRG2QkoAvv42q9Ua+DRVe/y
AEUd03EOXbMJl++YKWpVuzSFr7IlZ+/lJHOCqDeSsBD6LKBSx/7uH2EOIDizGwfZ
NF3u7X+gVBMy2V7rTClDJM1eT9QuLMfMakpZkIe2PpGE4g5zbGZixn9er+wEmzk2
mt20RImMeLK3jyd6vPb1/Ph9+bTEuEXi6/WDxJ6+b5peWydKOdY1tSbkWZgdi+Bu
p72DLUGZATE3+Ju5+rFXtb/1/po5dZirhaSRZjZA6sQhyFM/ZhIj92mUM8JJrhke
AC0iJejn4SW8ps2NoPm0kAfVu6apgVACaNmFb4nBAb2k1KWru+UMQnV+VxDVdxhp
V628Tn9+8oDg6c+dO3RCCmw+nUUPjeGU0k19S6fNIbNPRlElS31QGL4H0IazZqnE
+kw6ojn4Q44h8u7iOfpeanVumtp0lJs6dE2nRw0EdAlt535iQbxHIOy2x5m9IdJ6
q1wWFFQDskG+ybN2Qy7SZMQtjjOqM+CmdeAnQGVwxowSDPbHfFpYeCEb+Wzya337
Jy9yJwkfa+V7e7Lkv9/OysEsV4hJrOh8YXu9a4qBWZvZHnIO7zRbz7cqVBKmdrL2
iGqpEUv/x5onjNQwpjSVX5S+ZRBZTzah0w186IpXVxsU8dSk0yeQskblrwARAQAB
tDhBbnRvaW5lIEJlYXVwcsOpIChob21lIGFkZHJlc3MpIDxhbmFyY2F0QGFuYXJj
YXQuYXRoLmN4PokCNgQwAQgAIAUCU85w3RkdIHJlbW92aW5nIGNvbW1lbnQgZmll
bGRzAAoJEHkhUlJ7dZIeuvsQALv5rpGEI39KvmQHPrW8Y8ycN+03b1EeCTsGo/OS
8wHhj8EmCno2HXVPVjauU4dpusEzvQHsiKqIkpknq0heA/oTkUxSrBLz8hRrmL3X
N87StNBOVFNkqAgAr2eoIdi2xpm3TAMqsUUj6jjM4K2JOjduIPSvcpfg43vrAo/Y
54W4rINbhTOyCjRjQkqUhPL7bvVJvAlmpluKSDdS+ON5xEWR38g3loGkCZQvjBdS
B4hhvaxp49MGanVTwIHzI9RSrb+UtYHM3H0G5a4+AgiVYGuwqIJZc15hI3Vz+cxP
oFJ2haetoKT9rTwnqxZxknW+JnldH2V7KuyEMvWs5Jo3i8qSFfLCwG1jW3LGuILD
BNtc+QiMxy7NdOZpP3Lex9bqQ6p7io6FfNK7RN/kbeUyQNvIzLu6RpB0EkMmI2XD
talZcOZ1TUmQ4gP941HQBBjp/uDAUlkoa4/HIFxRwBTDnPspkG19HLub6QDs5/AB
3/55CGS9pBHrU2EsPQ9cLwzb+zfQmJi2vC2IzcVrbwVcTRpAluHo8kUVlgTHpnbw
XOHrr40FRuKgex7TREBK1OyAn1gYdQUFVhau+SjdcAz9zEVI8aj23Umu4oTVYVOj
cx2flzZCcdzyG6nzd3JQVWm3gpK3TgWo8eC/hNa7s5aIs7ThTofGXh+d5bUtcZx+
FbJ5tCVBbnRvaW5lIEJlYXVwcsOpIDxhbmFyY2F0QGRlYmlhbi5vcmc+iQI9BBMB
CAAnAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheABQJXPkWABQkPEHO3AAoJEHkh
UlJ7dZIegzsQALvO3xo2xx84VdZ0Kc1tU9SlLaAZFZttbOvALD4o3x55pyUEaqWH
4huDRcIRkhFq9FQITT7hj+dXkofR1MSdoUyuS/+XMYTOKBJNFUKT4JcfDr7pa8EV
sXWpxw/3gaivgi8+fo4niKFCDD0NdTO9c/19QU3Wa/11VxFrZvGS4jGb2eae8stg
2QGPIB6uobevypXbGNGe9TQ/TILZOlPVLyznf+Tj+9g0iU0oWYCVvj0z3Hrf3w1E
QX4jx2GSC8KDSM1pdajRkON8qGQgud8URKoqGQRYjHadtpbSY38h++s/NSmWDTPJ
KRJd4J2VDaYNtH0sQYVhumv+K48DRGQDcc0AHbj2f6NtzCfLLObBPrP0hgn1laPb
ujyqv/vUVKZCke5SEHDJN+eUSYv1rO1lv+1X4yugle+DyP2Pinls7jxR74L42ST0
NM33OamQacrMtKtZi3Ql0+x5lkcG0/9TEVlIyc2gZEiFL/9V4XWDbW0Of39vniCh
IYcxeQGL+369UNr7a3MXE/Z5MPpqVM6KuyPvhWfexwJyvS5CFcb5VX+awx67jodQ
1PxM6pIESJdfzv7lSwWRuhIzSG4WtfISpzywdrrjOdn9D6BdbY9mVvoUE1lrD3XY
fDzU8aIveHFcLQ1iqqZMecosqbM0bi2W9zHb36uE5jKNN8qxXyRTMOM7tC5BbnRv
aW5lIEJlYXVwcsOpIChEZWJpYW4pIDxhbmFyY2F0QGRlYmlhbi5vcmc+iQI2BDAB
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
=22K3
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 8DC901CE64146C048AD50FBB792152527B75921E
[GNUPG:] EXPORT_RES 1 0 1
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--local-user', '96F47C6A', '--secret-keyring', '/tmp/pygpg-jD71MJ/secring.gpg', '--homedir', '/tmp/pygpg-aXYEaV', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
[GNUPG:] IMPORTED 792152527B75921E Antoine Beaupré <anarcat@orangeseeds.org>
[GNUPG:] IMPORT_OK 1 8DC901CE64146C048AD50FBB792152527B75921E
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
skipped: [GNUPG:] IMPORTED 792152527B75921E Antoine Beaupré <anarcat@orangeseeds.org>
FOUND: [GNUPG:] IMPORT_OK 1 8DC901CE64146C048AD50FBB792152527B75921E
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
copying your public key to temporary keyring in /tmp/pygpg-aXYEaV
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--list-secret-keys', '96F47C6A']
ret: 0 stdout: sec:-:1024:1:86E4E70A96F47C6A:1342795252:::-:::scESC:::::::
fpr:::::::::3F94240C918E63590B04152E86E4E70A96F47C6A:
grp:::::::::558EB5B4989C679BED1556AD01779D43C9E821FC:
uid:-::::1376258501::5DDAF07DDB202F2251458399C54178537B81B134::Second Test Key <unittests@monkeysphere.info>:::::::::
uid:-::::1342795252::214CB0EDA28F3CA8754A4D43B7CDB7B114171B3C::Test Key <foo@example.com>:::::::::
ssb:-:1024:1:894EE34814B46386:1342795252::::::e::::::
fpr:::::::::F2A23173AB8E4CC5D70C13BA894EE34814B46386:
grp:::::::::28D7441EEA6A648FE26D8B2A2DA87D7086370A3F:
stderr: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
found secret key: pub [unknown] 1024R/96F47C6A 1342795252
Fingerprint = 3F94 240C 918E 6359 0B04 152E 86E4 E70A 96F4 7C6A
uid 1 [unknown] Second Test Key <unittests@monkeysphere.info>
uid 2 [unknown] Test Key <foo@example.com>
sub 1024R/14B46386 1342795252
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--armor', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--export', '3F94240C918E63590B04152E86E4E70A96F47C6A']
ret: 0 stdout: -----BEGIN PGP PUBLIC KEY BLOCK-----
mI0EUAlt9AEEAMVygQA7sGE7xS5lGk8bPK7vtBuNAb9ETjXmC8jPLZ35KTviRq1c
NfFl0J66ObgcLEQjl84GMQ6Du6qLDAAgwi/2TqzmoGljXEiOd+lePBOhEV7WgkTx
sBhniZINe/q0Sv4OJzQxfaOsW3eyfHJEXq6oCGqX+f0Nat1ygPNt/ji7ABEBAAG0
GlRlc3QgS2V5IDxmb29AZXhhbXBsZS5jb20+iLgEEwECACIFAlAJbfQCGwMGCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEIbk5wqW9HxqzpQD/0UZ7vg8ck/AlB6X
N43ecVoX8KuLQEV1QGc4dJ9zDJ7yfojs1b1Nlcb397VEufTeRDOyCueop5cvqv6f
ViFrA/V1xsn2RIjZhYSjk9m7UPRItpwLGHv6WSmYeSoCYXbTBtf+bf76c0TN97a3
BQTyRpa85GsWcT3S2Vpmv+PmcW2GtC1TZWNvbmQgVGVzdCBLZXkgPHVuaXR0ZXN0
c0Btb25rZXlzcGhlcmUuaW5mbz6ItwQTAQgAIQUCUggJxQIbAwULCQgHAwUVCgkI
CwUWAgMBAAIeAQIXgAAKCRCG5OcKlvR8amc6A/0SUtaGHWVxChOPcdnjHN2/UAWL
bMSLes2kJsjxRQ5aV5X3ZE7rsiQn2cIKs1f6hA159yicsim+dIq9GD6+yaIsR4Vv
q9p7FvrbjR6H0CdWRb1ZWQCD0wiEB5H+nT8Hppijt+6s8X0LQf9U+Pp9EnsRG2G+
aLVdmhVnEzMsLN+mhriNBFAJbfQBBADdI8x+RWaUfPXPxIOa2xwQ/PSmUvX59l6X
wJy5/Ai77fuNPU7NzEcXj5CS5JLjAOCrzUn8hHWMaxSMiqHc3dkUptZsrIBihTo6
52ikQ6/B6czPpPG31Gz+0Ptwo8hrLov0AIHb/S3p64poY3wrxUuQSItJRIhkiWeJ
WebjkSp2iQARAQABiJ8EGAECAAkFAlAJbfQCGwwACgkQhuTnCpb0fGpJ4QP/WW93
MKAxXLpyNrxcKRap2dQdR6/NVL7EwK+1d/aGliC8FnAuSgEsO5i6xc3yJtsUQHjF
1+gyjrSfFi98Vod3wkcts35tNb6I6/Q0aOzCQjz+zdg3RHUGaOPp0DyL8ydZ4nxQ
jftIrEQdl7vyLWFuQkTo3UOg4P8LOlUJJhFeI74=
=WOMM
-----END PGP PUBLIC KEY BLOCK-----
stderr: [GNUPG:] EXPORTED 3F94240C918E63590B04152E86E4E70A96F47C6A
[GNUPG:] EXPORT_RES 1 0 1
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--local-user', '96F47C6A', '--secret-keyring', '/tmp/pygpg-jD71MJ/secring.gpg', '--homedir', '/tmp/pygpg-aXYEaV', '--import']
ret: 0 stdout: stderr: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
[GNUPG:] IMPORTED 86E4E70A96F47C6A Second Test Key <unittests@monkeysphere.info>
[GNUPG:] IMPORT_OK 1 3F94240C918E63590B04152E86E4E70A96F47C6A
[GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
skipped: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
skipped: [GNUPG:] IMPORTED 86E4E70A96F47C6A Second Test Key <unittests@monkeysphere.info>
FOUND: [GNUPG:] IMPORT_OK 1 3F94240C918E63590B04152E86E4E70A96F47C6A
FOUND: [GNUPG:] IMPORT_RES 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--local-user', '96F47C6A', '--secret-keyring', '/tmp/pygpg-jD71MJ/secring.gpg', '--homedir', '/tmp/pygpg-aXYEaV', '--list-keys', '7B75921E']
ret: 0 stdout: tru::1:1475547396:0:3:1:5
pub:-:4096:1:792152527B75921E:1243621534:1496357973::-:::scESCA:::::::
fpr:::::::::8DC901CE64146C048AD50FBB792152527B75921E:
uid:-::::1463698816::827D538701DB3BF883F4DC179FA0A1371B2F3553::Antoine Beaupré <anarcat@orangeseeds.org>:::::::::
uid:r::::::96A6CB81581D15D8C3A95CDD2275406F3B9725F4::Antoine Beaupré (home address) <anarcat@anarcat.ath.cx>:::::::::
uid:-::::1463698816::F13196818AB84BCB06D77A8C08BF24CC547AF9C8::Antoine Beaupré <anarcat@debian.org>:::::::::
uid:r::::::CA37D150B3528DB100560DE8EBD48DC5274BCAC3::Antoine Beaupré (Debian) <anarcat@debian.org>:::::::::
uid:r::::::FBFCBA76BCE2FC950DA3FD7EF15A2A6E5B06DACF::Antoine Beaupré (work) <anarcat@koumbit.org>:::::::::
uid:-::::1463698813::EFD6C58004C38872D63C415BD709F63A86D021A2::Antoine Beaupré <anarcat@koumbit.org>:::::::::
sub:-:4096:1:A51D5B109C5A5581:1243622183:1496358023:::::e::::::
fpr:::::::::4F8EB9269D88B4DB8059CBB8A51D5B109C5A5581:
sub:-:2048:1:B7F648FED2DF2587:1342619928::::::a::::::
fpr:::::::::BEE189C39F25BD62E9EE089AB7F648FED2DF2587:
sub:-:2048:1:604E4B3EEE02855A:1342743455::::::a::::::
fpr:::::::::5A2373088863DBDF2E007607604E4B3EEE02855A:
sub:-:2048:1:46DC033CAFD0FDF8:1343152615::::::a::::::
fpr:::::::::151FF9A119309A9BA28F40A946DC033CAFD0FDF8:
stderr: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
found 1 keys matching your request
command: ['gpg', '--command-fd', '0', '--with-fingerprint', '--list-options', 'show-sig-subpackets,show-uid-validity,show-unusable-uids,show-unusable-subkeys,show-keyring,show-sig-expire', '--status-fd', '2', '--quiet', '--batch', '--fixed-list-mode', '--no-tty', '--with-colons', '--use-agent', '--local-user', '96F47C6A', '--secret-keyring', '/tmp/pygpg-jD71MJ/secring.gpg', '--homedir', '/tmp/pygpg-aXYEaV', '--sign-key', 'Antoine Beaupr\xc3\xa9 <anarcat@orangeseeds.org>']
IGNORED: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
IGNORED: [GNUPG:] KEY_CONSIDERED 8DC901CE64146C048AD50FBB792152527B75921E 0
FOUND: [GNUPG:] GET_BOOL keyedit.sign_all.okay
WROTE: n
FOUND: [GNUPG:] GOT_IT
FOUND: [GNUPG:] GET_LINE keyedit.prompt
skipped: pub:-:4096:1:792152527B75921E:1243621534:1496357973::-:::sc
skipped: fpr:::::::::8DC901CE64146C048AD50FBB792152527B75921E:
skipped: sub:-:4096:1:A51D5B109C5A5581:1243622183:1496358023:::::e
skipped: fpr:::::::::4F8EB9269D88B4DB8059CBB8A51D5B109C5A5581:
skipped: sub:-:2048:1:B7F648FED2DF2587:1342619928:0:::::a
skipped: fpr:::::::::BEE189C39F25BD62E9EE089AB7F648FED2DF2587:
skipped: sub:-:2048:1:604E4B3EEE02855A:1342743455:0:::::a
skipped: fpr:::::::::5A2373088863DBDF2E007607604E4B3EEE02855A:
skipped: sub:-:2048:1:46DC033CAFD0FDF8:1343152615:0:::::a
skipped: fpr:::::::::151FF9A119309A9BA28F40A946DC033CAFD0FDF8:
FOUND: uid:-::::::::Antoine Beaupré <anarcat@orangeseeds.org>:::S9 S8 S7 S3 H10 H9 H8 H11 Z2 Z3 Z1 Z0,mdc,no-ks-modify:1,p::
WROTE: 1
FOUND: [GNUPG:] GOT_IT
FOUND: [GNUPG:] GET_LINE keyedit.prompt
WROTE: sign
FOUND: [GNUPG:] GOT_IT
IGNORED: [GNUPG:] KEY_CONSIDERED 3F94240C918E63590B04152E86E4E70A96F47C6A 0
FOUND: [GNUPG:] GET_BOOL sign_uid.okay
WROTE: y
FOUND: [GNUPG:] GOT_IT
skipped: [GNUPG:] GET_LINE keyedit.prompt
^Cdeleting the temporary keyring /tmp/pygpg-aXYEaV
ERROR
======================================================================
ERROR: test_sign_one_uid (tests.test_ui.CliTestDialog)
test if we can sign only one keyid
----------------------------------------------------------------------
Traceback (most recent call last):
File "tests/test_ui.py", line 156, in test_sign_one_uid
self.write_to_callback("n\n1\ny\n", callback) # just say yes
File "tests/test_ui.py", line 55, in write_to_callback
callback(self)
File "tests/test_ui.py", line 155, in callback
execfile(os.path.dirname(__file__) + '/../scripts/monkeysign')
File "tests/../scripts/monkeysign", line 49, in <module>
sys.exit()
SystemExit
----------------------------------------------------------------------
Ran 1 test in 2.859s
FAILED (errors=1)
```
i had to hit `control-c` to skip the test.https://0xacab.org/monkeysphere/monkeysign/-/issues/23key generation2018-07-08T19:45:10ZJerome Charaouikey generation*Imported from bugseverywhere, created on 2013-10-20**Imported from bugseverywhere, created on 2013-10-20*https://0xacab.org/monkeysphere/monkeysign/-/issues/43switch to the logging module2018-07-08T19:45:10Zanarcatswitch to the logging moduleInstead of rolling our own log/warn/debug interface like right now, we should reuse the logging module, which will enable us to have global logging access.
Right now, we can't log in the `gpg` module for example, because it doesn't ha...Instead of rolling our own log/warn/debug interface like right now, we should reuse the logging module, which will enable us to have global logging access.
Right now, we can't log in the `gpg` module for example, because it doesn't have access to the `ui` object. `gpg`, like all other modules, should use logging and the `ui` should just hook a Handler adequate for its needs.
For example, in the GTK UI, this could be a status bar. An archive of all logging could also be kept accessible in memory for consultation in a specific window, see #44 for the help dialogs implementation.Monkeysign 2.3.0simonftsimonfthttps://0xacab.org/monkeysphere/monkeysign/-/issues/9ensure monkeysign works with GPG 2.1, make use of its new features2018-07-08T19:45:10Zanarcatensure monkeysign works with GPG 2.1, make use of its new featuresThere is some movement in upstream GPG that could be very beneficial for us. 2.1 has all sorts of improvements that we could use, but also breaks certain things we need to take into account. Here's a meta-ticket to keep track of those is...There is some movement in upstream GPG that could be very beneficial for us. 2.1 has all sorts of improvements that we could use, but also breaks certain things we need to take into account. Here's a meta-ticket to keep track of those issues.
* [x] secret key material handling: we currently use `--secret-keyring ~/.gnupg/secring.gpg` (more or less) which will not work with GPG 2.1 - presumably we can talk to the agent for this now, but is that automatic? do we need to *remove* the `--secret-keyring` flag? see #50
* [x] formatting changes: some `--with-colons` output has changed, which we need to catchup with - tobias did some work in https://0xacab.org/monkeysphere/monkeysign/commit/b9934b8 to fix [Debian #773970](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773970), it is unclear if other problems remain
* [x] 2.1 properly populates revoked and expired fields now, which could fix some problems we're having with revoked and expired keys, e.g.
* [#766129](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766129) (monkeysign should not use revoked keys to make signatures)
* [#736548](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736548) (monkeysign: Reports "key is expired, cannot sign" on non-expired key)
* [#723763](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723763) (monkeysign should not sign revoked uids)
* [x] other dialog issues: #40, #51
see also #8.
this discussion emerged in [Debian #721599](https://bugs.debian.org/721599).Monkeysign 2.1.4https://0xacab.org/monkeysphere/monkeysign/-/issues/54adopt covenant code of conduct?2018-07-08T19:45:10Zanarcatadopt covenant code of conduct?i don't think we have had harrassment problems yet in Monkeysign (if we have, feel free to contact me directly at anarcat@debian.org, i accept PGP-encrypted email - if it is about me, you should probably contact @dkg or another member as...i don't think we have had harrassment problems yet in Monkeysign (if we have, feel free to contact me directly at anarcat@debian.org, i accept PGP-encrypted email - if it is about me, you should probably contact @dkg or another member as well).
but it's exactly at about that time that it is good to set preemptive code of conduct policies, before problems happen. it shows a clear stance against abusive or discriminatory behaviour, and makes people feel more welcome.
i have just found out about the [contributor covenant code of conduct](http://contributor-covenant.org/). i still need to review it in details, but I would like to adopt it for monkeysign. here is the [markdown version](http://contributor-covenant.org/version/1/4/code_of_conduct.md) we could include in the contributor and maybe even README notes.
it feels weird to take this decision on my own, so I would like to get feedback from others as well. @lavamind, @dkg, opinions?Monkeysign 2.2.2https://0xacab.org/monkeysphere/monkeysign/-/issues/61test suite fails with GnuPG 2.1.17 and takes 10 minutes to run2018-07-08T19:45:10Zanarcattest suite fails with GnuPG 2.1.17 and takes 10 minutes to runThe test suite currently fails to run on Debian stretch due to 2.1 being the default GnuPG version available.
## Expected behavior
In Jessie, the test suite gives me:
```
..xx...........................That is your own key, so it is a...The test suite currently fails to run on Debian stretch due to 2.1 being the default GnuPG version available.
## Expected behavior
In Jessie, the test suite gives me:
```
..xx...........................That is your own key, so it is already certified
.......................pub [unknown] 1024R/96F47C6A 1342795252
Fingerprint = 3F94 240C 918E 6359 0B04 152E 86E4 E70A 96F4 7C6A
uid 1 [unknown] Second Test Key <unittests@monkeysphere.info>
uid 2 [unknown] Test Key <foo@example.com>
sub 1024R/14B46386 1342795252
.............pub [empty] 1024R/4023702F 1110320887 [expiry: 2010-03-12 18:56:20]
Fingerprint = C9E1 F123 0DBE 47D5 7BAB 3C60 5860 73B3 4023 702F
uid 1 [empty] The Anarcat <anarcat@anarcat.ath.cx>
sub 2048R/EB8D47BB 1110320966
.
----------------------------------------------------------------------
Ran 68 tests in 29.270s
OK (expected failures=2)
```
## Actual behavior
In stretch, it fails in `test_special_key (test_network.TestGpgNetwork)` with:
```
AlarmException: timeout in _communicate_with_poll
```
Full output below.
## Steps to reproduce
Run the test suite in Debian Stretch.
## Suggested fixes
No frigging clue. Blame GnuPG.
## Testsuite output
```
$ ./scripts/monkeysign --test
.....Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ccec68>> ignored
.Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cde170>> ignored
..Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cceb90>> ignored
.Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cde3f8>> ignored
....Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cde518>> ignored
......Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85b00>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85e18>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85e60>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85b48>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85b00>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85b48>> ignored
.Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ce0998>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ce0998>> ignored
...Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cf9518>> ignored
..Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d04830>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d04c20>> ignored
..That is your own key, so it is already certified
.Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d1e908>> ignored
.E......................pub [unknown] 1024R/96F47C6A 1342795252
Fingerprint = 3F94 240C 918E 6359 0B04 152E 86E4 E70A 96F4 7C6A
uid 1 [unknown] Second Test Key <unittests@monkeysphere.info>
uid 2 [unknown] Test Key <foo@example.com>
sub 1024R/14B46386 1342795252
.............pub [empty] 1024R/4023702F 1110320887 [expiry: 2010-03-12 18:56:20]
Fingerprint = C9E1 F123 0DBE 47D5 7BAB 3C60 5860 73B3 4023 702F
uid 1 [empty] The Anarcat <anarcat@anarcat.ath.cx>
sub 2048R/EB8D47BB 1110320966
...
======================================================================
ERROR: test_special_key (test_network.TestGpgNetwork)
test a key that sign_key had trouble with
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/anarcat/src/monkeysign/monkeysign/tests/test_network.py", line 58, in test_special_key
self.assertTrue(self.gpg.import_data(open(find_test_file('96F47C6A-secret.asc')).read()))
File "./scripts/../monkeysign/gpg.py", line 344, in import_data
self.context.call_command(['import'], data)
File "./scripts/../monkeysign/gpg.py", line 184, in call_command
(self.stdout, self.stderr) = proc.communicate(stdin)
File "/usr/lib/python2.7/subprocess.py", line 479, in communicate
return self._communicate(input)
File "/usr/lib/python2.7/subprocess.py", line 1098, in _communicate
stdout, stderr = self._communicate_with_poll(input)
File "/usr/lib/python2.7/subprocess.py", line 1152, in _communicate_with_poll
ready = poller.poll()
File "/home/anarcat/src/monkeysign/monkeysign/tests/test_lib.py", line 35, in handle_alarm
raise AlarmException('timeout in %s' % frame.f_code.co_name)
AlarmException: timeout in _communicate_with_poll
----------------------------------------------------------------------
Ran 68 tests in 545.874s
FAILED (errors=1)
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d17638>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d04a70>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cf9a28>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cf9128>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ce9128>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85e18>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ce0638>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d7cab8>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d8d908>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d85878>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cde518>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d70320>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9ccee18>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d69680>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d2f710>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cb0e60>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d692d8>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cce050>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cc6c68>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cdeb00>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cce5a8>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9d2f440>> ignored
Exception OSError: OSError(2, 'Aucun fichier ou dossier de ce type') in <bound method TempKeyring.__del__ of <monkeysign.gpg.TempKeyring instance at 0x7fb0a9cc6e60>> ignored
```
Also note all the exceptions that mysteriously don't make the tests fail - that can't be good... Or at least if it's okay, they should be silenced!
## Environment details
```
$ ./scripts/monkeysign --version
Monkeysign: 2.2.2
Load path: /home/anarcat/src/monkeysign/monkeysign
CPython: 2.7.13 (GCC 6.2.1 20161215 default Dec 18 2016 20:19:42)
Kernel: Linux curie 4.8.0-2-amd64 #1 SMP Debian 4.8.15-2 (2017-01-04) x86_64
Operating system: debian stretch/sid (Linux)
PID: 16662, CWD: /home/anarcat/src/monkeysign
Command: ['./scripts/monkeysign', '--version']
GnuPG: 2.1.17
```
running from the git repository...
## Debugging output
Attached because too large.[test-gnugpg-2.1.txt](/uploads/9fb3ba66794474b55ef92b67cf22001e/test-gnugpg-2.1.txt)Monkeysign 2.2.3