prepare-root: Only support base64 formated public key files

I've updated the automotive samples to not use the raw format, so
there is no use anymore to support both formats, as base64 is strictly
better.
This commit is contained in:
Alexander Larsson 2023-08-16 10:59:47 +02:00
parent c94388f3dd
commit 0a79b3b1e2

View File

@ -330,23 +330,16 @@ load_composefs_config (GKeyFile *config, GError **error)
return glnx_prefix_error_null (error, "Reading public key file '%s'", return glnx_prefix_error_null (error, "Reading public key file '%s'",
ret->signature_pubkey); ret->signature_pubkey);
/* Raw binary form if right size */ g_auto (GStrv) lines = g_strsplit (pubkeys, "\n", -1);
if (pubkeys_size == OSTREE_SIGN_ED25519_PUBKEY_SIZE) for (char **iter = lines; *iter; iter++)
g_ptr_array_add (ret->pubkeys, g_bytes_new_take (g_steal_pointer (&pubkeys), pubkeys_size));
else /* otherwise text with base64 key per line */
{ {
g_auto (GStrv) lines = g_strsplit (pubkeys, "\n", -1); const char *line = *iter;
for (char **iter = lines; *iter; iter++) if (!*line)
{ continue;
const char *line = *iter;
if (!*line)
continue;
gsize pubkey_size; gsize pubkey_size;
g_autofree guchar *pubkey = g_base64_decode (line, &pubkey_size); g_autofree guchar *pubkey = g_base64_decode (line, &pubkey_size);
g_ptr_array_add (ret->pubkeys, g_ptr_array_add (ret->pubkeys, g_bytes_new_take (g_steal_pointer (&pubkey), pubkey_size));
g_bytes_new_take (g_steal_pointer (&pubkey), pubkey_size));
}
} }
if (ret->pubkeys->len == 0) if (ret->pubkeys->len == 0)