Skip to content

Commit e1c5e5a

Browse files
committed
Simply ignore invalid entries instead of discarding the entire chain.
1 parent d8355ff commit e1c5e5a

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

sd/directory.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -378,20 +378,22 @@ func (f *RecordDirectory) update() ([]*eps.SignedChangeRecord, error) {
378378

379379
verifiedChains := make([][]*eps.SignedChangeRecord, 0)
380380
for i, chain := range chains {
381-
valid := true
381+
validRecords := make([]*eps.SignedChangeRecord, 0)
382382
for j, record := range chain {
383383
eps.Log.Infof("Chain %d, record %d: %s", i, j, record.Hash)
384384
// we verify the signature of the record
385385
if ok, err := helpers.VerifyRecord(record, chain[:j], f.rootCerts, f.intermediateCerts); err != nil {
386-
return nil, err
386+
eps.Log.Errorf("Warning, error verifying record: %v", err)
387+
continue
387388
} else if !ok {
388389
eps.Log.Warning("signature does not match, ignoring this chain...")
389-
valid = false
390-
break
390+
continue
391+
} else {
392+
validRecords = append(validRecords, record)
391393
}
392394
}
393-
if valid {
394-
verifiedChains = append(verifiedChains, chain)
395+
if len(validRecords) > 0 {
396+
verifiedChains = append(verifiedChains, validRecords)
395397
}
396398
}
397399

0 commit comments

Comments
 (0)