Loop over tiled_logs in addition to logs, when resolving SCT log_id's

This commit is contained in:
2026-04-21 17:22:48 +02:00
parent 7a44808136
commit bbd566d10e

View File

@@ -396,15 +396,19 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) {
return nil, err
}
var list struct {
Operators []struct {
Name string `json:"name"`
Logs []struct {
type logEntry struct {
Description string `json:"description"`
LogID string `json:"log_id"`
URL string `json:"url"`
SubmissionURL string `json:"submission_url"`
MonitoringURL string `json:"monitoring_url"`
State map[string]json.RawMessage `json:"state"`
} `json:"logs"`
}
var list struct {
Operators []struct {
Name string `json:"name"`
Logs []logEntry `json:"logs"`
TiledLogs []logEntry `json:"tiled_logs"`
} `json:"operators"`
}
if err := json.Unmarshal(data, &list); err != nil {
@@ -413,7 +417,7 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) {
result := make(map[string]CTLogInfo)
for _, op := range list.Operators {
for _, log := range op.Logs {
for _, log := range append(append([]logEntry{}, op.Logs...), op.TiledLogs...) {
raw, err := base64.StdEncoding.DecodeString(log.LogID)
if err != nil {
continue
@@ -424,9 +428,16 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) {
state = k
break
}
url := log.URL
if url == "" {
url = log.MonitoringURL
}
if url == "" {
url = log.SubmissionURL
}
result[hexID] = CTLogInfo{
Description: log.Description,
URL: log.URL,
URL: url,
Operator: op.Name,
State: state,
}