package acme import "crypto/tls" type Desire struct { cert tls.Certificate altnames []string solver map[ChalType]Solver } func NewDesire(altnames []string, size int) (*Desire, error) { key, err := NewKey(size) if err != nil { return nil, err } return &Desire{ cert: tls.Certificate{PrivateKey: key}, altnames: altnames, solver: make(map[ChalType]Solver), }, nil } func (d *Desire) RegisterSolver(s Solver) { d.solver[s.Type()] = s } func (d *Desire) HasSolver() bool { return len(d.solver) > 0 } func (d *Desire) LoadKeyPair(certFile, keyFile string) (err error) { d.cert, err = tls.LoadX509KeyPair(certFile, keyFile) return } func (d *Desire) Cert() tls.Certificate { return d.cert }