coredns/plugin/sign/sign.go
Zhou Hao abeba46029
fix misspell (#4081)
Signed-off-by: Zhou Hao <zhouhao@cn.fujitsu.com>
2020-08-20 09:59:35 +02:00

38 lines
1.4 KiB
Go

// Package sign implements a zone signer as a plugin.
package sign
import (
"path/filepath"
"time"
)
// Sign contains signers that sign the zones files.
type Sign struct {
signers []*Signer
}
// OnStartup scans all signers and signs or resigns zones if needed.
func (s *Sign) OnStartup() error {
for _, signer := range s.signers {
why := signer.resign()
if why == nil {
log.Infof("Skipping signing zone %q in %q: signatures are valid", signer.origin, filepath.Join(signer.directory, signer.signedfile))
continue
}
go signAndLog(signer, why)
}
return nil
}
// Various duration constants for signing of the zones.
const (
durationExpireDays = 7 * 24 * time.Hour // max time allowed before expiration
durationResignDays = 6 * 24 * time.Hour // if the last sign happened this long ago, sign again
durationSignatureExpireDays = 32 * 24 * time.Hour // sign for 32 days
durationRefreshHours = 5 * time.Hour // check zones every 5 hours
durationInceptionJitter = -18 * time.Hour // default max jitter for the inception
durationExpirationDayJitter = 5 * 24 * time.Hour // default max jitter for the expiration
durationSignatureInceptionHours = -3 * time.Hour // -(2+1) hours, be sure to catch daylight saving time and such, jitter is subtracted
)
const timeFmt = "2006-01-02T15:04:05.000Z07:00"