From b223a250552da3c9cb2d89ad534feee83cc5ef98 Mon Sep 17 00:00:00 2001 From: cheddar Date: Fri, 14 Feb 2025 19:41:22 -0500 Subject: [PATCH] Add digest to request --- go.mod | 1 + go.sum | 2 ++ main.go | 17 +++++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 600f557..609cdf6 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.23.4 require ( github.com/common-fate/httpsig v0.2.1 + github.com/opencontainers/go-digest v1.0.0 golang.org/x/crypto v0.33.0 ) diff --git a/go.sum b/go.sum index cf96422..eb48b0d 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/dunglas/httpsfv v1.0.2 h1:iERDp/YAfnojSDJ7PW3dj1AReJz4MrwbECSSE59JWL0 github.com/dunglas/httpsfv v1.0.2/go.mod h1:zID2mqw9mFsnt7YC3vYQ9/cjq30q41W+1AnDwH8TiMg= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= diff --git a/main.go b/main.go index 7148581..2c3f6cb 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "os" "crispbyte.dev/sig-auth/client" + "github.com/opencontainers/go-digest" "golang.org/x/crypto/ssh" ) @@ -30,10 +31,18 @@ func main() { log.Fatal(err) } - resp, err := client.Post( - "http://localhost:8080/post", - "application/json", - bytes.NewBuffer(json_data)) + id := digest.FromBytes(json_data) + + req, err := http.NewRequest("POST", "http://localhost:8080/post", bytes.NewBuffer(json_data)) + + if err != nil { + log.Fatal(err) + } + + req.Header.Add("Content-Digest", string(id.Algorithm())+"="+id.Encoded()) + req.Header.Add("Content-Type", "application/json") + + resp, err := client.Do(req) if err != nil { log.Fatal(err)