...
1 package core
2
3 import "fmt"
4
5 func newChallenge(challengeType AcmeChallenge, token string) Challenge {
6 return Challenge{
7 Type: challengeType,
8 Status: StatusPending,
9 Token: token,
10 }
11 }
12
13
14
15 func HTTPChallenge01(token string) Challenge {
16 return newChallenge(ChallengeTypeHTTP01, token)
17 }
18
19
20
21 func DNSChallenge01(token string) Challenge {
22 return newChallenge(ChallengeTypeDNS01, token)
23 }
24
25
26
27 func TLSALPNChallenge01(token string) Challenge {
28 return newChallenge(ChallengeTypeTLSALPN01, token)
29 }
30
31
32
33
34 func NewChallenge(kind AcmeChallenge, token string) (Challenge, error) {
35 switch kind {
36 case ChallengeTypeHTTP01:
37 return HTTPChallenge01(token), nil
38 case ChallengeTypeDNS01:
39 return DNSChallenge01(token), nil
40 case ChallengeTypeTLSALPN01:
41 return TLSALPNChallenge01(token), nil
42 default:
43 return Challenge{}, fmt.Errorf("unrecognized challenge type %q", kind)
44 }
45 }
46
View as plain text