summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/crypto/acme
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/crypto/acme')
-rw-r--r--vendor/golang.org/x/crypto/acme/acme.go6
-rw-r--r--vendor/golang.org/x/crypto/acme/types.go11
2 files changed, 16 insertions, 1 deletions
diff --git a/vendor/golang.org/x/crypto/acme/acme.go b/vendor/golang.org/x/crypto/acme/acme.go
index aaafea2bc..a43c62f1d 100644
--- a/vendor/golang.org/x/crypto/acme/acme.go
+++ b/vendor/golang.org/x/crypto/acme/acme.go
@@ -514,7 +514,11 @@ func (c *Client) Accept(ctx context.Context, chal *Challenge) (*Challenge, error
return nil, err
}
- res, err := c.post(ctx, nil, chal.URI, json.RawMessage("{}"), wantStatus(
+ payload := json.RawMessage("{}")
+ if len(chal.Payload) != 0 {
+ payload = chal.Payload
+ }
+ res, err := c.post(ctx, nil, chal.URI, payload, wantStatus(
http.StatusOK, // according to the spec
http.StatusAccepted, // Let's Encrypt: see https://goo.gl/WsJ7VT (acme-divergences.md)
))
diff --git a/vendor/golang.org/x/crypto/acme/types.go b/vendor/golang.org/x/crypto/acme/types.go
index 23a4d6517..45492adc8 100644
--- a/vendor/golang.org/x/crypto/acme/types.go
+++ b/vendor/golang.org/x/crypto/acme/types.go
@@ -7,6 +7,7 @@ package acme
import (
"crypto"
"crypto/x509"
+ "encoding/json"
"errors"
"fmt"
"net/http"
@@ -527,6 +528,16 @@ type Challenge struct {
// when this challenge was used.
// The type of a non-nil value is *Error.
Error error
+
+ // Payload is the JSON-formatted payload that the client sends
+ // to the server to indicate it is ready to respond to the challenge.
+ // When unset, it defaults to an empty JSON object: {}.
+ // For most challenges, the client must not set Payload,
+ // see https://tools.ietf.org/html/rfc8555#section-7.5.1.
+ // Payload is used only for newer challenges (such as "device-attest-01")
+ // where the client must send additional data for the server to validate
+ // the challenge.
+ Payload json.RawMessage
}
// wireChallenge is ACME JSON challenge representation.