Adnan Maolood
e701ceff71
Add KnownHosts.Hosts function
2021-01-14 18:50:03 -05:00
Adnan Maolood
1a3974b3a3
Update examples/client.go
2021-01-14 17:28:03 -05:00
Adnan Maolood
3fd55c5cee
tofu: Add KnownHosts.Load function
2021-01-14 17:09:31 -05:00
Adnan Maolood
6f11910dff
tofu: Add NewHostsFile function
2021-01-14 16:54:38 -05:00
Adnan Maolood
da3e9ac0fe
tofu: Protect HostWriter with a mutex
2021-01-14 16:35:54 -05:00
Adnan Maolood
9fe837ffac
tofu: Refactor known hosts
...
This commit introduces the KnownHosts struct, whose purpose is simply to
store known hosts entries. The HostWriter struct is now in charge of
appending hosts to files, and the two are not dependent on each other.
Users are now responsible for opening the known hosts file and closing
it when they are finished with it.
2021-01-14 16:26:43 -05:00
Adnan Maolood
4b8bb16a3d
tofu: Rename KnownHost to Host
2021-01-14 14:15:08 -05:00
Adnan Maolood
d78052ce08
Move tofu.go to a subpackage
2021-01-10 16:46:12 -05:00
Adnan Maolood
1f2888c54a
Update documentation
2021-01-10 01:21:56 -05:00
Adnan Maolood
41d5f8d31b
Move documentation back to doc.go
2021-01-10 01:16:50 -05:00
Adnan Maolood
24026422b2
Update examples/stream.go
2021-01-10 01:13:07 -05:00
Adnan Maolood
5e977250ec
Update comments
2021-01-10 01:07:38 -05:00
Adnan Maolood
d8c5da1c7c
Update link to documentation
2021-01-10 00:55:39 -05:00
Adnan Maolood
d01d50ff1a
Simplify ResponseWriter implementation
2021-01-10 00:50:35 -05:00
Adnan Maolood
3ed39e62d8
Rename status.Message to status.Meta
2021-01-10 00:10:57 -05:00
Adnan Maolood
c8626bae17
client: Close connection for unsuccessful responses
2020-12-22 19:22:01 -05:00
Adnan Maolood
48fa6a724e
examples/client: Fix fingerprint check
2020-12-19 13:44:33 -05:00
Adnan Maolood
80ffa72863
client: Verify expiration time
2020-12-19 13:43:47 -05:00
Adnan Maolood
61b417a5c4
Add ResponseWriter.Flush function
2020-12-18 13:15:34 -05:00
Adnan Maolood
a912ef996a
Add examples/stream.go
2020-12-18 12:31:37 -05:00
Adnan Maolood
d9a690a98f
Make NewResponseWriter take an io.Writer
2020-12-18 01:47:29 -05:00
Adnan Maolood
04bd0f4520
Update Request documentation
2020-12-18 01:43:18 -05:00
Adnan Maolood
d34d5df89e
Add ReadRequest and ReadResponse functions
2020-12-18 01:42:05 -05:00
Adnan Maolood
decd72cc23
Expose Request.Write and Response.Read functions
2020-12-18 01:14:06 -05:00
Adnan Maolood
c329a2487e
server: Don't always assume TLS is used
2020-12-18 01:02:04 -05:00
Adnan Maolood
df1794c803
examples: Add missing descriptions
2020-12-18 00:47:30 -05:00
Adnan Maolood
5af1acbd54
examples/html: Read from stdin and write to stdout
2020-12-18 00:45:09 -05:00
Adnan Maolood
36c2086c82
Remove unnecessary variable
2020-12-18 00:35:08 -05:00
Adnan Maolood
d52d0af783
Update QueryEscape documentation
2020-12-18 00:26:47 -05:00
Adnan Maolood
35836f2ff7
Remove Input function
2020-12-18 00:25:06 -05:00
Adnan Maolood
824887eab9
Remove Response.Request field
2020-12-18 00:19:53 -05:00
Adnan Maolood
e2c907a7f6
client: Remove GetInput and CheckRedirect callbacks
2020-12-18 00:12:32 -05:00
Adnan Maolood
a09cb5a23c
Update switch statement
2020-12-17 23:03:33 -05:00
Adnan Maolood
7ca7053f66
client: Remove GetCertificate callback
2020-12-17 22:56:48 -05:00
Adnan Maolood
ca35aadaea
examples/auth: Fix crash on changing username
2020-12-17 21:10:53 -05:00
Adnan Maolood
805a80dddf
Update GetCertificate documentation
2020-12-17 19:54:46 -05:00
Adnan Maolood
28c5c857dc
Decouple Client from KnownHostsFile
2020-12-17 19:50:26 -05:00
Adnan Maolood
176b260468
Allow Request.Context to be nil
2020-12-17 17:16:55 -05:00
Adnan Maolood
a1dd8de337
Fix locking up of KnownHostsFile and CertificateDir
2020-12-17 17:15:24 -05:00
Adnan Maolood
7be0715d39
Use RWMutex instead of Mutex
2020-12-17 17:08:45 -05:00
Adnan Maolood
4704b8fbcf
Add missing imports
2020-12-17 17:07:00 -05:00
Adnan Maolood
aeafd57956
Make CertificateDir safe for concurrent use by multiple goroutines
2020-12-17 16:52:08 -05:00
Adnan Maolood
e687a05170
Make KnownHostsFile safe for concurrent use
2020-12-17 16:49:59 -05:00
Adnan Maolood
846fa2ac41
client: Add GetCertificate callback
2020-12-17 16:46:16 -05:00
Adnan Maolood
611a7d54c0
Revert to using hexadecimal to encode fingerprints
2020-12-16 23:58:02 -05:00
Adnan Maolood
16739d20d0
Fix escaping of queries
2020-11-27 22:27:52 -05:00
Adnan Maolood
24e488a4cb
examples/server: Increase certificate duration
2020-11-27 17:54:26 -05:00
Adnan Maolood
e0ac1685d2
Fix server name in TLS connections
2020-11-27 17:45:15 -05:00
Adnan Maolood
82688746dd
Add context to requests
2020-11-26 00:42:25 -05:00
Adnan Maolood
3b9cc7f168
Update examples/auth.go
2020-11-25 19:10:01 -05:00
Adnan Maolood
3c7940f153
Fix known hosts expiration timestamps
2020-11-25 14:24:49 -05:00
Adnan Maolood
8ee55ee009
Fix certificate fingerprint check
2020-11-25 14:20:31 -05:00
Adnan Maolood
7ee0ea8b7f
Use base64 to encode fingerprints
2020-11-25 14:16:51 -05:00
Adnan Maolood
ab1db34f02
Fix client locking up on redirects
2020-11-24 21:49:24 -05:00
Adnan Maolood
35e984fbba
Escape path character in certificate scopes
2020-11-24 20:24:38 -05:00
Adnan Maolood
cab23032c0
Don't assume a default scheme of gemini
2020-11-24 17:13:52 -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
f6b0443a62
Update KnownHosts documentation
2020-11-09 13:57:30 -05:00
Adnan Maolood
3dee6dcff3
Add (*CertificateStore).Write function
2020-11-09 13:54:15 -05:00
Adnan Maolood
85f8e84bd5
Rename (*ResponseWriter).SetMimetype to SetMediaType
2020-11-09 13:44:42 -05:00
Adnan Maolood
9338681256
Add (*KnownHosts).SetOutput function
2020-11-09 12:26:08 -05:00
Adnan Maolood
f2a1510375
Move documentation to gemini.go
2020-11-09 12:07:49 -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
5332dc6280
Don't guarantee that (*Response).Body is always non-nil
2020-11-08 18:38:08 -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
bf185e4091
update examples/cert.go
2020-11-05 15:38:41 -05:00
Adnan Maolood
8101fbe473
Update examples/auth.go
2020-11-05 15:37:46 -05:00
Adnan Maolood
b76080c863
Refactor KnownHosts
2020-11-05 15:27:12 -05:00
Adnan Maolood
53390dad6b
Document CertificateOptions
2020-11-05 00:04:58 -05:00
Adnan Maolood
cec1f118fb
Remove some unnecessary errors
2020-11-04 23:46:05 -05:00
Adnan Maolood
95716296b4
Use ECDSA keys by default
2020-11-03 19:43:04 -05:00
Adnan Maolood
1490bf6a75
Update examples/auth.go
2020-11-03 16:29:39 -05:00
Adnan Maolood
610c6fc533
Add ErrorLog field to Server
2020-11-03 16:11:31 -05:00
Adnan Maolood
01670647d2
Add Subject option in CertificateOptions
2020-11-02 23:11:46 -05:00
Adnan Maolood
5b3194695f
Store request certificate to prevent infinite loop
2020-11-02 13:47:07 -05:00
Adnan Maolood
b6475aa7d9
server: Populate (*Request).Certificate field
2020-11-01 16:25:59 -05:00
Adnan Maolood
cc372e8768
Prevent infinite loop in client requests
2020-11-01 15:14:56 -05:00
adnano
8e442146c3
Update examples/auth.go
2020-11-01 14:47:26 -05:00
adnano
e4dea6f2c8
Refactor Certificate and Input functions
2020-11-01 14:35:03 -05:00
adnano
b57ea57fec
Don't expose DefaultClient
2020-11-01 14:27:49 -05:00
adnano
c3fc9a4e9f
examples: Tweak client and server timeouts
2020-11-01 14:20:24 -05:00
adnano
22d57dfc9e
Update examples/cert.go
2020-11-01 14:19:18 -05:00
Adnan Maolood
12bdb2f997
Update examples/html.go
2020-11-01 00:58:34 -04:00
Adnan Maolood
7fb1b6c6a4
Update documentation
2020-11-01 00:10:30 -04: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
33c1dc435d
Guarantee that (*Response).Body is non-nil
2020-10-31 23:04:47 -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
b9cb7fe71d
Update log.Printf calls
2020-10-31 21:33:59 -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
a2fc1772bf
Set default mimetype if META is empty
2020-10-31 20:32:38 -04:00