Commit Graph

136 Commits

Author SHA1 Message Date
Adnan Maolood
66e4dc86d5 Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
Adnan Maolood
34ae2a9066 Use strings.Builder in Fingerprint 2020-10-28 15:14:24 -04:00
Adnan Maolood
7f0b1fa8a1 Refactor server certificates 2020-10-28 15:03:54 -04:00
Adnan Maolood
32f22a3e2c Fix examples/cert.go 2020-10-28 13:47:52 -04:00
Adnan Maolood
fbd97a62de Refactor client certificates 2020-10-28 13:41:24 -04:00
Adnan Maolood
e6072d8bbc Ensure absolute paths in client certificate store 2020-10-27 23:47:13 -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
860a33f5a2 Fix examples 2020-10-27 14:17:14 -04:00
Adnan Maolood
8ab4064841 Add NewRequestFromURL function 2020-10-27 13:27:52 -04:00
Adnan Maolood
c44f011b15 Remove (Text).HTML function 2020-10-26 12:49:16 -04:00
Adnan Maolood
f0345f3495 Rename repository to go-gemini 2020-10-24 15:15:32 -04:00
Adnan Maolood
1634c2c11c Add Certificate helper function 2020-10-21 17:47:34 -04:00
Adnan Maolood
8c4c00b31a examples/auth: Use sensitive input for passwords 2020-10-21 17:38:58 -04:00
Adnan Maolood
ef03df7664 Refactor Input and SensitiveInput functions 2020-10-21 17:34:07 -04:00
Adnan Maolood
aeff8a051c Rename Handler to Responder 2020-10-21 16:28:50 -04:00
adnano
960ebd9b46 examples/server: Create certificates if they does not exist 2020-10-17 11:57:11 -04:00
adnano
faf94d8ba5 Rename rw, req to w, r 2020-10-13 20:22:12 -04:00
adnano
d99e3ed17c Remove NewRawCertificate function 2020-10-13 17:33:14 -04:00
adnano
292fa7ee4f Remove WriteX509KeyPair function 2020-10-13 16:50:59 -04:00
adnano
3d1e9e5519 Move certificate verification code to VerifyConnection 2020-10-13 16:44:46 -04:00
adnano
db89a34935 examples/server: Generate new certificates when they expire 2020-10-13 14:22:15 -04:00
adnano
4770ad9112 Rename (*KnownHosts).Load to LoadDefault 2020-10-12 16:56:55 -04:00
adnano
a33a5be063 Update documentation 2020-10-12 16:34:59 -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
2d11edaa4c Implement matching of hostnames and schemes 2020-10-11 17:53:22 -04:00
adnano
fbc1f76194 Create the certificate store if it does not exist 2020-09-29 11:13:16 -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
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
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
956a2bad52 Remove NewCertificateStore function 2020-09-28 00:41:00 -04:00
adnano
622ea8e0f1 Update documentation 2020-09-28 00:29:11 -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
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
3c9821d812 Add more helper functions 2020-09-27 21:13:42 -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
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
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
e01d59f8f6 Don't store wildcards in the known hosts file 2020-09-27 15:03:46 -04:00
adnano
188c3457e6 Fix client example 2020-09-27 14:23:25 -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
92a1dbbc0c Implement file server 2020-09-26 16:38:26 -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
bf3e6b3c5c Differentiate between unknown and untrusted certificates 2020-09-26 13:27:03 -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
ace3e682de Remove TLSConfig fields 2020-09-25 18:53:20 -04:00
adnano
ec68ab8609 Add test 2020-09-25 11:27:26 -04:00
adnano
99b50e6caf Sort ServeMux entries by length 2020-09-25 11:00:18 -04:00
adnano
eb8c9e0c03 Update README.md 2020-09-25 10:09:41 -04:00
adnano
57a124a8b9 Convert ResponseWriter to struct 2020-09-24 19:38:26 -04:00
adnano
4b27a736ac Use more buffered I/O 2020-09-24 19:22:35 -04:00
adnano
3980cfd28f Use buffered IO 2020-09-24 19:02:03 -04:00
adnano
891c4fbec4 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
fde295cb25 Fix client example 2020-09-24 01:43:03 -04:00
adnano
c6802d9d9a Merge Request and RequestInfo 2020-09-24 01:37:57 -04:00
adnano
5a0a515874 Provide Handler with client remote address 2020-09-21 20:44:10 -04:00
adnano
39552c0f8f Provide Handler with client certificate information 2020-09-21 19:17:10 -04:00
adnano
0b6d3d8633 Rename example directory to examples 2020-09-21 18:25:31 -04:00