diff options
| author | adnano <[email protected]> | 2020-09-21 19:17:10 -0400 |
|---|---|---|
| committer | adnano <[email protected]> | 2020-09-21 19:17:10 -0400 |
| commit | 39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61 (patch) | |
| tree | 2568e67b4ce0505bd7a4e1a4843a27412842b5a1 /examples | |
| parent | Update Client documentation (diff) | |
| download | go-gemini-39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61.tar.xz go-gemini-39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61.zip | |
Provide Handler with client certificate information
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/client/client.go | 14 | ||||
| -rw-r--r-- | examples/server/server.go | 10 |
2 files changed, 15 insertions, 9 deletions
diff --git a/examples/client/client.go b/examples/client/client.go index 6289e95..3864789 100644 --- a/examples/client/client.go +++ b/examples/client/client.go @@ -13,6 +13,7 @@ import ( ) var client gemini.Client +var cert tls.Certificate func init() { // Configure a client side certificate. @@ -22,17 +23,20 @@ func init() { // openssl ecparam -genkey -name secp384r1 -out client.key // openssl req -new -x509 -sha256 -key client.key -out client.crt -days 3650 // - config := tls.Config{} - cert, err := tls.LoadX509KeyPair("examples/client/client.crt", "examples/client/client.key") + var err error + cert, err = tls.LoadX509KeyPair("examples/client/client.crt", "examples/client/client.key") if err != nil { log.Fatal(err) } - config.Certificates = append(config.Certificates, cert) - client.TLSConfig = config } func makeRequest(url string) { - resp, err := client.Request(url) + req, err := gemini.NewRequest(url) + if err != nil { + log.Fatal(err) + } + req.Certificates = append(req.Certificates, cert) + resp, err := client.Do(req) if err != nil { log.Fatal(err) } diff --git a/examples/server/server.go b/examples/server/server.go index 9165898..1040af9 100644 --- a/examples/server/server.go +++ b/examples/server/server.go @@ -4,9 +4,9 @@ package main import ( "crypto/tls" - "git.sr.ht/~adnano/go-gemini" "log" - "net/url" + + "git.sr.ht/~adnano/go-gemini" ) func main() { @@ -23,13 +23,15 @@ func main() { log.Fatal(err) } config.Certificates = append(config.Certificates, cert) + config.ClientAuth = tls.RequestClientCert mux := &gemini.Mux{} - mux.HandleFunc("/", func(url *url.URL) *gemini.Response { + mux.HandleFunc("/", func(req *gemini.RequestInfo) *gemini.Response { + log.Printf("Request for %s with certificates %v", req.URL.String(), req.Certificates) return &gemini.Response{ Status: gemini.StatusSuccess, Meta: "text/gemini", - Body: []byte("You requested " + url.String()), + Body: []byte("You requested " + req.URL.String()), } }) |