Commit Graph
100 Commits
Author SHA1 Message Date
adnano db89a34935 examples/server: Generate new certificates when they expire 2020-10-13 14:22:15 -04:00
adnano a0aa135534 Remove (*Request).Hostname function 2020-10-13 13:31:50 -04:00
adnano 4770ad9112 Rename (*KnownHosts).Load to LoadDefault 2020-10-12 16:56:55 -04:00
adnano 0bac966b23 Update documentation 2020-10-12 16:51:10 -04:00
adnano cbeb45ff0a Update documentation 2020-10-12 16:49:35 -04:00
adnano e75d028c05 Update README.md 2020-10-12 16:39:01 -04:00
adnano a33a5be063 Update documentation 2020-10-12 16:34:59 -04:00
adnano 2370c42d8d Use a map for registering server handlers 2020-10-12 16:34:12 -04:00
adnano 3e640c3843 Update examples 2020-10-12 00:13:24 -04:00
adnano 322e66ca1e Implement loading of certificates from a directory 2020-10-12 00:06:20 -04:00
adnano 065ed828fb Implement server certificate store 2020-10-11 23:48:18 -04:00
adnano 3b5cc23d28 Remove dependency on golang.org/x/crypto 2020-10-11 21:55:30 -04:00
adnano 96390291bc Detect mimetypes 2020-10-11 20:13:53 -04:00
adnano 92af3df4c5 Update comments 2020-10-11 19:41:44 -04:00
adnano 7fdc28d5be Move filesystem code to its own file 2020-10-11 18:57:04 -04:00
adnano 2d11edaa4c Implement matching of hostnames and schemes 2020-10-11 17:53:22 -04:00
adnano 90c9f5da5b Update README.md 2020-10-11 15:23:41 -04:00
adnano a8b63b5982 Fix parsing of links without names 2020-09-29 21:27:16 -04:00
adnano fbc1f76194 Create the certificate store if it does not exist 2020-09-29 11:13:16 -04:00
adnano 8facfabec5 Add newlines after Gemini text lines 2020-09-29 10:16:55 -04:00
adnano d7f515c0cb Implement parsing of Gemini text responses 2020-09-29 10:13:57 -04:00
adnano b557ab379b Use path instead of filepath 2020-09-28 19:54:08 -04:00
adnano 855eff6d88 Update README.md 2020-09-28 18:28:52 -04:00
adnano 5d0257ab6f Update documentation link 2020-09-28 18:22:18 -04:00
adnano 8d9e50d47a Update module name 2020-09-28 18:19:59 -04:00
adnano 684bb1cc68 examples/client: Add optional host argument 2020-09-28 16:13:14 -04:00
adnano 4c0b13fb57 Refuse requests for non-gemini schemes 2020-09-28 16:07:51 -04:00
adnano a49b0cdaac Remove support for matching schemes 2020-09-28 16:02:32 -04:00
adnano 5a07b49ef5 Fix mux URL sorting logic 2020-09-28 15:33:15 -04:00
adnano 744884127c Fix client example error handling 2020-09-28 14:26:09 -04:00
adnano f785ed12fd examples/client: Disable echo for sensitive input 2020-09-28 14:20:19 -04:00
adnano 10760a256f Use net/http implementation of ServeMux 2020-09-28 03:15:19 -04:00
adnano b9b299485e Move vendored code to vendor.go 2020-09-28 02:29:32 -04:00
adnano b4eb62e849 Update comments 2020-09-28 02:28:28 -04:00
adnano 99940c7c8a Use splitHostPort function from net/url 2020-09-28 02:27:29 -04:00
adnano 11484b8215 Remove unused code 2020-09-28 02:17:56 -04:00
adnano be9d3d0fbf Update comments 2020-09-28 02:16:49 -04:00
adnano 5edecf01a2 Update comments 2020-09-28 02:13:46 -04:00
adnano b7e977f78a Don't trim trailing slash from Handler patterns 2020-09-28 02:06:15 -04:00
adnano 70c5d8b9ce Add WithInput helper functions 2020-09-28 02:05:37 -04:00
adnano aec4a5d7c9 Use WithCertificate helper in auth example 2020-09-28 01:14:29 -04:00
adnano f09b859370 Add WithCertificate helper function 2020-09-28 01:10:36 -04:00
adnano f093bf567f Remove unused import 2020-09-28 00:42:19 -04:00
adnano 956a2bad52 Remove NewCertificateStore function 2020-09-28 00:41:00 -04:00
adnano cad2d25185 Make the default client generate certificates 2020-09-28 00:38:11 -04:00
adnano 622ea8e0f1 Update documentation 2020-09-28 00:29:11 -04:00
adnano 21022eb5ac Remove log.Print call 2020-09-28 00:08:42 -04:00
adnano 13d2bd5fea Return certificate if it exists in the store 2020-09-28 00:03:42 -04:00
adnano 5d099a4fe1 Only generate certificates after CertificateRequired 2020-09-27 23:58:45 -04:00
adnano ae4b458964 Generate certificates on demand 2020-09-27 23:49:41 -04:00
adnano b7340aef27 Remove tilde from comment 2020-09-27 22:19:24 -04:00
adnano 365e94f06e Directly initialize DefaultClient 2020-09-27 22:18:21 -04:00
adnano 7ccf75ad43 Move DefaultClient up 2020-09-27 22:15:36 -04:00
adnano c3dbcb39db Clarify comment 2020-09-27 22:13:50 -04:00
adnano 554e0af32a Split Redirect into two functions 2020-09-27 22:06:08 -04:00
adnano 599c5bb131 Use helper functions throughout 2020-09-27 22:03:09 -04:00
adnano 707ebf1c0c Add SetMimetype convenience function 2020-09-27 21:53:58 -04:00
adnano cec043cfd8 Fix README.md 2020-09-27 21:40:51 -04:00
adnano 5535cff842 Check certificate notBefore and notAfter times 2020-09-27 21:37:10 -04:00
adnano 5a0f7cf631 Trim trailing slash from Handler patterns 2020-09-27 21:24:08 -04:00
adnano 3428a006ba Move package documentation comment 2020-09-27 21:19:34 -04:00
adnano 3c9821d812 Add more helper functions 2020-09-27 21:13:42 -04:00
adnano fdf6bbc62f Add helper functions 2020-09-27 20:52:24 -04:00
adnano 370bcf3bb9 Rename NewProxyRequest to NewRequestTo 2020-09-27 20:37:16 -04:00
adnano f6be76f8b8 examples/client: Handle relative redirects 2020-09-27 20:34:59 -04:00
adnano 38fe1f21dc Change package name to gmi 2020-09-27 20:20:59 -04:00
adnano a4a8d49ca7 Add helper handler functions 2020-09-27 20:11:45 -04:00
adnano 73e4ef0689 Reject invalid status codes 2020-09-27 19:56:33 -04:00
adnano 9f1a38a0dd Polish example client 2020-09-27 19:45:48 -04:00
adnano 4cbc591c3e Update README.md 2020-09-27 17:44:49 -04:00
adnano 8009de81eb Add function to add a host temporarily 2020-09-27 17:41:41 -04:00
adnano b46a05e5ff Add client authorization example 2020-09-27 17:39:44 -04:00
adnano a691e3cc8b Fix README.md 2020-09-27 16:31:41 -04:00
adnano c79a1f4484 Update documentation 2020-09-27 16:21:56 -04:00
adnano 73a1692a5b Make TrustCertificate accept hostname instead of request 2020-09-27 16:10:36 -04:00
adnano 32a9fcba0c Fix hosts not being added to known hosts file 2020-09-27 16:06:17 -04:00
adnano c4af352e87 Temporarily allow common names in certificates 2020-09-27 15:57:55 -04:00
adnano e01d59f8f6 Don't store wildcards in the known hosts file 2020-09-27 15:03:46 -04:00
adnano 0343248952 Remove port from host when verifying hostnames 2020-09-27 14:25:28 -04:00
adnano 188c3457e6 Fix client example 2020-09-27 14:23:25 -04:00
adnano f0ce4576e1 Handle multiple DNS names
Each DNS name gets its own entry in the known hosts file
2020-09-27 14:22:41 -04:00
adnano 013b2a4d3e Add function to write known hosts to io.Writer 2020-09-27 14:18:30 -04:00
adnano 2eb7fb9ba4 Implement certificate creation 2020-09-27 13:50:48 -04:00
adnano e28e547bcf Adjust user prompt in client example 2020-09-26 18:56:10 -04:00
adnano a1a2523c5c Reject requests containing '..' in them 2020-09-26 17:13:13 -04:00
adnano ceb40a2fab Implement default client 2020-09-26 16:52:14 -04:00
adnano 92a1dbbc0c Implement file server 2020-09-26 16:38:26 -04:00
adnano 6458420454 Add preliminary CertificateStore API 2020-09-26 15:14:34 -04:00
adnano 872f6e2683 Update README.md 2020-09-26 14:34:15 -04:00
adnano 4b0f94157c Fix client example 2020-09-26 14:01:06 -04:00
adnano d3002cc8b4 Update README.md 2020-09-26 13:59:24 -04:00
adnano 769b6ff4d9 Implement default known hosts path 2020-09-26 13:35:56 -04:00
adnano 1b3f9a0655 Remove (*KnownHosts).Has function 2020-09-26 13:29:29 -04:00
adnano bf3e6b3c5c Differentiate between unknown and untrusted certificates 2020-09-26 13:27:03 -04:00
adnano fc96076472 Update README.md 2020-09-26 00:40:28 -04:00
adnano d604e8c337 Specify minimum version of TLS 1.2 2020-09-26 00:31:16 -04:00
adnano d5d491e9c2 Fix misleading comment 2020-09-25 23:29:26 -04:00
adnano 1f3587ba9d Distinguish client errors from server errors 2020-09-25 23:23:24 -04:00
adnano 927dfd29c5 Refactor TOFU 2020-09-25 23:18:14 -04:00
adnano b4295dd2dc Implement basic TOFU 2020-09-25 21:43:13 -04:00