1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-05-29 02:26:08 +02:00
Commit Graph

136 Commits

Author SHA1 Message Date
Adnan Maolood 35e984fbba Escape path character in certificate scopes 2020-11-24 20:24:38 -05:00
Adnan Maolood 4b653032e4 Make Client safe for concurrent use 2020-11-24 16:28:58 -05:00
Adnan Maolood 0c75e5d5ad Expose KnownHosts and CertificateStore internals 2020-11-23 12:17:54 -05:00
Adnan Maolood 46cbcfcaa4 Remove top-level Get and Do functions 2020-11-09 12:04:53 -05:00
Adnan Maolood 76dfe257f1 Remove (*KnownHosts).LoadDefault function 2020-11-09 09:28:44 -05:00
Adnan Maolood 6b3cf1314b Fix relative redirects 2020-11-07 23:43:07 -05:00
Adnan Maolood fe92db1e9c Allow redirects to non-gemini schemes 2020-11-06 11:18:58 -05:00
Adnan Maolood ff6c95930b Fix TOFU 2020-11-05 22:30:13 -05:00
Adnan Maolood a5712c7705 Don't check if certificate is expired 2020-11-05 18:35:25 -05:00
Adnan Maolood 520d0a7fb1 Don't redirect by default 2020-11-05 15:44:01 -05:00
Adnan Maolood b76080c863 Refactor KnownHosts 2020-11-05 15:27:12 -05:00
Adnan Maolood cec1f118fb Remove some unnecessary errors 2020-11-04 23:46:05 -05:00
Adnan Maolood 5b3194695f Store request certificate to prevent infinite loop 2020-11-02 13:47:07 -05:00
Adnan Maolood cc372e8768 Prevent infinite loop in client requests 2020-11-01 15:14:56 -05:00
Adnan Maolood 0d3230a7d5 Rename InsecureTrustAlways to InsecureSkipTrust 2020-10-31 23:41:30 -04:00
Adnan Maolood 79b3b22e69 Update documentation 2020-10-31 23:05:31 -04:00
Adnan Maolood dad8f38bfb Fix examples/client.go 2020-10-31 22:50:42 -04:00
Adnan Maolood 8181b86759 Add option to skip trust checks 2020-10-31 22:45:21 -04:00
Adnan Maolood 65a5065250 Refactor client.TrustCertificate workflow 2020-10-31 22:34:51 -04:00
Adnan Maolood 7d470c5fb1 Implement Server read and write timeouts 2020-10-31 21:07:02 -04:00
Adnan Maolood 42c95f8c8d Implement Client connection timeout 2020-10-31 20:55:56 -04:00
Adnan Maolood b5fbd197a1 Update documentation 2020-10-28 16:02:04 -04:00
Adnan Maolood fbd97a62de Refactor client certificates 2020-10-28 13:41:24 -04:00
Adnan Maolood 768664e0c5 Add ErrInputRequired and ErrCertificateRequired 2020-10-28 01:06:08 -04:00
Adnan Maolood 7a1a33513a Store a reference to the Request in Response 2020-10-28 00:21:27 -04:00
Adnan Maolood 4c5167f590 Add Client.GetInput field 2020-10-27 23:35:22 -04:00
Adnan Maolood d1dcf070ff Restrict client certificates to certain paths 2020-10-27 23:34:06 -04:00
Adnan Maolood fc72224ce9 client: Follow redirects 2020-10-27 22:12:10 -04:00
Adnan Maolood 239ec885f7 Add (*Client).Get function 2020-10-27 19:22:34 -04:00
Adnan Maolood 12a9deb1a6 Make (*Response).Body an io.ReadCloser 2020-10-27 19:16:55 -04:00
Adnan Maolood f0345f3495 Rename repository to go-gemini 2020-10-24 15:15:32 -04:00
Adnan Maolood 9506f69f1a Refactor 2020-10-21 17:07:28 -04:00
adnano 7396bae85e Fix typo 2020-10-13 20:24:06 -04:00
adnano 4189a4f717 Move errors to gemini.go 2020-10-13 20:10:04 -04:00
adnano 3d1e9e5519 Move certificate verification code to VerifyConnection 2020-10-13 16:44:46 -04:00
adnano a0aa135534 Remove (*Request).Hostname function 2020-10-13 13:31:50 -04:00
adnano a33a5be063 Update documentation 2020-10-12 16:34:59 -04:00
adnano 065ed828fb Implement server certificate store 2020-10-11 23:48:18 -04:00
adnano 7fdc28d5be Move filesystem code to its own file 2020-10-11 18:57:04 -04:00
adnano fbc1f76194 Create the certificate store if it does not exist 2020-09-29 11:13:16 -04:00
adnano 10760a256f Use net/http implementation of ServeMux 2020-09-28 03:15:19 -04:00
adnano 99940c7c8a Use splitHostPort function from net/url 2020-09-28 02:27:29 -04:00
adnano be9d3d0fbf Update comments 2020-09-28 02:16:49 -04:00
adnano f093bf567f Remove unused import 2020-09-28 00:42:19 -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 c3dbcb39db Clarify comment 2020-09-27 22:13:50 -04:00
adnano 5535cff842 Check certificate notBefore and notAfter times 2020-09-27 21:37:10 -04:00
adnano 3428a006ba Move package documentation comment 2020-09-27 21:19:34 -04:00
adnano 370bcf3bb9 Rename NewProxyRequest to NewRequestTo 2020-09-27 20:37:16 -04:00
adnano 38fe1f21dc Change package name to gmi 2020-09-27 20:20:59 -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 b46a05e5ff Add client authorization example 2020-09-27 17:39:44 -04:00
adnano 73a1692a5b Make TrustCertificate accept hostname instead of request 2020-09-27 16:10:36 -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 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 6458420454 Add preliminary CertificateStore API 2020-09-26 15:14:34 -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 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
adnano eaa034204a Add method to check if hostname is found in KnownHosts 2020-09-25 20:22:48 -04:00
adnano 53d84882ea Implement configurable Client 2020-09-25 19:53:50 -04:00
adnano 2f43c191cc Reorganize 2020-09-25 19:09:49 -04:00
adnano d36131356d Rename gemini.go to client.go 2020-09-25 19:07:40 -04:00
adnano 63696fc7c8 Refactor 2020-09-24 00:30:21 -04:00
adnano 6297d1e3ca Enforce valid URLs 2020-09-21 22:21:51 -04:00
adnano 86e7fe4355 Add package declaration comment 2020-09-21 22:09:50 -04:00
adnano 01294f6661 Refactor client requests and server responses 2020-09-21 21:31:09 -04:00
adnano 39552c0f8f Provide Handler with client certificate information 2020-09-21 19:17:10 -04:00
adnano 81974a9e00 Update Client documentation 2020-09-21 18:30:55 -04:00
adnano cc06e65b41 Add support for client-side certificates 2020-09-21 18:21:42 -04:00
adnano fd74b8fbe9 Use bufio.Reader in (*Client).Do 2020-09-21 17:58:36 -04:00
adnano e6f70cf697 Update documentation 2020-09-21 17:36:09 -04:00
adnano e20b8a0a5e Add examples 2020-09-21 17:23:51 -04:00
adnano 257b807675 Initial commit 2020-09-21 15:49:09 -04:00