a685e3fc98
Vndr has a simpler configuration and allows pointing to forked packages. Additionally other docker projects are now using vndr making vendoring in distribution more consistent. Updates letsencrypt to use fork. No longer uses sub-vendored packages. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
117 lines
3.9 KiB
Go
117 lines
3.9 KiB
Go
package acme
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gopkg.in/square/go-jose.v1"
|
|
)
|
|
|
|
type directory struct {
|
|
NewAuthzURL string `json:"new-authz"`
|
|
NewCertURL string `json:"new-cert"`
|
|
NewRegURL string `json:"new-reg"`
|
|
RevokeCertURL string `json:"revoke-cert"`
|
|
}
|
|
|
|
type recoveryKeyMessage struct {
|
|
Length int `json:"length,omitempty"`
|
|
Client jose.JsonWebKey `json:"client,omitempty"`
|
|
Server jose.JsonWebKey `json:"client,omitempty"`
|
|
}
|
|
|
|
type registrationMessage struct {
|
|
Resource string `json:"resource"`
|
|
Contact []string `json:"contact"`
|
|
Delete bool `json:"delete,omitempty"`
|
|
// RecoveryKey recoveryKeyMessage `json:"recoveryKey,omitempty"`
|
|
}
|
|
|
|
// Registration is returned by the ACME server after the registration
|
|
// The client implementation should save this registration somewhere.
|
|
type Registration struct {
|
|
Resource string `json:"resource,omitempty"`
|
|
ID int `json:"id"`
|
|
Key jose.JsonWebKey `json:"key"`
|
|
Contact []string `json:"contact"`
|
|
Agreement string `json:"agreement,omitempty"`
|
|
Authorizations string `json:"authorizations,omitempty"`
|
|
Certificates string `json:"certificates,omitempty"`
|
|
// RecoveryKey recoveryKeyMessage `json:"recoveryKey,omitempty"`
|
|
}
|
|
|
|
// RegistrationResource represents all important informations about a registration
|
|
// of which the client needs to keep track itself.
|
|
type RegistrationResource struct {
|
|
Body Registration `json:"body,omitempty"`
|
|
URI string `json:"uri,omitempty"`
|
|
NewAuthzURL string `json:"new_authzr_uri,omitempty"`
|
|
TosURL string `json:"terms_of_service,omitempty"`
|
|
}
|
|
|
|
type authorizationResource struct {
|
|
Body authorization
|
|
Domain string
|
|
NewCertURL string
|
|
AuthURL string
|
|
}
|
|
|
|
type authorization struct {
|
|
Resource string `json:"resource,omitempty"`
|
|
Identifier identifier `json:"identifier"`
|
|
Status string `json:"status,omitempty"`
|
|
Expires time.Time `json:"expires,omitempty"`
|
|
Challenges []challenge `json:"challenges,omitempty"`
|
|
Combinations [][]int `json:"combinations,omitempty"`
|
|
}
|
|
|
|
type identifier struct {
|
|
Type string `json:"type"`
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
type validationRecord struct {
|
|
URI string `json:"url,omitempty"`
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Port string `json:"port,omitempty"`
|
|
ResolvedAddresses []string `json:"addressesResolved,omitempty"`
|
|
UsedAddress string `json:"addressUsed,omitempty"`
|
|
}
|
|
|
|
type challenge struct {
|
|
Resource string `json:"resource,omitempty"`
|
|
Type Challenge `json:"type,omitempty"`
|
|
Status string `json:"status,omitempty"`
|
|
URI string `json:"uri,omitempty"`
|
|
Token string `json:"token,omitempty"`
|
|
KeyAuthorization string `json:"keyAuthorization,omitempty"`
|
|
TLS bool `json:"tls,omitempty"`
|
|
Iterations int `json:"n,omitempty"`
|
|
Error RemoteError `json:"error,omitempty"`
|
|
ValidationRecords []validationRecord `json:"validationRecord,omitempty"`
|
|
}
|
|
|
|
type csrMessage struct {
|
|
Resource string `json:"resource,omitempty"`
|
|
Csr string `json:"csr"`
|
|
Authorizations []string `json:"authorizations"`
|
|
}
|
|
|
|
type revokeCertMessage struct {
|
|
Resource string `json:"resource"`
|
|
Certificate string `json:"certificate"`
|
|
}
|
|
|
|
// CertificateResource represents a CA issued certificate.
|
|
// PrivateKey and Certificate are both already PEM encoded
|
|
// and can be directly written to disk. Certificate may
|
|
// be a certificate bundle, depending on the options supplied
|
|
// to create it.
|
|
type CertificateResource struct {
|
|
Domain string `json:"domain"`
|
|
CertURL string `json:"certUrl"`
|
|
CertStableURL string `json:"certStableUrl"`
|
|
AccountRef string `json:"accountRef,omitempty"`
|
|
PrivateKey []byte `json:"-"`
|
|
Certificate []byte `json:"-"`
|
|
}
|