1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-09-19 23:01:37 +02:00
Commit Graph

143 Commits

Author SHA1 Message Date
adnano
7c034554f0 Fix examples/client.go 2020-10-31 22:50:42 -04:00
adnano
d36225b337 Add option to skip trust checks 2020-10-31 22:45:21 -04:00
adnano
1c54599498 Refactor client.TrustCertificate workflow 2020-10-31 22:34:51 -04:00
adnano
989fac26bc Implement Server read and write timeouts 2020-10-31 21:07:02 -04:00
adnano
cdfd68157b Implement Client connection timeout 2020-10-31 20:55:56 -04:00
adnano
d2d28c5f26 Remove Redirect and PermanentRedirect functions
Use (*ResponseWriter).WriteHeader instead.
2020-10-31 16:51:10 -04:00
adnano
b6821262a8 server: Automatically write new certificates to disk 2020-10-31 16:33:56 -04:00
adnano
7f8a8f911a Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
adnano
ddd6215dcc Use strings.Builder in Fingerprint 2020-10-28 15:14:24 -04:00
adnano
7df14145d0 Refactor server certificates 2020-10-28 15:03:54 -04:00
adnano
6fb76f04e7 Fix examples/cert.go 2020-10-28 13:47:52 -04:00
adnano
a3266487af Refactor client certificates 2020-10-28 13:41:24 -04:00
adnano
80e2f783c3 Ensure absolute paths in client certificate store 2020-10-27 23:47:13 -04:00
adnano
748967867f Add Client.GetInput field 2020-10-27 23:35:22 -04:00
adnano
546e62f13d Restrict client certificates to certain paths 2020-10-27 23:34:06 -04:00
adnano
922423bf9d client: Follow redirects 2020-10-27 22:12:10 -04:00
adnano
d713e95251 Add (*Client).Get function 2020-10-27 19:22:34 -04:00
adnano
ab3ac68f6f Make (*Response).Body an io.ReadCloser 2020-10-27 19:16:55 -04:00
adnano
37fd7c1773 Fix examples 2020-10-27 14:17:14 -04:00
adnano
1293b2467a Add NewRequestFromURL function 2020-10-27 13:27:52 -04:00
adnano
b7d4926314 Remove (Text).HTML function 2020-10-26 12:49:16 -04:00
adnano
6cccba3800 Rename repository to go-gemini 2020-10-24 15:15:32 -04:00
adnano
80bada969f Add Certificate helper function 2020-10-21 17:47:34 -04:00
adnano
564294165b examples/auth: Use sensitive input for passwords 2020-10-21 17:38:58 -04:00
adnano
f7e384c88f Refactor Input and SensitiveInput functions 2020-10-21 17:34:07 -04:00
adnano
40255d8c40 Rename Handler to Responder 2020-10-21 16:28:50 -04:00
adnano
52264937f1 examples/server: Create certificates if they does not exist 2020-10-17 11:57:11 -04:00
adnano
e09d6659b4 Rename rw, req to w, r 2020-10-13 20:22:12 -04:00
adnano
67b81008fd Remove NewRawCertificate function 2020-10-13 17:33:14 -04:00
adnano
d71474e8a6 Remove WriteX509KeyPair function 2020-10-13 16:50:59 -04:00
adnano
76f3ec0dcf Move certificate verification code to VerifyConnection 2020-10-13 16:44:46 -04:00
adnano
1627930aa7 examples/server: Generate new certificates when they expire 2020-10-13 14:22:15 -04:00
adnano
a0c7ce836f Rename (*KnownHosts).Load to LoadDefault 2020-10-12 16:56:55 -04:00
adnano
7eaa0f3bce Update documentation 2020-10-12 16:34:59 -04:00
adnano
98b3169a86 Update examples 2020-10-12 00:13:24 -04:00
adnano
63232c7eb8 Implement loading of certificates from a directory 2020-10-12 00:06:20 -04:00
adnano
8de7f5d8c4 Implement server certificate store 2020-10-11 23:48:18 -04:00
adnano
cdf49622e2 Remove dependency on golang.org/x/crypto 2020-10-11 21:55:30 -04:00
adnano
80828c126c Implement matching of hostnames and schemes 2020-10-11 17:53:22 -04:00
adnano
1d19050f20 Create the certificate store if it does not exist 2020-09-29 11:13:16 -04:00
adnano
0f890caece Update module name 2020-09-28 18:19:59 -04:00
adnano
004d76265e examples/client: Add optional host argument 2020-09-28 16:13:14 -04:00
adnano
77486c2d8a Refuse requests for non-gemini schemes 2020-09-28 16:07:51 -04:00
adnano
0f358ece8d Remove support for matching schemes 2020-09-28 16:02:32 -04:00
adnano
beef4fb0dc Fix client example error handling 2020-09-28 14:26:09 -04:00
adnano
88b358bb9d examples/client: Disable echo for sensitive input 2020-09-28 14:20:19 -04:00
adnano
b34294db1a Add WithInput helper functions 2020-09-28 02:05:37 -04:00
adnano
b0ec0fe937 Use WithCertificate helper in auth example 2020-09-28 01:14:29 -04:00
adnano
5758040909 Remove NewCertificateStore function 2020-09-28 00:41:00 -04:00
adnano
e19185a0b2 Update documentation 2020-09-28 00:29:11 -04:00
adnano
a8f1b8ab1f Only generate certificates after CertificateRequired 2020-09-27 23:58:45 -04:00
adnano
ddd5830dd2 Generate certificates on demand 2020-09-27 23:49:41 -04:00
adnano
1c89de359c Clarify comment 2020-09-27 22:13:50 -04:00
adnano
4197d51545 Split Redirect into two functions 2020-09-27 22:06:08 -04:00
adnano
148910dade Use helper functions throughout 2020-09-27 22:03:09 -04:00
adnano
f1e8b251fe Add more helper functions 2020-09-27 21:13:42 -04:00
adnano
ac2bf90699 Rename NewProxyRequest to NewRequestTo 2020-09-27 20:37:16 -04:00
adnano
934155feb7 examples/client: Handle relative redirects 2020-09-27 20:34:59 -04:00
adnano
14e569bf92 Change package name to gmi 2020-09-27 20:20:59 -04:00
adnano
8d483b084f Add helper handler functions 2020-09-27 20:11:45 -04:00
adnano
c548e8baa8 Reject invalid status codes 2020-09-27 19:56:33 -04:00
adnano
cafc19aed7 Polish example client 2020-09-27 19:45:48 -04:00
adnano
6f38db41e2 Add function to add a host temporarily 2020-09-27 17:41:41 -04:00
adnano
886e3ba8bb Add client authorization example 2020-09-27 17:39:44 -04:00
adnano
8ea91e8f56 Update documentation 2020-09-27 16:21:56 -04:00
adnano
4e16af9b26 Make TrustCertificate accept hostname instead of request 2020-09-27 16:10:36 -04:00
adnano
a65334882b Fix hosts not being added to known hosts file 2020-09-27 16:06:17 -04:00
adnano
f19d3b09cd Don't store wildcards in the known hosts file 2020-09-27 15:03:46 -04:00
adnano
e08ff3c709 Fix client example 2020-09-27 14:23:25 -04:00
adnano
d7717577ea Add function to write known hosts to io.Writer 2020-09-27 14:18:30 -04:00
adnano
0a336f84e2 Implement certificate creation 2020-09-27 13:50:48 -04:00
adnano
f3345ae327 Adjust user prompt in client example 2020-09-26 18:56:10 -04:00
adnano
1288e1bc31 Implement file server 2020-09-26 16:38:26 -04:00
adnano
b0b5c011d3 Fix client example 2020-09-26 14:01:06 -04:00
adnano
82c374ea96 Update README.md 2020-09-26 13:59:24 -04:00
adnano
6a5a7c40c5 Differentiate between unknown and untrusted certificates 2020-09-26 13:27:03 -04:00
adnano
578746550e Refactor TOFU 2020-09-25 23:18:14 -04:00
adnano
134d0277f5 Implement basic TOFU 2020-09-25 21:43:13 -04:00
adnano
f994f3dbd0 Add method to check if hostname is found in KnownHosts 2020-09-25 20:22:48 -04:00
adnano
d11091f37d Implement configurable Client 2020-09-25 19:53:50 -04:00
adnano
4c8a12e2fb Remove TLSConfig fields 2020-09-25 18:53:20 -04:00
adnano
e4ee382282 Add test 2020-09-25 11:27:26 -04:00
adnano
678bba3417 Sort ServeMux entries by length 2020-09-25 11:00:18 -04:00
adnano
74a18d3f34 Update README.md 2020-09-25 10:09:41 -04:00
adnano
00315aaf2f Convert ResponseWriter to struct 2020-09-24 19:38:26 -04:00
adnano
685abaf2c7 Use more buffered I/O 2020-09-24 19:22:35 -04:00
adnano
de7a7724cb Use buffered IO 2020-09-24 19:02:03 -04:00
adnano
c4e7e8c892 Remove Client struct
Gemini requests are very simple and leave little room for customization,
so a configurable Client is not necessary.
2020-09-24 01:55:41 -04:00
adnano
11748c220a Fix client example 2020-09-24 01:43:03 -04:00
adnano
c3255b1d53 Merge Request and RequestInfo 2020-09-24 01:37:57 -04:00
adnano
ec37cad3dd Provide Handler with client remote address 2020-09-21 20:44:10 -04:00
adnano
4b96665150 Provide Handler with client certificate information 2020-09-21 19:17:10 -04:00
adnano
513129911c Rename example directory to examples 2020-09-21 18:25:31 -04:00