Always pad fingerprints to 16 characters

Fingerprints were not padded with zeros. This led to a ucert failure
when the first byte of the fingerprint is 00, as it expects the
fingerprint to have a constant length (and this expectation seems
reasonable to me).

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Acked-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Matthias Schiffer 2020-05-16 17:29:00 +02:00
parent f34a383eee
commit f1f65026a9
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C

6
main.c
View File

@ -149,7 +149,7 @@ static void write_file(const char *name, const uint8_t *fingerprint,
if (comment)
fputs(comment, f);
else
fprintf(f, "%s %"PRIx64, prefix,
fprintf(f, "%s %016"PRIx64, prefix,
fingerprint_u64(fingerprint));
fprintf(f, "\n%s\n", buf);
fclose(f);
@ -177,7 +177,7 @@ static int verify(const char *msgfile)
}
if (!pubkeyfile) {
snprintf(buf, sizeof(buf), "%s/%"PRIx64, pubkeydir,
snprintf(buf, sizeof(buf), "%s/%016"PRIx64, pubkeydir,
fingerprint_u64(sig.fingerprint));
pubkeyfile = buf;
}
@ -276,7 +276,7 @@ static int fingerprint(void)
else
return 1;
fprintf(stdout, "%"PRIx64"\n", fingerprint_u64(fp));
fprintf(stdout, "%016"PRIx64"\n", fingerprint_u64(fp));
return 0;
}