aboutsummaryrefslogtreecommitdiff
path: root/desire.go
diff options
context:
space:
mode:
Diffstat (limited to 'desire.go')
-rw-r--r--desire.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/desire.go b/desire.go
index 31e77c3..7811db0 100644
--- a/desire.go
+++ b/desire.go
@@ -12,14 +12,31 @@ type Desire struct {
altnames []string
key *rsa.PrivateKey
cert []*x509.Certificate
+ solver map[ChallengeType]Solver
}
+// Solver decribes a solving interface
+type Solver interface {
+ Solve(token, keyAuth string) error
+ Finish() error
+}
+
+const WellKnown = `/.well-known/acme-challenge/`
+
func NewDesire(altnames []string, size int) (*Desire, error) {
key, err := rsa.GenerateKey(rand.Reader, size)
if err != nil {
return nil, err
}
- return &Desire{key: key, altnames: altnames}, nil
+ return &Desire{
+ key: key,
+ altnames: altnames,
+ solver: make(map[ChallengeType]Solver),
+ }, nil
+}
+
+func (d *Desire) RegisterSolver(c ChallengeType, s Solver) {
+ d.solver[c] = s
}
func (d *Desire) SaveKey(fname string) error {