aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-05-30 14:45:12 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-05-30 14:45:12 -0300
commite5659e2ba6be675f2f8383e0264bde8968a869d0 (patch)
treecbc92bdb8e2f46aa6e79b74f621bddafebf7f990
parentb6dec4f1efe948f01df02b364cbb7f7aeedaa2b1 (diff)
parent126eb39671e9c65c0c60a78b25189e4d4b1fae72 (diff)
downloadkeyringer-e5659e2ba6be675f2f8383e0264bde8968a869d0.tar.gz
keyringer-e5659e2ba6be675f2f8383e0264bde8968a869d0.tar.bz2
Merge branch 'develop'
-rw-r--r--.task/backlog.data68
-rw-r--r--.task/bugwarriorrc13
-rw-r--r--.task/completed.data1
-rw-r--r--.task/pending.data47
-rw-r--r--.task/taskrc12
-rw-r--r--.task/undo.data224
-rw-r--r--ChangeLog32
-rw-r--r--Makefile27
-rw-r--r--development.md4
-rw-r--r--index.md3
-rwxr-xr-xkeyringer2
-rwxr-xr-xlib/keyringer/actions/genkeys30
-rwxr-xr-xlib/keyringer/actions/pwgen4
-rwxr-xr-xlib/keyringer/functions17
l---------tasks1
-rw-r--r--tasks.md32
16 files changed, 480 insertions, 37 deletions
diff --git a/.task/backlog.data b/.task/backlog.data
new file mode 100644
index 0000000..d047ddf
--- /dev/null
+++ b/.task/backlog.data
@@ -0,0 +1,68 @@
+{"description":"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"H","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":55,"tracsummary":"Recryption error when using gpg-agent in text mode","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/55","uuid":"e2ad341b-5104-4e6d-ae43-7f4a3367431e"}
+{"description":"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"H","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":55,"tracsummary":"Recryption error when using gpg-agent in text mode","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/55","uuid":"e2ad341b-5104-4e6d-ae43-7f4a3367431e","annotations":[{"entry":"20180522T161848Z","description":"@rhatto - Tried [changeset:9218a6d this fix] but withou..."}]}
+{"description":"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":3,"tracsummary":"Integration with ssss","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/3","uuid":"b1bcae6f-251d-422d-b1c0-48261617f681"}
+{"description":"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":3,"tracsummary":"Integration with ssss","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/3","uuid":"b1bcae6f-251d-422d-b1c0-48261617f681","annotations":[{"entry":"20180522T161848Z","description":"@rhatto - We should also try file support at {{{ssss-sp..."}]}
+{"description":"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":3,"tracsummary":"Integration with ssss","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/3","uuid":"b1bcae6f-251d-422d-b1c0-48261617f681","annotations":[{"entry":"20180522T161848Z","description":"@rhatto - We should also try file support at {{{ssss-sp..."},{"entry":"20180522T161849Z","description":"@rhatto - Secret sharing splits could be appended with ..."}]}
+{"description":"(bw)Is#4 - Enhanced help .. https:\/\/keyringer.pw\/trac\/ticket\/4","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":4,"tracsummary":"Enhanced help","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/4","uuid":"b3603728-d283-4d31-8717-d2c51bfb0269"}
+{"description":"(bw)Is#8 - Background color .. https:\/\/keyringer.pw\/trac\/ticket\/8","entry":"20180522T161848Z","modified":"20180522T161848Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":8,"tracsummary":"Background color","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/8","uuid":"a5f4dcfb-788a-4718-ae85-2acd578e890e"}
+{"description":"(bw)Is#15 - Make custom merge driver so that wh .. https:\/\/keyringer.pw\/trac\/ticket\/15","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":15,"tracsummary":"Make custom merge driver so that when branches diverge they are recoverable","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/15","uuid":"3cda07e1-16fb-4589-ab5b-56f98fdff636"}
+{"description":"(bw)Is#22 - Check if secret already exists .. https:\/\/keyringer.pw\/trac\/ticket\/22","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":22,"tracsummary":"Check if secret already exists","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/22","uuid":"8b7c5761-3210-439c-b1f4-ef8e62398093"}
+{"description":"(bw)Is#25 - Signed tags and commits .. https:\/\/keyringer.pw\/trac\/ticket\/25","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":25,"tracsummary":"Signed tags and commits","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/25","uuid":"aadc7220-57b8-49e6-8fcc-5863b20a264e"}
+{"description":"(bw)Is#29 - Use a memory buffer as a temporary .. https:\/\/keyringer.pw\/trac\/ticket\/29","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":29,"tracsummary":"Use a memory buffer as a temporary storage","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/29","uuid":"d6920e01-2cb0-4679-bb16-33c25dcd0bd2"}
+{"description":"(bw)Is#31 - Enhanced output .. https:\/\/keyringer.pw\/trac\/ticket\/31","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":31,"tracsummary":"Enhanced output","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/31","uuid":"6d04cbfd-f20e-4f0f-9e77-ae4118b92ed2"}
+{"description":"(bw)Is#33 - Incorporate features from pass .. https:\/\/keyringer.pw\/trac\/ticket\/33","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":33,"tracsummary":"Incorporate features from pass","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/33","uuid":"5361cd07-a69b-44c3-a82e-00aa312a87a8"}
+{"description":"(bw)Is#35 - Integration with git-remote-gcrypt .. https:\/\/keyringer.pw\/trac\/ticket\/35","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":35,"tracsummary":"Integration with git-remote-gcrypt","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/35","uuid":"3998fa57-20e3-4014-a63d-c49e9a881a6e"}
+{"description":"(bw)Is#36 - Threat model .. https:\/\/keyringer.pw\/trac\/ticket\/36","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":36,"tracsummary":"Threat model","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/36","uuid":"9bfbe108-ddec-45be-a220-ffba98987db3"}
+{"description":"(bw)Is#39 - Check action .. https:\/\/keyringer.pw\/trac\/ticket\/39","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":39,"tracsummary":"Check action","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/39","uuid":"0eb77586-0c3f-4453-ab3f-c20cc5003496"}
+{"description":"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":40,"tracsummary":"Canary","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/40","uuid":"7964ac91-119b-44b9-825e-ca0b3b19c0b0"}
+{"description":"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":40,"tracsummary":"Canary","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/40","uuid":"7964ac91-119b-44b9-825e-ca0b3b19c0b0","annotations":[{"entry":"20180522T161849Z","description":"@rhatto - [https:\/\/www.canarywatch.org\/ Canary Watch]."}]}
+{"description":"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":40,"tracsummary":"Canary","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/40","uuid":"7964ac91-119b-44b9-825e-ca0b3b19c0b0","annotations":[{"entry":"20180522T161849Z","description":"@rhatto - [https:\/\/www.canarywatch.org\/ Canary Watch]."},{"entry":"20180522T161850Z","description":"@rhatto - [https:\/\/firstlook.org\/code\/project\/autocanar..."}]}
+{"description":"(bw)Is#43 - Signed recipients .. https:\/\/keyringer.pw\/trac\/ticket\/43","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":43,"tracsummary":"Signed recipients","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/43","uuid":"4ca4703e-2998-48f8-926c-e7217d72f71c"}
+{"description":"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":45,"tracsummary":"Support for git-annex","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/45","uuid":"7ffce59f-429a-4d80-8df7-82c1fc905a3e"}
+{"description":"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":45,"tracsummary":"Support for git-annex","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/45","uuid":"7ffce59f-429a-4d80-8df7-82c1fc905a3e","annotations":[{"entry":"20180522T161849Z","description":"@rhatto - Maybe we just need the following actions:{{{k..."}]}
+{"description":"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46","entry":"20180522T161849Z","modified":"20180522T161849Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":46,"tracsummary":"Key import\/export","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/46","uuid":"19fe2441-6563-4edd-8947-0b74aff05994"}
+{"description":"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46","entry":"20180522T161849Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":46,"tracsummary":"Key import\/export","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/46","uuid":"19fe2441-6563-4edd-8947-0b74aff05994","annotations":[{"entry":"20180522T161850Z","description":"@rhatto - We could consider a set of actions that would..."}]}
+{"description":"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46","entry":"20180522T161849Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":46,"tracsummary":"Key import\/export","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/46","uuid":"19fe2441-6563-4edd-8947-0b74aff05994","annotations":[{"entry":"20180522T161850Z","description":"@rhatto - We could consider a set of actions that would..."},{"entry":"20180522T161851Z","description":"@rhatto - We also might consider the [ticket:39 check a..."}]}
+{"description":"(bw)Is#47 - Report on secret's encryption dates .. https:\/\/keyringer.pw\/trac\/ticket\/47","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":47,"tracsummary":"Report on secret's encryption dates","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/47","uuid":"75775565-5adb-476b-aa8d-f78fd02e894e"}
+{"description":"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":48,"tracsummary":"Consider --compress-algo NULL","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/48","uuid":"8d053a47-1f31-4895-b021-f79330dcb6b9"}
+{"description":"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":48,"tracsummary":"Consider --compress-algo NULL","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/48","uuid":"8d053a47-1f31-4895-b021-f79330dcb6b9","annotations":[{"entry":"20180522T161850Z","description":"@rhatto - If that's the case, then it should be easy to..."}]}
+{"description":"(bw)Is#54 - Check recipients before decrypt\/rec .. https:\/\/keyringer.pw\/trac\/ticket\/54","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":54,"tracsummary":"Check recipients before decrypt\/recrypt","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/54","uuid":"536f60ce-db9c-4f3c-b608-dcf136d466f4"}
+{"description":"(bw)Is#56 - Hidden recipient support .. https:\/\/keyringer.pw\/trac\/ticket\/56","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":56,"tracsummary":"Hidden recipient support","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/56","uuid":"1da81e8f-9ea2-449e-9df9-9bb2078c7f49"}
+{"description":"(bw)Is#57 - Signed and encrypted config files .. https:\/\/keyringer.pw\/trac\/ticket\/57","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":57,"tracsummary":"Signed and encrypted config files","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/57","uuid":"113a5448-ccb8-40e1-af6e-e802420fe89c"}
+{"description":"(bw)Is#60 - Secret padding .. https:\/\/keyringer.pw\/trac\/ticket\/60","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":60,"tracsummary":"Secret padding","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/60","uuid":"1bfaca12-2a82-4d1f-8530-90e4c4236d32"}
+{"description":"(bw)Is#61 - Incorporate features from pwd.sh .. https:\/\/keyringer.pw\/trac\/ticket\/61","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":61,"tracsummary":"Incorporate features from pwd.sh","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/61","uuid":"04c7b325-6979-413c-b81c-516d5f919f25"}
+{"description":"(bw)Is#66 - Puppet integration .. https:\/\/keyringer.pw\/trac\/ticket\/66","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":66,"tracsummary":"Puppet integration","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/66","uuid":"ec4fd4c6-ca24-4406-8044-229ea6a2ae2f"}
+{"description":"(bw)Is#68 - Abstract gpg and git .. https:\/\/keyringer.pw\/trac\/ticket\/68","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":68,"tracsummary":"Abstract gpg and git","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/68","uuid":"2bda308d-c9ef-445e-a100-72334ed179f5"}
+{"description":"(bw)Is#70 - Browser integration .. https:\/\/keyringer.pw\/trac\/ticket\/70","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":70,"tracsummary":"Browser integration","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/70","uuid":"207f5359-5cb4-4f84-be5f-7170116c1c1f"}
+{"description":"(bw)Is#71 - YAML store .. https:\/\/keyringer.pw\/trac\/ticket\/71","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":71,"tracsummary":"YAML store","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/71","uuid":"60ba1846-bf3a-4271-aa45-bec2bb6ee209"}
+{"description":"(bw)Is#73 - KRunner compatibility .. https:\/\/keyringer.pw\/trac\/ticket\/73","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":73,"tracsummary":"KRunner compatibility","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/73","uuid":"1bda9b98-52e0-4009-8498-de8695aa326f"}
+{"description":"(bw)Is#74 - Missing README file .. https:\/\/keyringer.pw\/trac\/ticket\/74","entry":"20180522T161850Z","modified":"20180522T161850Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":74,"tracsummary":"Missing README file","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/74","uuid":"d179d02d-2ad4-41c1-9941-a19ef2a2fcdb"}
+{"description":"(bw)Is#75 - Recipient error when using ~ on rep .. https:\/\/keyringer.pw\/trac\/ticket\/75","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":75,"tracsummary":"Recipient error when using ~ on repository path","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/75","uuid":"4e0f7fbe-20a1-4c0e-ac02-14e277fa082f"}
+{"description":"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":80,"tracsummary":"possible race condition","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/80","uuid":"0c71e8fd-29f7-47bd-b8b3-c5899693693b"}
+{"description":"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":80,"tracsummary":"possible race condition","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/80","uuid":"0c71e8fd-29f7-47bd-b8b3-c5899693693b","annotations":[{"entry":"20180522T161851Z","description":"@jamie - Results of additional debugging:I narrowed th..."}]}
+{"description":"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":80,"tracsummary":"possible race condition","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/80","uuid":"0c71e8fd-29f7-47bd-b8b3-c5899693693b","annotations":[{"entry":"20180522T161851Z","description":"@jamie - Results of additional debugging:I narrowed th..."},{"entry":"20180522T161852Z","description":"@rhatto - Patch applied as commit {{{dbc0b92c6e32a0b9ca..."}]}
+{"description":"(bw)Is#81 - Task manager .. https:\/\/keyringer.pw\/trac\/ticket\/81","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"M","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":81,"tracsummary":"Task manager","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/81","uuid":"844e9955-b1be-42e4-988b-614963310da1"}
+{"description":"(bw)Is#16 - ZSH completion upstream .. https:\/\/keyringer.pw\/trac\/ticket\/16","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"packaging","tracnumber":16,"tracsummary":"ZSH completion upstream","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/16","uuid":"74452223-0df2-4de5-b54c-3cd6cb63c0e4"}
+{"description":"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":24,"tracsummary":"New logo","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/24","uuid":"25b918a5-a001-4fbd-8df0-6c07ddf331a1"}
+{"description":"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":24,"tracsummary":"New logo","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/24","uuid":"25b918a5-a001-4fbd-8df0-6c07ddf331a1","annotations":[{"entry":"20180522T161851Z","description":"@rhatto - [http:\/\/openclipart.org\/detail\/159973\/padlock..."}]}
+{"description":"(bw)Is#28 - File extension discovery .. https:\/\/keyringer.pw\/trac\/ticket\/28","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":28,"tracsummary":"File extension discovery","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/28","uuid":"6a4d8fdc-10b6-47d5-903e-2870c4e9a2ee"}
+{"description":"(bw)Is#38 - Enhanced error verbosity .. https:\/\/keyringer.pw\/trac\/ticket\/38","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":38,"tracsummary":"Enhanced error verbosity","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/38","uuid":"4013d068-f865-4ba8-bb1d-203b22ae1855"}
+{"description":"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":44,"tracsummary":"Xclip error","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/44","uuid":"fa6f619c-de40-458f-899e-1f11a0a798df"}
+{"description":"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":44,"tracsummary":"Xclip error","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/44","uuid":"fa6f619c-de40-458f-899e-1f11a0a798df","annotations":[{"entry":"20180522T161851Z","description":"@rhatto - References: * [https:\/\/www.mail-archive.com\/..."}]}
+{"description":"(bw)Is#51 - OneTime integration .. https:\/\/keyringer.pw\/trac\/ticket\/51","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"security","tracnumber":51,"tracsummary":"OneTime integration","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/51","uuid":"477514ba-f9a9-45ce-b619-493fd94b85fe"}
+{"description":"(bw)Is#52 - Plugin support .. https:\/\/keyringer.pw\/trac\/ticket\/52","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":52,"tracsummary":"Plugin support","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/52","uuid":"a63bd01c-e74a-48ba-be69-e51a0b76f6d2"}
+{"description":"(bw)Is#58 - Message board .. https:\/\/keyringer.pw\/trac\/ticket\/58","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":58,"tracsummary":"Message board","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/58","uuid":"0c6acc3e-2945-49d6-8b72-89ed65354774"}
+{"description":"(bw)Is#63 - Keyring name should not contain dot .. https:\/\/keyringer.pw\/trac\/ticket\/63","entry":"20180522T161851Z","modified":"20180522T161851Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":63,"tracsummary":"Keyring name should not contain dot character","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/63","uuid":"9d66153a-7e69-47b1-a7bd-ff0e9307492d"}
+{"description":"(bw)Is#23 - Portuguese translation .. https:\/\/keyringer.pw\/trac\/ticket\/23","entry":"20180522T161852Z","modified":"20180522T161852Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":23,"tracsummary":"Portuguese translation","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/23","uuid":"44b209b3-1484-47cc-a392-af12ca293d89"}
+{"description":"(bw)Is#42 - Mailing list .. https:\/\/keyringer.pw\/trac\/ticket\/42","entry":"20180522T161852Z","modified":"20180522T161852Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":42,"tracsummary":"Mailing list","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/42","uuid":"0f507d88-d2d9-452d-bc04-d00ca562d2b7"}
+{"description":"(bw)Is#59 - Hidden service howto .. https:\/\/keyringer.pw\/trac\/ticket\/59","entry":"20180522T161852Z","modified":"20180522T161852Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":59,"tracsummary":"Hidden service howto","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/59","uuid":"10e30d99-7c65-45af-9d72-d67b93966e5f"}
+{"description":"(bw)Is#67 - Document tips .. https:\/\/keyringer.pw\/trac\/ticket\/67","entry":"20180522T161852Z","modified":"20180522T161852Z","priority":"L","project":"keyringer","status":"pending","traccomponent":"usability","tracnumber":67,"tracsummary":"Document tips","tracurl":"https:\/\/keyringer.pw\/trac\/ticket\/67","uuid":"e45c7e62-d550-437d-9393-b9944220cb67"}
+{"description":"OpenBSD patches","entry":"20180522T173012Z","modified":"20180522T173012Z","project":"keyringer","status":"pending","tags":["important"],"uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180522T173405Z","project":"keyringer","status":"pending","tags":["important"],"uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Build static HTML report from taskwarrior","entry":"20180522T173458Z","modified":"20180522T173458Z","project":"keyringer","status":"pending","uuid":"5a63f746-48b2-4a16-a61b-81e8bcaeae27"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180530T144007Z","project":"keyringer","start":"20180530T144007Z","status":"pending","tags":["important"],"uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180530T171635Z","project":"keyringer","status":"pending","tags":["important"],"uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180530T173526Z","project":"keyringer","status":"pending","uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180530T173542Z","project":"keyringer","status":"pending","tags":["important"],"uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","entry":"20180522T173012Z","modified":"20180530T173559Z","project":"keyringer","status":"pending","uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
+{"description":"Merge OpenBSD patches","end":"20180530T174450Z","entry":"20180522T173012Z","modified":"20180530T174450Z","project":"keyringer","status":"completed","uuid":"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"}
diff --git a/.task/bugwarriorrc b/.task/bugwarriorrc
new file mode 100644
index 0000000..91d3123
--- /dev/null
+++ b/.task/bugwarriorrc
@@ -0,0 +1,13 @@
+[general]
+taskrc = /PATH/TO/keyringer/.taskrc
+targets = keyringer
+
+[keyringer]
+service = trac
+trac.base_uri = keyringer.pw/trac
+trac.scheme = https
+trac.username = rhatto
+trac.password = BUGMEPLEASE
+#trac.no_xmlrpc = true
+trac.project_template = keyringer.{{traccomponent}}
+trac.description.template = {{tracsummary}}
diff --git a/.task/completed.data b/.task/completed.data
new file mode 100644
index 0000000..6031922
--- /dev/null
+++ b/.task/completed.data
@@ -0,0 +1 @@
+[description:"Merge OpenBSD patches" end:"1527702290" entry:"1527010212" modified:"1527702290" project:"keyringer" status:"completed" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
diff --git a/.task/pending.data b/.task/pending.data
new file mode 100644
index 0000000..55a1f53
--- /dev/null
+++ b/.task/pending.data
@@ -0,0 +1,47 @@
+[annotation_1527005928:"@rhatto - Tried &open;changeset:9218a6d this fix&close; but withou..." description:"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55" entry:"1527005928" modified:"1527005928" priority:"H" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"55" tracsummary:"Recryption error when using gpg-agent in text mode" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/55" uuid:"e2ad341b-5104-4e6d-ae43-7f4a3367431e"]
+[annotation_1527005928:"@rhatto - We should also try file support at {{{ssss-sp..." annotation_1527005929:"@rhatto - Secret sharing splits could be appended with ..." description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+[description:"(bw)Is#4 - Enhanced help .. https:\/\/keyringer.pw\/trac\/ticket\/4" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"4" tracsummary:"Enhanced help" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/4" uuid:"b3603728-d283-4d31-8717-d2c51bfb0269"]
+[description:"(bw)Is#8 - Background color .. https:\/\/keyringer.pw\/trac\/ticket\/8" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"8" tracsummary:"Background color" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/8" uuid:"a5f4dcfb-788a-4718-ae85-2acd578e890e"]
+[description:"(bw)Is#15 - Make custom merge driver so that wh .. https:\/\/keyringer.pw\/trac\/ticket\/15" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"15" tracsummary:"Make custom merge driver so that when branches diverge they are recoverable" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/15" uuid:"3cda07e1-16fb-4589-ab5b-56f98fdff636"]
+[description:"(bw)Is#22 - Check if secret already exists .. https:\/\/keyringer.pw\/trac\/ticket\/22" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"22" tracsummary:"Check if secret already exists" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/22" uuid:"8b7c5761-3210-439c-b1f4-ef8e62398093"]
+[description:"(bw)Is#25 - Signed tags and commits .. https:\/\/keyringer.pw\/trac\/ticket\/25" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"25" tracsummary:"Signed tags and commits" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/25" uuid:"aadc7220-57b8-49e6-8fcc-5863b20a264e"]
+[description:"(bw)Is#29 - Use a memory buffer as a temporary .. https:\/\/keyringer.pw\/trac\/ticket\/29" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"29" tracsummary:"Use a memory buffer as a temporary storage" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/29" uuid:"d6920e01-2cb0-4679-bb16-33c25dcd0bd2"]
+[description:"(bw)Is#31 - Enhanced output .. https:\/\/keyringer.pw\/trac\/ticket\/31" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"31" tracsummary:"Enhanced output" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/31" uuid:"6d04cbfd-f20e-4f0f-9e77-ae4118b92ed2"]
+[description:"(bw)Is#33 - Incorporate features from pass .. https:\/\/keyringer.pw\/trac\/ticket\/33" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"33" tracsummary:"Incorporate features from pass" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/33" uuid:"5361cd07-a69b-44c3-a82e-00aa312a87a8"]
+[description:"(bw)Is#35 - Integration with git-remote-gcrypt .. https:\/\/keyringer.pw\/trac\/ticket\/35" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"35" tracsummary:"Integration with git-remote-gcrypt" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/35" uuid:"3998fa57-20e3-4014-a63d-c49e9a881a6e"]
+[description:"(bw)Is#36 - Threat model .. https:\/\/keyringer.pw\/trac\/ticket\/36" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"36" tracsummary:"Threat model" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/36" uuid:"9bfbe108-ddec-45be-a220-ffba98987db3"]
+[description:"(bw)Is#39 - Check action .. https:\/\/keyringer.pw\/trac\/ticket\/39" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"39" tracsummary:"Check action" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/39" uuid:"0eb77586-0c3f-4453-ab3f-c20cc5003496"]
+[annotation_1527005929:"@rhatto - &open;https:\/\/www.canarywatch.org\/ Canary Watch&close;." annotation_1527005930:"@rhatto - &open;https:\/\/firstlook.org\/code\/project\/autocanar..." description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+[description:"(bw)Is#43 - Signed recipients .. https:\/\/keyringer.pw\/trac\/ticket\/43" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"43" tracsummary:"Signed recipients" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/43" uuid:"4ca4703e-2998-48f8-926c-e7217d72f71c"]
+[annotation_1527005929:"@rhatto - Maybe we just need the following actions:{{{k..." description:"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"45" tracsummary:"Support for git-annex" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/45" uuid:"7ffce59f-429a-4d80-8df7-82c1fc905a3e"]
+[annotation_1527005930:"@rhatto - We could consider a set of actions that would..." annotation_1527005931:"@rhatto - We also might consider the &open;ticket:39 check a..." description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+[description:"(bw)Is#47 - Report on secret's encryption dates .. https:\/\/keyringer.pw\/trac\/ticket\/47" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"47" tracsummary:"Report on secret's encryption dates" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/47" uuid:"75775565-5adb-476b-aa8d-f78fd02e894e"]
+[annotation_1527005930:"@rhatto - If that's the case, then it should be easy to..." description:"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"48" tracsummary:"Consider --compress-algo NULL" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/48" uuid:"8d053a47-1f31-4895-b021-f79330dcb6b9"]
+[description:"(bw)Is#54 - Check recipients before decrypt\/rec .. https:\/\/keyringer.pw\/trac\/ticket\/54" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"54" tracsummary:"Check recipients before decrypt\/recrypt" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/54" uuid:"536f60ce-db9c-4f3c-b608-dcf136d466f4"]
+[description:"(bw)Is#56 - Hidden recipient support .. https:\/\/keyringer.pw\/trac\/ticket\/56" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"56" tracsummary:"Hidden recipient support" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/56" uuid:"1da81e8f-9ea2-449e-9df9-9bb2078c7f49"]
+[description:"(bw)Is#57 - Signed and encrypted config files .. https:\/\/keyringer.pw\/trac\/ticket\/57" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"57" tracsummary:"Signed and encrypted config files" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/57" uuid:"113a5448-ccb8-40e1-af6e-e802420fe89c"]
+[description:"(bw)Is#60 - Secret padding .. https:\/\/keyringer.pw\/trac\/ticket\/60" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"60" tracsummary:"Secret padding" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/60" uuid:"1bfaca12-2a82-4d1f-8530-90e4c4236d32"]
+[description:"(bw)Is#61 - Incorporate features from pwd.sh .. https:\/\/keyringer.pw\/trac\/ticket\/61" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"61" tracsummary:"Incorporate features from pwd.sh" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/61" uuid:"04c7b325-6979-413c-b81c-516d5f919f25"]
+[description:"(bw)Is#66 - Puppet integration .. https:\/\/keyringer.pw\/trac\/ticket\/66" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"66" tracsummary:"Puppet integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/66" uuid:"ec4fd4c6-ca24-4406-8044-229ea6a2ae2f"]
+[description:"(bw)Is#68 - Abstract gpg and git .. https:\/\/keyringer.pw\/trac\/ticket\/68" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"68" tracsummary:"Abstract gpg and git" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/68" uuid:"2bda308d-c9ef-445e-a100-72334ed179f5"]
+[description:"(bw)Is#70 - Browser integration .. https:\/\/keyringer.pw\/trac\/ticket\/70" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"70" tracsummary:"Browser integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/70" uuid:"207f5359-5cb4-4f84-be5f-7170116c1c1f"]
+[description:"(bw)Is#71 - YAML store .. https:\/\/keyringer.pw\/trac\/ticket\/71" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"71" tracsummary:"YAML store" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/71" uuid:"60ba1846-bf3a-4271-aa45-bec2bb6ee209"]
+[description:"(bw)Is#73 - KRunner compatibility .. https:\/\/keyringer.pw\/trac\/ticket\/73" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"73" tracsummary:"KRunner compatibility" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/73" uuid:"1bda9b98-52e0-4009-8498-de8695aa326f"]
+[description:"(bw)Is#74 - Missing README file .. https:\/\/keyringer.pw\/trac\/ticket\/74" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"74" tracsummary:"Missing README file" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/74" uuid:"d179d02d-2ad4-41c1-9941-a19ef2a2fcdb"]
+[description:"(bw)Is#75 - Recipient error when using ~ on rep .. https:\/\/keyringer.pw\/trac\/ticket\/75" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"75" tracsummary:"Recipient error when using ~ on repository path" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/75" uuid:"4e0f7fbe-20a1-4c0e-ac02-14e277fa082f"]
+[annotation_1527005931:"@jamie - Results of additional debugging:I narrowed th..." annotation_1527005932:"@rhatto - Patch applied as commit {{{dbc0b92c6e32a0b9ca..." description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+[description:"(bw)Is#81 - Task manager .. https:\/\/keyringer.pw\/trac\/ticket\/81" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"81" tracsummary:"Task manager" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/81" uuid:"844e9955-b1be-42e4-988b-614963310da1"]
+[description:"(bw)Is#16 - ZSH completion upstream .. https:\/\/keyringer.pw\/trac\/ticket\/16" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"16" tracsummary:"ZSH completion upstream" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/16" uuid:"74452223-0df2-4de5-b54c-3cd6cb63c0e4"]
+[annotation_1527005931:"@rhatto - &open;http:\/\/openclipart.org\/detail\/159973\/padlock..." description:"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"24" tracsummary:"New logo" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/24" uuid:"25b918a5-a001-4fbd-8df0-6c07ddf331a1"]
+[description:"(bw)Is#28 - File extension discovery .. https:\/\/keyringer.pw\/trac\/ticket\/28" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"28" tracsummary:"File extension discovery" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/28" uuid:"6a4d8fdc-10b6-47d5-903e-2870c4e9a2ee"]
+[description:"(bw)Is#38 - Enhanced error verbosity .. https:\/\/keyringer.pw\/trac\/ticket\/38" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"38" tracsummary:"Enhanced error verbosity" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/38" uuid:"4013d068-f865-4ba8-bb1d-203b22ae1855"]
+[annotation_1527005931:"@rhatto - References: * &open;https:\/\/www.mail-archive.com\/..." description:"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"44" tracsummary:"Xclip error" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/44" uuid:"fa6f619c-de40-458f-899e-1f11a0a798df"]
+[description:"(bw)Is#51 - OneTime integration .. https:\/\/keyringer.pw\/trac\/ticket\/51" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"51" tracsummary:"OneTime integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/51" uuid:"477514ba-f9a9-45ce-b619-493fd94b85fe"]
+[description:"(bw)Is#52 - Plugin support .. https:\/\/keyringer.pw\/trac\/ticket\/52" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"52" tracsummary:"Plugin support" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/52" uuid:"a63bd01c-e74a-48ba-be69-e51a0b76f6d2"]
+[description:"(bw)Is#58 - Message board .. https:\/\/keyringer.pw\/trac\/ticket\/58" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"58" tracsummary:"Message board" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/58" uuid:"0c6acc3e-2945-49d6-8b72-89ed65354774"]
+[description:"(bw)Is#63 - Keyring name should not contain dot .. https:\/\/keyringer.pw\/trac\/ticket\/63" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"63" tracsummary:"Keyring name should not contain dot character" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/63" uuid:"9d66153a-7e69-47b1-a7bd-ff0e9307492d"]
+[description:"(bw)Is#23 - Portuguese translation .. https:\/\/keyringer.pw\/trac\/ticket\/23" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"23" tracsummary:"Portuguese translation" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/23" uuid:"44b209b3-1484-47cc-a392-af12ca293d89"]
+[description:"(bw)Is#42 - Mailing list .. https:\/\/keyringer.pw\/trac\/ticket\/42" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"42" tracsummary:"Mailing list" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/42" uuid:"0f507d88-d2d9-452d-bc04-d00ca562d2b7"]
+[description:"(bw)Is#59 - Hidden service howto .. https:\/\/keyringer.pw\/trac\/ticket\/59" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"59" tracsummary:"Hidden service howto" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/59" uuid:"10e30d99-7c65-45af-9d72-d67b93966e5f"]
+[description:"(bw)Is#67 - Document tips .. https:\/\/keyringer.pw\/trac\/ticket\/67" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"67" tracsummary:"Document tips" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/67" uuid:"e45c7e62-d550-437d-9393-b9944220cb67"]
+[description:"Build static HTML report from taskwarrior" entry:"1527010498" modified:"1527010498" project:"keyringer" status:"pending" uuid:"5a63f746-48b2-4a16-a61b-81e8bcaeae27"]
diff --git a/.task/taskrc b/.task/taskrc
new file mode 100644
index 0000000..83fc6c7
--- /dev/null
+++ b/.task/taskrc
@@ -0,0 +1,12 @@
+# Main
+data.location=/PATH/TO/keyringer/.task
+
+# Trac
+uda.tracurl.type=string
+uda.tracurl.label=Trac URL
+uda.tracnumber.type=numeric
+uda.tracnumber.label=Trac Number
+uda.traccomponent.type=string
+uda.traccomponent.label=Trac Component
+uda.tracsummary.type=string
+uda.tracsummary.label=Trac Summary
diff --git a/.task/undo.data b/.task/undo.data
new file mode 100644
index 0000000..27855a7
--- /dev/null
+++ b/.task/undo.data
@@ -0,0 +1,224 @@
+time 1527005928
+new [description:"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55" entry:"1527005928" modified:"1527005928" priority:"H" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"55" tracsummary:"Recryption error when using gpg-agent in text mode" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/55" uuid:"e2ad341b-5104-4e6d-ae43-7f4a3367431e"]
+---
+time 1527005928
+old [description:"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55" entry:"1527005928" modified:"1527005928" priority:"H" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"55" tracsummary:"Recryption error when using gpg-agent in text mode" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/55" uuid:"e2ad341b-5104-4e6d-ae43-7f4a3367431e"]
+new [annotation_1527005928:"@rhatto - Tried &open;changeset:9218a6d this fix&close; but withou..." description:"(bw)Is#55 - Recryption error when using gpg-age .. https:\/\/keyringer.pw\/trac\/ticket\/55" entry:"1527005928" modified:"1527005928" priority:"H" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"55" tracsummary:"Recryption error when using gpg-agent in text mode" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/55" uuid:"e2ad341b-5104-4e6d-ae43-7f4a3367431e"]
+---
+time 1527005928
+new [description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+---
+time 1527005928
+old [description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+new [annotation_1527005928:"@rhatto - We should also try file support at {{{ssss-sp..." description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+---
+time 1527005928
+old [annotation_1527005928:"@rhatto - We should also try file support at {{{ssss-sp..." description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+new [annotation_1527005928:"@rhatto - We should also try file support at {{{ssss-sp..." annotation_1527005929:"@rhatto - Secret sharing splits could be appended with ..." description:"(bw)Is#3 - Integration with ssss .. https:\/\/keyringer.pw\/trac\/ticket\/3" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"3" tracsummary:"Integration with ssss" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/3" uuid:"b1bcae6f-251d-422d-b1c0-48261617f681"]
+---
+time 1527005928
+new [description:"(bw)Is#4 - Enhanced help .. https:\/\/keyringer.pw\/trac\/ticket\/4" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"4" tracsummary:"Enhanced help" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/4" uuid:"b3603728-d283-4d31-8717-d2c51bfb0269"]
+---
+time 1527005928
+new [description:"(bw)Is#8 - Background color .. https:\/\/keyringer.pw\/trac\/ticket\/8" entry:"1527005928" modified:"1527005928" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"8" tracsummary:"Background color" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/8" uuid:"a5f4dcfb-788a-4718-ae85-2acd578e890e"]
+---
+time 1527005929
+new [description:"(bw)Is#15 - Make custom merge driver so that wh .. https:\/\/keyringer.pw\/trac\/ticket\/15" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"15" tracsummary:"Make custom merge driver so that when branches diverge they are recoverable" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/15" uuid:"3cda07e1-16fb-4589-ab5b-56f98fdff636"]
+---
+time 1527005929
+new [description:"(bw)Is#22 - Check if secret already exists .. https:\/\/keyringer.pw\/trac\/ticket\/22" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"22" tracsummary:"Check if secret already exists" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/22" uuid:"8b7c5761-3210-439c-b1f4-ef8e62398093"]
+---
+time 1527005929
+new [description:"(bw)Is#25 - Signed tags and commits .. https:\/\/keyringer.pw\/trac\/ticket\/25" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"25" tracsummary:"Signed tags and commits" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/25" uuid:"aadc7220-57b8-49e6-8fcc-5863b20a264e"]
+---
+time 1527005929
+new [description:"(bw)Is#29 - Use a memory buffer as a temporary .. https:\/\/keyringer.pw\/trac\/ticket\/29" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"29" tracsummary:"Use a memory buffer as a temporary storage" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/29" uuid:"d6920e01-2cb0-4679-bb16-33c25dcd0bd2"]
+---
+time 1527005929
+new [description:"(bw)Is#31 - Enhanced output .. https:\/\/keyringer.pw\/trac\/ticket\/31" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"31" tracsummary:"Enhanced output" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/31" uuid:"6d04cbfd-f20e-4f0f-9e77-ae4118b92ed2"]
+---
+time 1527005929
+new [description:"(bw)Is#33 - Incorporate features from pass .. https:\/\/keyringer.pw\/trac\/ticket\/33" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"33" tracsummary:"Incorporate features from pass" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/33" uuid:"5361cd07-a69b-44c3-a82e-00aa312a87a8"]
+---
+time 1527005929
+new [description:"(bw)Is#35 - Integration with git-remote-gcrypt .. https:\/\/keyringer.pw\/trac\/ticket\/35" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"35" tracsummary:"Integration with git-remote-gcrypt" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/35" uuid:"3998fa57-20e3-4014-a63d-c49e9a881a6e"]
+---
+time 1527005929
+new [description:"(bw)Is#36 - Threat model .. https:\/\/keyringer.pw\/trac\/ticket\/36" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"36" tracsummary:"Threat model" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/36" uuid:"9bfbe108-ddec-45be-a220-ffba98987db3"]
+---
+time 1527005929
+new [description:"(bw)Is#39 - Check action .. https:\/\/keyringer.pw\/trac\/ticket\/39" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"39" tracsummary:"Check action" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/39" uuid:"0eb77586-0c3f-4453-ab3f-c20cc5003496"]
+---
+time 1527005929
+new [description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+---
+time 1527005929
+old [description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+new [annotation_1527005929:"@rhatto - &open;https:\/\/www.canarywatch.org\/ Canary Watch&close;." description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+---
+time 1527005929
+old [annotation_1527005929:"@rhatto - &open;https:\/\/www.canarywatch.org\/ Canary Watch&close;." description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+new [annotation_1527005929:"@rhatto - &open;https:\/\/www.canarywatch.org\/ Canary Watch&close;." annotation_1527005930:"@rhatto - &open;https:\/\/firstlook.org\/code\/project\/autocanar..." description:"(bw)Is#40 - Canary .. https:\/\/keyringer.pw\/trac\/ticket\/40" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"40" tracsummary:"Canary" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/40" uuid:"7964ac91-119b-44b9-825e-ca0b3b19c0b0"]
+---
+time 1527005929
+new [description:"(bw)Is#43 - Signed recipients .. https:\/\/keyringer.pw\/trac\/ticket\/43" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"43" tracsummary:"Signed recipients" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/43" uuid:"4ca4703e-2998-48f8-926c-e7217d72f71c"]
+---
+time 1527005929
+new [description:"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"45" tracsummary:"Support for git-annex" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/45" uuid:"7ffce59f-429a-4d80-8df7-82c1fc905a3e"]
+---
+time 1527005929
+old [description:"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"45" tracsummary:"Support for git-annex" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/45" uuid:"7ffce59f-429a-4d80-8df7-82c1fc905a3e"]
+new [annotation_1527005929:"@rhatto - Maybe we just need the following actions:{{{k..." description:"(bw)Is#45 - Support for git-annex .. https:\/\/keyringer.pw\/trac\/ticket\/45" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"45" tracsummary:"Support for git-annex" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/45" uuid:"7ffce59f-429a-4d80-8df7-82c1fc905a3e"]
+---
+time 1527005929
+new [description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+---
+time 1527005930
+old [description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005929" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+new [annotation_1527005930:"@rhatto - We could consider a set of actions that would..." description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+---
+time 1527005930
+old [annotation_1527005930:"@rhatto - We could consider a set of actions that would..." description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+new [annotation_1527005930:"@rhatto - We could consider a set of actions that would..." annotation_1527005931:"@rhatto - We also might consider the &open;ticket:39 check a..." description:"(bw)Is#46 - Key import\/export .. https:\/\/keyringer.pw\/trac\/ticket\/46" entry:"1527005929" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"46" tracsummary:"Key import\/export" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/46" uuid:"19fe2441-6563-4edd-8947-0b74aff05994"]
+---
+time 1527005930
+new [description:"(bw)Is#47 - Report on secret's encryption dates .. https:\/\/keyringer.pw\/trac\/ticket\/47" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"47" tracsummary:"Report on secret's encryption dates" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/47" uuid:"75775565-5adb-476b-aa8d-f78fd02e894e"]
+---
+time 1527005930
+new [description:"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"48" tracsummary:"Consider --compress-algo NULL" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/48" uuid:"8d053a47-1f31-4895-b021-f79330dcb6b9"]
+---
+time 1527005930
+old [description:"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"48" tracsummary:"Consider --compress-algo NULL" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/48" uuid:"8d053a47-1f31-4895-b021-f79330dcb6b9"]
+new [annotation_1527005930:"@rhatto - If that's the case, then it should be easy to..." description:"(bw)Is#48 - Consider --compress-algo NULL .. https:\/\/keyringer.pw\/trac\/ticket\/48" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"48" tracsummary:"Consider --compress-algo NULL" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/48" uuid:"8d053a47-1f31-4895-b021-f79330dcb6b9"]
+---
+time 1527005930
+new [description:"(bw)Is#54 - Check recipients before decrypt\/rec .. https:\/\/keyringer.pw\/trac\/ticket\/54" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"54" tracsummary:"Check recipients before decrypt\/recrypt" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/54" uuid:"536f60ce-db9c-4f3c-b608-dcf136d466f4"]
+---
+time 1527005930
+new [description:"(bw)Is#56 - Hidden recipient support .. https:\/\/keyringer.pw\/trac\/ticket\/56" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"56" tracsummary:"Hidden recipient support" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/56" uuid:"1da81e8f-9ea2-449e-9df9-9bb2078c7f49"]
+---
+time 1527005930
+new [description:"(bw)Is#57 - Signed and encrypted config files .. https:\/\/keyringer.pw\/trac\/ticket\/57" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"57" tracsummary:"Signed and encrypted config files" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/57" uuid:"113a5448-ccb8-40e1-af6e-e802420fe89c"]
+---
+time 1527005930
+new [description:"(bw)Is#60 - Secret padding .. https:\/\/keyringer.pw\/trac\/ticket\/60" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"60" tracsummary:"Secret padding" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/60" uuid:"1bfaca12-2a82-4d1f-8530-90e4c4236d32"]
+---
+time 1527005930
+new [description:"(bw)Is#61 - Incorporate features from pwd.sh .. https:\/\/keyringer.pw\/trac\/ticket\/61" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"61" tracsummary:"Incorporate features from pwd.sh" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/61" uuid:"04c7b325-6979-413c-b81c-516d5f919f25"]
+---
+time 1527005930
+new [description:"(bw)Is#66 - Puppet integration .. https:\/\/keyringer.pw\/trac\/ticket\/66" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"66" tracsummary:"Puppet integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/66" uuid:"ec4fd4c6-ca24-4406-8044-229ea6a2ae2f"]
+---
+time 1527005930
+new [description:"(bw)Is#68 - Abstract gpg and git .. https:\/\/keyringer.pw\/trac\/ticket\/68" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"68" tracsummary:"Abstract gpg and git" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/68" uuid:"2bda308d-c9ef-445e-a100-72334ed179f5"]
+---
+time 1527005930
+new [description:"(bw)Is#70 - Browser integration .. https:\/\/keyringer.pw\/trac\/ticket\/70" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"70" tracsummary:"Browser integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/70" uuid:"207f5359-5cb4-4f84-be5f-7170116c1c1f"]
+---
+time 1527005930
+new [description:"(bw)Is#71 - YAML store .. https:\/\/keyringer.pw\/trac\/ticket\/71" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"71" tracsummary:"YAML store" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/71" uuid:"60ba1846-bf3a-4271-aa45-bec2bb6ee209"]
+---
+time 1527005930
+new [description:"(bw)Is#73 - KRunner compatibility .. https:\/\/keyringer.pw\/trac\/ticket\/73" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"73" tracsummary:"KRunner compatibility" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/73" uuid:"1bda9b98-52e0-4009-8498-de8695aa326f"]
+---
+time 1527005930
+new [description:"(bw)Is#74 - Missing README file .. https:\/\/keyringer.pw\/trac\/ticket\/74" entry:"1527005930" modified:"1527005930" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"74" tracsummary:"Missing README file" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/74" uuid:"d179d02d-2ad4-41c1-9941-a19ef2a2fcdb"]
+---
+time 1527005931
+new [description:"(bw)Is#75 - Recipient error when using ~ on rep .. https:\/\/keyringer.pw\/trac\/ticket\/75" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"75" tracsummary:"Recipient error when using ~ on repository path" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/75" uuid:"4e0f7fbe-20a1-4c0e-ac02-14e277fa082f"]
+---
+time 1527005931
+new [description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+---
+time 1527005931
+old [description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+new [annotation_1527005931:"@jamie - Results of additional debugging:I narrowed th..." description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+---
+time 1527005931
+old [annotation_1527005931:"@jamie - Results of additional debugging:I narrowed th..." description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+new [annotation_1527005931:"@jamie - Results of additional debugging:I narrowed th..." annotation_1527005932:"@rhatto - Patch applied as commit {{{dbc0b92c6e32a0b9ca..." description:"(bw)Is#80 - possible race condition .. https:\/\/keyringer.pw\/trac\/ticket\/80" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"80" tracsummary:"possible race condition" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/80" uuid:"0c71e8fd-29f7-47bd-b8b3-c5899693693b"]
+---
+time 1527005931
+new [description:"(bw)Is#81 - Task manager .. https:\/\/keyringer.pw\/trac\/ticket\/81" entry:"1527005931" modified:"1527005931" priority:"M" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"81" tracsummary:"Task manager" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/81" uuid:"844e9955-b1be-42e4-988b-614963310da1"]
+---
+time 1527005931
+new [description:"(bw)Is#16 - ZSH completion upstream .. https:\/\/keyringer.pw\/trac\/ticket\/16" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"packaging" tracnumber:"16" tracsummary:"ZSH completion upstream" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/16" uuid:"74452223-0df2-4de5-b54c-3cd6cb63c0e4"]
+---
+time 1527005931
+new [description:"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"24" tracsummary:"New logo" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/24" uuid:"25b918a5-a001-4fbd-8df0-6c07ddf331a1"]
+---
+time 1527005931
+old [description:"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"24" tracsummary:"New logo" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/24" uuid:"25b918a5-a001-4fbd-8df0-6c07ddf331a1"]
+new [annotation_1527005931:"@rhatto - &open;http:\/\/openclipart.org\/detail\/159973\/padlock..." description:"(bw)Is#24 - New logo .. https:\/\/keyringer.pw\/trac\/ticket\/24" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"24" tracsummary:"New logo" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/24" uuid:"25b918a5-a001-4fbd-8df0-6c07ddf331a1"]
+---
+time 1527005931
+new [description:"(bw)Is#28 - File extension discovery .. https:\/\/keyringer.pw\/trac\/ticket\/28" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"28" tracsummary:"File extension discovery" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/28" uuid:"6a4d8fdc-10b6-47d5-903e-2870c4e9a2ee"]
+---
+time 1527005931
+new [description:"(bw)Is#38 - Enhanced error verbosity .. https:\/\/keyringer.pw\/trac\/ticket\/38" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"38" tracsummary:"Enhanced error verbosity" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/38" uuid:"4013d068-f865-4ba8-bb1d-203b22ae1855"]
+---
+time 1527005931
+new [description:"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"44" tracsummary:"Xclip error" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/44" uuid:"fa6f619c-de40-458f-899e-1f11a0a798df"]
+---
+time 1527005931
+old [description:"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"44" tracsummary:"Xclip error" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/44" uuid:"fa6f619c-de40-458f-899e-1f11a0a798df"]
+new [annotation_1527005931:"@rhatto - References: * &open;https:\/\/www.mail-archive.com\/..." description:"(bw)Is#44 - Xclip error .. https:\/\/keyringer.pw\/trac\/ticket\/44" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"44" tracsummary:"Xclip error" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/44" uuid:"fa6f619c-de40-458f-899e-1f11a0a798df"]
+---
+time 1527005931
+new [description:"(bw)Is#51 - OneTime integration .. https:\/\/keyringer.pw\/trac\/ticket\/51" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"security" tracnumber:"51" tracsummary:"OneTime integration" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/51" uuid:"477514ba-f9a9-45ce-b619-493fd94b85fe"]
+---
+time 1527005931
+new [description:"(bw)Is#52 - Plugin support .. https:\/\/keyringer.pw\/trac\/ticket\/52" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"52" tracsummary:"Plugin support" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/52" uuid:"a63bd01c-e74a-48ba-be69-e51a0b76f6d2"]
+---
+time 1527005931
+new [description:"(bw)Is#58 - Message board .. https:\/\/keyringer.pw\/trac\/ticket\/58" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"58" tracsummary:"Message board" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/58" uuid:"0c6acc3e-2945-49d6-8b72-89ed65354774"]
+---
+time 1527005931
+new [description:"(bw)Is#63 - Keyring name should not contain dot .. https:\/\/keyringer.pw\/trac\/ticket\/63" entry:"1527005931" modified:"1527005931" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"63" tracsummary:"Keyring name should not contain dot character" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/63" uuid:"9d66153a-7e69-47b1-a7bd-ff0e9307492d"]
+---
+time 1527005932
+new [description:"(bw)Is#23 - Portuguese translation .. https:\/\/keyringer.pw\/trac\/ticket\/23" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"23" tracsummary:"Portuguese translation" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/23" uuid:"44b209b3-1484-47cc-a392-af12ca293d89"]
+---
+time 1527005932
+new [description:"(bw)Is#42 - Mailing list .. https:\/\/keyringer.pw\/trac\/ticket\/42" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"42" tracsummary:"Mailing list" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/42" uuid:"0f507d88-d2d9-452d-bc04-d00ca562d2b7"]
+---
+time 1527005932
+new [description:"(bw)Is#59 - Hidden service howto .. https:\/\/keyringer.pw\/trac\/ticket\/59" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"59" tracsummary:"Hidden service howto" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/59" uuid:"10e30d99-7c65-45af-9d72-d67b93966e5f"]
+---
+time 1527005932
+new [description:"(bw)Is#67 - Document tips .. https:\/\/keyringer.pw\/trac\/ticket\/67" entry:"1527005932" modified:"1527005932" priority:"L" project:"keyringer" status:"pending" traccomponent:"usability" tracnumber:"67" tracsummary:"Document tips" tracurl:"https:\/\/keyringer.pw\/trac\/ticket\/67" uuid:"e45c7e62-d550-437d-9393-b9944220cb67"]
+---
+time 1527010212
+new [description:"OpenBSD patches" entry:"1527010212" modified:"1527010212" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527010445
+old [description:"OpenBSD patches" entry:"1527010212" modified:"1527010212" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527010445" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527010498
+new [description:"Build static HTML report from taskwarrior" entry:"1527010498" modified:"1527010498" project:"keyringer" status:"pending" uuid:"5a63f746-48b2-4a16-a61b-81e8bcaeae27"]
+---
+time 1527691207
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527010445" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527691207" project:"keyringer" start:"1527691207" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527700595
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527691207" project:"keyringer" start:"1527691207" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527700595" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527701726
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527700595" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701726" project:"keyringer" status:"pending" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527701742
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701726" project:"keyringer" status:"pending" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701742" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527701759
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701742" project:"keyringer" status:"pending" tags:"important" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701759" project:"keyringer" status:"pending" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
+time 1527702290
+old [description:"Merge OpenBSD patches" entry:"1527010212" modified:"1527701759" project:"keyringer" status:"pending" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+new [description:"Merge OpenBSD patches" end:"1527702290" entry:"1527010212" modified:"1527702290" project:"keyringer" status:"completed" uuid:"01592365-2285-4c2e-8ee6-2fcc61eaa5b2"]
+---
diff --git a/ChangeLog b/ChangeLog
index 69a4751..6487c06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+2017-11-23 - 0.5.3 - Silvio Rhatto <rhatto@riseup.net>
+ Grégoire Jadi <gjadi@omecha.info>
+ Jérémie Courrèges-Anglas <jca@wxcvbn.org>
+
+ Clean empty directories once the files are removed with shred
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Add MANDIR variable and use it
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Replace install --mode=MODE by install -m MODE
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Replace head -c by dd at pwgen
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Fix mktemp template for POSIX.1 mktemp
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Add support to "gshred" and "rm -P" to safely delete a file
+ (patch thanks to Grégoire Jadi and
+ testing/discussion thanks also to Jérémie Courrèges-Anglas)
+
+ Automatically generate passphrase at genkeys_gpg
+
+ Increase default password size at pwgen
+
2017-11-03 - 0.5.2 - Silvio Rhatto <rhatto@riseup.net>
Fixed incorrect exit statement on append, thanks jamie (#79)
diff --git a/Makefile b/Makefile
index 5d46fc6..b1c347a 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@
PACKAGE = keyringer
VERSION = $(shell ./keyringer | head -n 1 | cut -d ' ' -f 2)
PREFIX ?= /usr/local
+MANDIR ?=$(PREFIX)/share/man
ARCHIVE ?= tarballs
INSTALL = /usr/bin/install
@@ -24,25 +25,25 @@ clean:
find . -name *~ | xargs rm -f # clean local backups
install_lib:
- $(INSTALL) -D --mode=0755 lib/keyringer/functions $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/functions
- $(INSTALL) -D --mode=0755 -d lib/keyringer/actions $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/actions
- $(INSTALL) -D --mode=0755 lib/keyringer/actions/* $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/actions
- $(INSTALL) -D --mode=0755 -d share/keyringer/editors $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/editors
- $(INSTALL) -D --mode=0644 share/keyringer/editors/* $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/editors
+ $(INSTALL) -D -m 0755 lib/keyringer/functions $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/functions
+ $(INSTALL) -D -m 0755 -d lib/keyringer/actions $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/actions
+ $(INSTALL) -D -m 0755 lib/keyringer/actions/* $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/actions
+ $(INSTALL) -D -m 0755 -d share/keyringer/editors $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/editors
+ $(INSTALL) -D -m 0644 share/keyringer/editors/* $(DESTDIR)/$(PREFIX)/lib/$(PACKAGE)/editors
install_bin:
- $(INSTALL) -D --mode=0755 keyringer $(DESTDIR)/$(PREFIX)/bin/keyringer
+ $(INSTALL) -D -m 0755 keyringer $(DESTDIR)/$(PREFIX)/bin/keyringer
install_doc:
- $(INSTALL) -D --mode=0644 index.md $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/README.md
- $(INSTALL) -D --mode=0644 LICENSE $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/LICENSE
+ $(INSTALL) -D -m 0644 index.md $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/README.md
+ $(INSTALL) -D -m 0644 LICENSE $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/LICENSE
install_man:
- $(INSTALL) -D --mode=0644 share/man/keyringer.1 $(DESTDIR)/$(PREFIX)/share/man/man1/keyringer.1
+ $(INSTALL) -D -m 0644 share/man/keyringer.1 $(DESTDIR)/$(MANDIR)/man1/keyringer.1
install_completion:
- $(INSTALL) -D --mode=0644 lib/keyringer/completions/bash/keyringer $(DESTDIR)/$(PREFIX)/share/bash-completion/completions/keyringer
- $(INSTALL) -D --mode=0644 lib/keyringer/completions/zsh/_keyringer $(DESTDIR)/$(PREFIX)/share/zsh/vendor-completions/_keyringer
+ $(INSTALL) -D -m 0644 lib/keyringer/completions/bash/keyringer $(DESTDIR)/$(PREFIX)/share/bash-completion/completions/keyringer
+ $(INSTALL) -D -m 0644 lib/keyringer/completions/zsh/_keyringer $(DESTDIR)/$(PREFIX)/share/zsh/vendor-completions/_keyringer
install: clean
@make install_lib install_bin install_doc install_man install_completion
@@ -77,11 +78,11 @@ release:
debian:
git checkout debian
- git-import-orig --upstream-vcs-tag=$(VERSION) $(ARCHIVE)/keyringer-$(VERSION).tar.bz2
+ gbp import-orig --upstream-vcs-tag=$(VERSION) $(ARCHIVE)/keyringer-$(VERSION).tar.bz2
# Fine tune debian/changelog prepared by git-dch
dch -e
git commit -a -m "Updating debian/changelog"
- git-buildpackage --git-tag-only --git-sign-tags
+ gbp buildpackage --git-tag-only --git-sign-tags
web:
@ikiwiki --setup ikiwiki.setup
diff --git a/development.md b/development.md
index 2349c84..4fb1841 100644
--- a/development.md
+++ b/development.md
@@ -43,7 +43,7 @@ Push everything:
Build the package from the debian Git branch:
- git-buildpackage
+ gbp buildpackage
Run lintian (or [add it to your pbuilder hooks](http://askubuntu.com/questions/140697/how-do-i-run-lintian-from-pbuilder-dist)):
@@ -60,7 +60,7 @@ Cleanup symlink:
Notes:
-* `git-import-orig` takes care of running `pristine-tar commit`, of merging of the tag and orig tarball into the upstream branch, and then it merges the result into the debian branch. With the above configuration, it also runs git-dch to do the bulk of the work in `debian/changelog`.
+* `gbp import-orig` takes care of running `pristine-tar commit`, of merging of the tag and orig tarball into the upstream branch, and then it merges the result into the debian branch. With the above configuration, it also runs git-dch to do the bulk of the work in `debian/changelog`.
* To build a development package, checkout the debian branch, merge master, run `git-dch --auto --snapshot` and build.
Packaging workflow
diff --git a/index.md b/index.md
index 6c1849a..8984ac1 100644
--- a/index.md
+++ b/index.md
@@ -6,7 +6,8 @@ commands to encrypt, decrypt, recrypt, create key pairs, etc.
- Project page: [https://keyringer.pw](https://keyringer.pw)
- Manpage: [keyringer.1](share/man/keyringer.1)
- License: [GPLv3+](LICENSE)
-- Issue tracker: [https://keyringer.pw/trac](https://keyringer.pw/trac)
+- Current issue tracker: [see tasks](/tasks).
+- Archived issue tracker: [https://keyringer.pw/trac](https://keyringer.pw/trac)
- Tor hidden service: [http://4qt45wbulqipigwa.onion](http://4qt45wbulqipigwa.onion)
- Releases: [https://keyringer.pw/releases](releases)
- Contact: rhatto at riseup.net
diff --git a/keyringer b/keyringer
index 6d4b035..41b34ff 100755
--- a/keyringer
+++ b/keyringer
@@ -140,7 +140,7 @@ function keyringer_dispatch {
# Config
NAME="keyringer"
-KEYRINGER_VERSION="0.5.2"
+KEYRINGER_VERSION="0.5.3"
CONFIG_VERSION="0.1"
CONFIG_BASE="$HOME/.$NAME"
CONFIG="$CONFIG_BASE/config"
diff --git a/lib/keyringer/actions/genkeys b/lib/keyringer/actions/genkeys
index 634c847..deacbfd 100755
--- a/lib/keyringer/actions/genkeys
+++ b/lib/keyringer/actions/genkeys
@@ -34,23 +34,25 @@ function genkeys_ssh {
function genkeys_gpg {
echo "Make sure that $KEYDIR is atop of an encrypted volume."
- passphrase="no"
- passphrase_confirm="confirm"
+ #passphrase="no"
+ #passphrase_confirm="confirm"
- while [ "$passphrase" != "$passphrase_confirm" ]; do
- read -s -p "Enter password for the private key: " passphrase
- printf "\n"
- read -s -p "Enter password again: " passphrase_confirm
- printf "\n"
+ #while [ "$passphrase" != "$passphrase_confirm" ]; do
+ # read -s -p "Enter password for the private key: " passphrase
+ # printf "\n"
+ # read -s -p "Enter password again: " passphrase_confirm
+ # printf "\n"
- if [ "$passphrase" != "$passphrase_confirm" ]; then
- echo "Password don't match."
- fi
- done
+ # if [ "$passphrase" != "$passphrase_confirm" ]; then
+ # echo "Password don't match."
+ # fi
+ #done
+
+ keyringer_exec pwgen "$BASEDIR" "$FILE.passwd"
+ passphrase="`keyringer_exec decrypt "$BASEDIR" "$FILE.passwd"`"
# TODO: insert random bytes
# TODO: custom Name-Comment and Name-Email
- # TODO: allow for empty passphrases
$GPG --homedir "$TMPWORK" --gen-key --batch <<EOF
Key-Type: RSA
Key-Length: 4096
@@ -68,8 +70,8 @@ EOF
$GPG --armor --homedir "$TMPWORK" --export-secret-keys | keyringer_exec encrypt "$BASEDIR" "$FILE"
echo "Encrypting public key into keyringer..."
$GPG --armor --homedir "$TMPWORK" --export | keyringer_exec encrypt "$BASEDIR" "$FILE.pub"
- echo "Encrypting passphrase into keyringer..."
- echo "Passphrase for $FILE: $passphrase" | keyringer_exec encrypt "$BASEDIR" "$FILE.passwd"
+ #echo "Encrypting passphrase into keyringer..."
+ #echo "Passphrase for $FILE: $passphrase" | keyringer_exec encrypt "$BASEDIR" "$FILE.passwd"
if [ ! -z "$OUTFILE" ]; then
mkdir -p `dirname $OUTFILE`
diff --git a/lib/keyringer/actions/pwgen b/lib/keyringer/actions/pwgen
index 3c03681..e1e8947 100755
--- a/lib/keyringer/actions/pwgen
+++ b/lib/keyringer/actions/pwgen
@@ -13,12 +13,12 @@ FILE="$2"
# Generates a random passphrase
function keyringer_pwgen {
- ENTROPY_BYTES=${1:-20} # in bytes
+ ENTROPY_BYTES=${1:-40} # in bytes
ENTROPY_SOURCE="${ENTROPY_SOURCE:-/dev/urandom}"
# Strip possible newlines if output is wrapped.
# Also strip trailing = signs as they add nothing to the password's entropy.
- head -c $ENTROPY_BYTES $ENTROPY_SOURCE | base64 | tr -d '\n='
+ dd bs=1 count=$ENTROPY_BYTES if=$ENTROPY_SOURCE status=none | base64 | tr -d '\n='
echo
}
diff --git a/lib/keyringer/functions b/lib/keyringer/functions
index 6f9a5e3..d529daf 100755
--- a/lib/keyringer/functions
+++ b/lib/keyringer/functions
@@ -161,7 +161,7 @@ function keyringer_set_tmpfile {
if [ -z "$1" ]; then
template="$tmp/keyringer.XXXXXXXXXX"
else
- template="$tmp/XXXXXXXXXX.$1"
+ template="$tmp/keyringer.$1.XXXXXXXXXX"
fi
mkdir -p "$tmp"
@@ -192,27 +192,36 @@ function keyringer_shred {
return
fi
+ # Create our test target
+ local rmtest="$(mktemp)"
+
# Get shred implementation
if which wipe &> /dev/null; then
tool="wipe"
elif which shred &> /dev/null; then
tool="shred"
+ elif rm -P "${rmtest}" &> /dev/null; then
+ tool="rm -P"
else
# Worst implementation
message="WARNING $message"
tool="rm"
fi
+ # Cleanup in case "rm -P" is never called or -P flag is unsupported
+ rm -f "${rmtest}"
+
echo "$message $path using $tool..."
if [ -d "$path" ]; then
- if [ "$tool" == "wipe" ] || [ "$tool" == "rm" ]; then
+ if [ "$tool" == "wipe" ] || [ "$tool" == "rm" ] || [ "$tool" == "rm -P" ]; then
$tool -rf $path
else
- find $path -exec $tool -uf {} \;
+ find $path -type f -exec $tool -uf {} \;
+ find $path -depth -type d -exec rmdir {} \;
fi
else
- if [ "$tool" == "wipe" ] || [ "$tool" == "rm" ]; then
+ if [ "$tool" == "wipe" ] || [ "$tool" == "rm" ] || [ "$tool" == "rm -P" ]; then
$tool -f "$path"
else
$tool -uf "$path"
diff --git a/tasks b/tasks
new file mode 120000
index 0000000..c2a8832
--- /dev/null
+++ b/tasks
@@ -0,0 +1 @@
+.task \ No newline at end of file
diff --git a/tasks.md b/tasks.md
new file mode 100644
index 0000000..17f8de1
--- /dev/null
+++ b/tasks.md
@@ -0,0 +1,32 @@
+[[!meta title="Keyringer Issue Tracker"]]
+
+## Using
+
+Current issue tracker: [Taskwarrior](https://taskwarrior.org/) with data stored at `tasks/` folder.
+
+ sudo apt install taskwarrior
+ task rc.data.location=tasks list
+
+## Migration from Trac
+
+### Server side
+
+ sudo apt install trac-xmlrpc
+ trac-admin . config set components tracrpc.* enabled
+ trac-admin . permission add authenticated XML_RPC
+
+## Client side
+
+* Edit `.task/{taskrc,bugwarriorrc}` accordingly.
+* Import tickets:
+
+ BUGWARRIORRC=.task/bugwarriorrc bugwarrior-pull
+
+### References
+
+* https://bugwarrior.readthedocs.io/en/latest/common_configuration.html#envvar-BUGWARRIORRC
+* https://bugwarrior.readthedocs.io/en/latest/services/trac.html
+* https://bugwarrior.readthedocs.io/en/latest/configuration.html#example-configuration
+* https://bugwarrior.readthedocs.io/en/latest/using.html
+* https://trac.edgewall.org/wiki/TracPlugins
+* https://trac-hacks.org/wiki/XmlRpcPlugin