mirror of
https://github.com/SSLMate/certspotter.git
synced 2025-07-03 10:47:17 +02:00
Only calculate root hash when needed to verify an STH
This commit is contained in:
parent
b87b33a41b
commit
b05a66f634
@ -504,12 +504,11 @@ func saveStateWorker(ctx context.Context, config *Config, ctlog *loglist.Log, st
|
|||||||
if batch.begin != state.DownloadPosition.Size() {
|
if batch.begin != state.DownloadPosition.Size() {
|
||||||
panic(fmt.Errorf("saveStateWorker: expected batch to start at %d but got %d instead", state.DownloadPosition.Size(), batch.begin))
|
panic(fmt.Errorf("saveStateWorker: expected batch to start at %d but got %d instead", state.DownloadPosition.Size(), batch.begin))
|
||||||
}
|
}
|
||||||
rootHash := state.DownloadPosition.CalculateRoot()
|
|
||||||
for {
|
for {
|
||||||
for len(batch.sths) > 0 && batch.sths[0].TreeSize == state.DownloadPosition.Size() {
|
for len(batch.sths) > 0 && batch.sths[0].TreeSize == state.DownloadPosition.Size() {
|
||||||
sth := batch.sths[0]
|
sth := batch.sths[0]
|
||||||
batch.sths = batch.sths[1:]
|
batch.sths = batch.sths[1:]
|
||||||
if sth.RootHash != rootHash {
|
if rootHash := state.DownloadPosition.CalculateRoot(); sth.RootHash != rootHash {
|
||||||
return &verifyEntriesError{
|
return &verifyEntriesError{
|
||||||
sth: &sth.SignedTreeHead,
|
sth: &sth.SignedTreeHead,
|
||||||
entriesRootHash: rootHash,
|
entriesRootHash: rootHash,
|
||||||
@ -536,7 +535,6 @@ func saveStateWorker(ctx context.Context, config *Config, ctlog *loglist.Log, st
|
|||||||
batch.entries = batch.entries[1:]
|
batch.entries = batch.entries[1:]
|
||||||
leafHash := merkletree.HashLeaf(entry.LeafInput())
|
leafHash := merkletree.HashLeaf(entry.LeafInput())
|
||||||
state.DownloadPosition.Add(leafHash)
|
state.DownloadPosition.Add(leafHash)
|
||||||
rootHash = state.DownloadPosition.CalculateRoot()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := config.State.StoreLogState(ctx, ctlog.LogID, state); err != nil {
|
if err := config.State.StoreLogState(ctx, ctlog.LogID, state); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user