in go/storage/certdatabase.go [169:210]
func (db *CertDatabase) GetIssuerAndDatesFromStorage() ([]types.IssuerDate, error) {
// The storage directory has the following structure:
// storageDir
// ├─ serials
// ├─ issuer::<issuer id 1>
// ├─ serials::<date 1>::<issuer id 1>
// ├─ serials::<date 2>::<issuer id 1>
// ...
// ├─ issuer::<issuer id 2>
// ├─ serials::<date 1>::<issuer id 2>
// ├─ serials::<date 2>::<issuer id 2>
// ...
// ...
//
allChan := make(chan string)
go func() {
defer close(allChan)
issuerDirs, err := os.ReadDir(db.serialsDir())
if err != nil {
glog.Fatal(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 {
glog.Fatal(err)
}
for _, file := range serialFiles {
name := file.Name()
if strings.HasPrefix(name, "serials::") {
allChan <- name
}
}
}
}()
return db.GetIssuerAndDatesFromChannel(allChan)
}