Browse Source

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>
Matthias Schiffer 3 years ago
parent
commit
f1f65026a9
1 changed files with 3 additions and 3 deletions
  1. 3 3
      main.c

+ 3 - 3
main.c

@@ -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;
 }