image: add functions to add and remove signatures

Rather than setting ->sigbuf directly, add two functions to handle image
signature addition and removal:

 image_add_signature(image, sig, sigsize);
 image_remove_signature(image);

And warn when a signature is to be overwritten.

Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
This commit is contained in:
Jeremy Kerr 2012-08-03 10:03:14 +08:00
parent 36e79114d2
commit d27647ba69
7 changed files with 56 additions and 12 deletions

20
image.c
View file

@ -390,6 +390,26 @@ int image_hash_sha256(struct image *image, uint8_t digest[])
return !rc;
}
int image_add_signature(struct image *image, void *sig, int size)
{
/* we only support one signature at present */
if (image->sigbuf) {
fprintf(stderr, "warning: overwriting existing signature\n");
talloc_free(image->sigbuf);
}
image->sigbuf = sig;
image->sigsize = size;
return 0;
}
void image_remove_signature(struct image *image)
{
if (image->sigbuf)
talloc_free(image->sigbuf);
image->sigbuf = NULL;
image->sigsize = 0;
}
int image_write(struct image *image, const char *filename)
{
struct cert_table_header cert_table_header;