aboutsummaryrefslogtreecommitdiffstats
path: root/trustcache.c
diff options
context:
space:
mode:
authorCameron Katri <me@cameronkatri.com>2022-06-16 10:17:00 -0400
committerCameron Katri <me@cameronkatri.com>2022-06-16 10:21:50 -0400
commit9ef2c4a87d6fa816639b610313b67b98e983388a (patch)
treef3c5d259a3e0b87c5301ddf23b3185b4de9fbe9f /trustcache.c
parent6a5be2524f0d31a601687e8b5d09b9af92848dac (diff)
downloadtrustcache-9ef2c4a87d6fa816639b610313b67b98e983388a.tar.gz
trustcache-9ef2c4a87d6fa816639b610313b67b98e983388a.tar.zst
trustcache-9ef2c4a87d6fa816639b610313b67b98e983388a.zip
Add support for new version 2 trustcachesHEADmain
Thanks to Linus Henze for reversing the new format https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056
Diffstat (limited to 'trustcache.c')
-rw-r--r--trustcache.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/trustcache.c b/trustcache.c
index cb6c7b0..f9de404 100644
--- a/trustcache.c
+++ b/trustcache.c
@@ -91,6 +91,10 @@ opentrustcache(const char *path)
if ((cache.entries = calloc(cache.num_entries, sizeof(struct trust_cache_entry1))) == NULL)
exit(EX_OSERR);
fread(cache.entries, sizeof(struct trust_cache_entry1), cache.num_entries, f);
+ } else if (cache.version == 2) {
+ if ((cache.entries = calloc(cache.num_entries, sizeof(struct trust_cache_entry2))) == NULL)
+ exit(EX_OSERR);
+ fread(cache.entries, sizeof(struct trust_cache_entry2), cache.num_entries, f);
} else {
fprintf(stderr, "%s: Unsupported version %i\n", path, cache.version);
exit(1);
@@ -120,6 +124,8 @@ writetrustcache(struct trust_cache cache, const char *path)
fwrite(&cache.hashes[i], sizeof(trust_cache_hash0), 1, f);
else if (cache.version == 1)
fwrite(&cache.entries[i], sizeof(struct trust_cache_entry1), 1, f);
+ else if (cache.version == 2)
+ fwrite(&cache.entries2[i], sizeof(struct trust_cache_entry2), 1, f);
}
fclose(f);