in go/storage/certdatabase.go [212:255]
func (db *CertDatabase) removeExpiredSerialsFromStorage(t time.Time) error {
issuerDirs, err := os.ReadDir(db.serialsDir())
if err != nil {
return err
}
for _, issuerDir := range issuerDirs {
issuerName := issuerDir.Name()
issuerDirFull := filepath.Join(db.serialsDir(), issuerName)
if !(issuerDir.IsDir() && strings.HasPrefix(issuerName, "issuer::")) {
continue
}
serialFiles, err := os.ReadDir(issuerDirFull)
if err != nil {
return err
}
for _, serialFile := range serialFiles {
name := serialFile.Name()
serialFileFull := filepath.Join(issuerDirFull, name)
parts := strings.Split(name, "::")
if len(parts) != 3 {
glog.Warningf("Unexpected serial file name: %s", name)
continue
}
expDate, err := types.NewExpDate(parts[1])
if err != nil {
glog.Warningf("Couldn't parse expiration date %s: %s", name, err)
continue
}
if expDate.IsExpiredAt(t) {
os.Remove(serialFileFull)
}
}
// If the issuerDir is now empty, remove it
serialFiles, err = os.ReadDir(issuerDirFull)
if err != nil {
return err
}
if len(serialFiles) == 0 {
os.Remove(issuerDirFull)
continue
}
}
return nil
}