Commit Graph

210 Commits

Author SHA1 Message Date
Solderpunk fecd46378c Use current UTC time for comparison against certificate validity. Closes #14. Thanks, mozz! 2020-05-28 21:01:04 +02:00
Vee e558c80740 Add `abbrevs` command
It lists all available AV-98 command abbreviations.
2020-05-27 09:16:22 -04:00
Solderpunk dbe08ee787 Another silly bug fix, closes #12. 2020-05-27 09:00:42 +02:00
Solderpunk 49531bfb25 Fix silly copy/paste bug. Closes #11. 2020-05-27 08:57:44 +02:00
Solderpunk a3fd543aa6 Correctly test individual names, not Common Name over and over. 2020-05-23 17:20:26 +02:00
Solderpunk 16cf9fecb6 Don't crash when cert has no Common Name. 2020-05-23 17:13:30 +02:00
Solderpunk 94e8abe934 Slightly better wording around certs. 2020-05-23 13:35:13 +02:00
Solderpunk 2c7e6502f8 Fix umask call. 2020-05-23 13:24:39 +02:00
Solderpunk c48c85b5e1 Notify upon creation of config directory. 2020-05-23 13:18:37 +02:00
Solderpunk 68d5f9b42e Set umask so that config directory is private. 2020-05-23 13:17:12 +02:00
Solderpunk 8945fa4f7e Don't follow cross-domain redirects automatically. 2020-05-23 12:53:20 +02:00
Solderpunk 7a3f1c77a5 Present expiration information about previous certificates in TOFU warning messages. 2020-05-23 12:53:02 +02:00
Solderpunk e455d2ec85 Actually create a missing config directory! 2020-05-22 23:24:49 +02:00
Solderpunk a68e092593 Add option to toggle between CA and TOFU certificate validation. 2020-05-19 23:14:09 +02:00
Solderpunk ec07491578 Check alternative subject names. 2020-05-17 22:36:10 +02:00
Solderpunk 094e3117c4 Better reporting of certificate errors. 2020-05-17 22:36:00 +02:00
Solderpunk 9ce8d2481a Use cryptography library to do better certificate checking, if it's available. 2020-05-17 20:38:06 +02:00
Solderpunk ca1a0a62e6 Cache certificates to disk in the expectation of more advanced cert wrangling in future. 2020-05-17 18:35:35 +02:00
Solderpunk 68e55d245a Add AV-98 contributors, in place of VF-1 contributors. 2020-05-17 17:57:34 +02:00
Solderpunk 991de05512 Immediately commit all changes to the TOFU DB, so it gets unlocked and multiple clients can access it at once. 2020-05-17 14:02:36 +02:00
Solderpunk 13f885c226 Make transient clients expire after 1 day, not 365! 2020-05-17 12:18:09 +02:00
Solderpunk d1412377da Initial implementation of TOFU security model. 2020-05-16 18:58:53 +02:00
jprjr 78e0134c8a spec states meta max length is 1024 2020-05-16 13:59:05 +00:00
jprjr 0b79cd174f enforce a maximum header line length 2020-05-16 13:58:33 +00:00
Vee c174836159 Add command to search GUS 2020-05-15 07:38:51 -04:00
Solderpunk d828965979 Fix bug introduced when refactoring rcfile path wrangling. 2020-05-14 09:37:12 +02:00
Solderpunk 08bc6e2102 Don't do client certificates in restricted mode. 2020-05-12 22:23:22 +02:00
Solderpunk 8af6d9e478 Better presentation of query prompts. 2020-05-12 22:00:35 +02:00
Solderpunk 74d8511474 Properly escape query text before putting it into a URL. 2020-05-12 22:00:17 +02:00
Solderpunk 42e81ee859 Don't assume a gopher-to-gemini proxy is running on localhost by default. 2020-05-12 21:20:36 +02:00
Solderpunk a05ecfad4f Add easy loading of previously generated certs. 2020-05-11 23:27:48 +02:00
Solderpunk 676ab85a9e Add support for transient client certificates. 2020-05-11 22:33:04 +02:00
Solderpunk cf92e12653 Make locations of files more consistent. 2020-05-10 22:51:33 +02:00
Solderpunk 0d49b3e859 Put bookmark and rc files in same location as certificates. 2020-05-10 18:53:31 +02:00
Solderpunk 34cfa54de6 Tiny tweak to Macros -> Patlabor theme change. :) 2020-05-10 18:47:07 +02:00
Solderpunk 94e796ee5e Opt out of transient certs for now, better messaging about certificates. 2020-05-10 18:46:16 +02:00
Solderpunk e0552df853 Add support for generating client certs (if openssl is installed). 2020-05-10 17:25:03 +02:00
Solderpunk d4e9feebc5 Small bugfix. 2020-05-10 17:00:30 +02:00
Solderpunk 24563acf6d Give 'cert' command a menu interface, and trigger a similar interface in response to status codes 6x. 2020-05-10 16:09:54 +02:00
Solderpunk b272a563cb Use ansiwrap if available. 2020-05-10 15:02:24 +02:00
Solderpunk 28cf34e585 Add version info. Closes #1. 2020-05-10 14:34:48 +02:00
Solderpunk d8ef677ab1 Make sure supplied filenames exist. 2020-05-10 14:32:41 +02:00
Solderpunk cbb7b3fd6c Offer to reload previously used certificates for domains visited earlier. 2020-05-10 14:19:12 +02:00
Solderpunk d04c472600 Reduce code duplication. 2020-05-10 14:17:35 +02:00
Solderpunk cd2faaa958 Fix input parsing bug. 2020-05-10 14:17:20 +02:00
Solderpunk 6cb9f6a65e Nicer prompts. 2020-05-10 14:17:07 +02:00
Solderpunk 3207f8b382 Reduce code duplication. 2020-05-10 13:48:25 +02:00
Solderpunk 6bb2e20e69 Try to prevent 'certificate leaks' when visiting a new domain with an active client cert. 2020-05-10 13:44:40 +02:00
Solderpunk a2aff0d2a5 Move client certificate details out of the options dictionary and into their own, so that the 'cert' and 'set' commands don't become parallel interfaces to the same config. 2020-05-10 12:59:26 +02:00
Solderpunk 6d4c8e2dc9 First stab at putting an interactive interface on client certificates. 2020-05-10 12:35:46 +02:00
Solderpunk f6f0c5d34a Various inscrutible TLS changes. 2020-04-12 21:20:29 +02:00
Solderpunk 8b3e77fa41 Add restricted mode for gemini.circumlunar.space kiosk. 2020-04-07 22:46:05 +02:00
Solderpunk 8e5e175a7e Fix TLS for Python 3.8. See #6. 2020-04-02 22:15:39 +02:00
Solderpunk c934237cbe Enhance bookmarks command to accept a numeric index. Closes #4. 2020-03-24 20:41:37 +01:00
Michael Lazar b078e4315d Add support for TLS client certificates 2020-03-22 22:12:00 -04:00
Solderpunk a701145459 Handle unorderd items and headings. 2020-03-07 21:30:34 +01:00
Solderpunk 7f89b94f25 Handle preformatted content. 2020-03-07 21:11:49 +01:00
Solderpunk 6c017f3b96 Wrap long lines. 2020-02-03 21:34:17 +01:00
Solderpunk c0f4c8eae4 Open HTTP(S) links in the system browser. 2019-11-05 19:58:04 +02:00
Solderpunk 0fdf9ac473 Don't clobber https scheme of absolute URLs when normalising. 2019-11-05 19:57:29 +02:00
Solderpunk dc6c64c741 Fix redirect logic, and handle permanent redirects. 2019-10-15 22:12:32 +03:00
Solderpunk 8c5c779415 Permit manual control of redirects. 2019-10-14 19:47:02 +03:00
Solderpunk a0e4acf352 Try not to get trapped by excessive or looping redirects. 2019-10-13 20:42:04 +03:00
lel 210d0459eb Simplify trailing slash handling to make going up work 2019-09-28 03:28:01 -04:00
lel 7997c40e94 Simplify handling of going up from root 2019-09-28 03:22:01 -04:00
lel 620800c9da Fix separate unrelated crash when going up from root 2019-09-28 02:40:18 -04:00
lel 3d8eecd346 Fix crash when going up from root 2019-09-28 02:39:42 -04:00
lel 12587685d4 Add newline to string formatting 2019-09-28 02:04:45 -04:00
Solderpunk 998b25cdb6 Try to get Python 3.4 working... 2019-08-25 16:26:45 +03:00
Solderpunk 7852a3f544 Fix bookmarking, again. 2019-08-18 23:29:45 +03:00
Solderpunk afc4d7e8fd TLS hardening. 2019-08-18 22:59:49 +03:00
Solderpunk f6a8f20a07 Fix bookmarking. 2019-08-18 22:32:34 +03:00
Solderpunk ddb3a5a893 Detect unsupported schemes. 2019-08-14 21:16:58 +03:00
Solderpunk 3562a6db25 Make sure absolutisation of https links works correctly! 2019-08-14 21:16:46 +03:00
Solderpunk 1b7da02def Include TLS version in debug output. 2019-08-13 21:21:20 +03:00
Solderpunk 242cf484f0 Get tough on non-standard status codes! 2019-08-13 20:40:14 +03:00
Solderpunk 8dd08fa609 Fix silly syntax errors. 2019-08-13 20:39:55 +03:00
Solderpunk 518dadb31e Simplify and unify GeminiItem methods. 2019-08-13 20:36:58 +03:00
Solderpunk b4623c0ccc Remove debugging print. 2019-08-13 20:24:20 +03:00
Solderpunk 6c8921a219 Avoid duplication of calls to of urlunparse. 2019-08-13 20:24:00 +03:00
Solderpunk b75b1d94ff Initial implementation of input support. 2019-08-13 20:17:40 +03:00
Solderpunk 9c51f4b6b9 Call the part of the header after status meta, not mime. 2019-08-13 20:00:15 +03:00
Solderpunk e7e296a959 Fix Input handling stub. 2019-08-13 19:58:20 +03:00
Solderpunk 9d9b044080 Simplify Exception handling a bit. Unlike in VF-1, we can't recover from network errors with redundant mirrors, so there's no need to separate network errors from other errors early on. 2019-08-13 19:58:05 +03:00
Solderpunk a968fd3f92 Get rid of more vestigial colour stuff. 2019-08-13 19:56:38 +03:00
Solderpunk d8d59f51e4 OOPify GeminiItems - makes interface code a bit tidier and concentrates all URL wrangling in one place. I *think* this makes things clearer. 2019-08-13 19:56:15 +03:00
Solderpunk 642117f553 Remove redundant mirror stuff, which doesn't exist in Gemini. 2019-08-13 18:11:29 +03:00
Solderpunk 1f1ab73fcf Expanded and more compliant handling of responses. 2019-08-13 18:09:29 +03:00
Solderpunk 13ddad1759 Enable IPv6 by default. 2019-08-13 13:04:39 +03:00
Solderpunk eca5de5d0f Get rid of item type colour code stuff. 2019-08-13 13:04:26 +03:00
Solderpunk c65b37c5c4 Make Gopher proxy configurable via 'set'. 2019-08-13 13:04:07 +03:00
Solderpunk aa203b95ea Don't needlessly strip lines. 2019-08-12 21:49:18 +03:00
Solderpunk f1ef1a1211 Fix hacking to include scheme in GeminiItems. 2019-08-12 21:48:57 +03:00
Solderpunk 9d7a40fb78 Permit non-tab whitespace in response header. 2019-08-12 21:48:33 +03:00
Solderpunk ec38b5de4c Whoops! Set default proxy to localhost, not conman. Sorry, Sean... 2019-08-12 18:08:11 +03:00
Solderpunk 0f964b0128 Quick and dirty hack in of support for a Gopher proxy. 2019-08-12 17:14:42 +03:00
Solderpunk d37eaae706 Don't include default ports in URL. 2019-08-11 23:24:37 +03:00
Solderpunk 1ba4ec5768 Updated status handling. 2019-08-11 22:26:30 +03:00
Solderpunk 67d3c2ed22 Change to new request format. 2019-08-11 22:26:14 +03:00
Solderpunk 0a77a03150 Don't put double /s into URLs. 2019-08-11 22:25:48 +03:00
Solderpunk ce2cf8c5c4 Transition to new status system. 2019-08-08 21:23:58 +03:00
Solderpunk 0bea25fed5 Change to final link syntax. 2019-07-22 00:02:18 +03:00
Solderpunk 597c48f632 Change to new link syntax. 2019-06-24 22:26:53 +03:00
Solderpunk 2235f8f4b1 Fix do_root. 2019-06-22 20:24:06 +03:00
Solderpunk 104ba07a05 Minor restructuring. 2019-06-22 17:36:35 +03:00
Solderpunk de3c418051 Record MIME type of current item, and use it in places where VF-1 would use the current GopherItem's itemtype. 2019-06-22 17:36:03 +03:00
Solderpunk 128080fd02 Get rid of more gopher-specific stuff we don't need. 2019-06-22 16:49:23 +03:00
Solderpunk e779a45a35 Use text encoding declared in the response header, and treat decoding errors as fatal. 2019-06-22 16:29:14 +03:00
Solderpunk 50be14a327 Handle redirects and Not Found errors. 2019-06-22 16:02:11 +03:00
Solderpunk b7a761365c Hasty initial conversion of VF-1. 2019-06-22 15:58:21 +03:00