diff options
| author | Michael Brown | 2016-07-28 17:16:55 +0200 |
|---|---|---|
| committer | Michael Brown | 2016-07-29 01:41:36 +0200 |
| commit | ef50608029d9f5821dd4567ee8d9aa78294e3091 (patch) | |
| tree | 25b4baf3b46106ecd425f8a2f54c17f270e7dbc3 /src/include/ipxe | |
| parent | [crypto] Allow for parsing of partial ASN.1 cursors (diff) | |
| download | ipxe-ef50608029d9f5821dd4567ee8d9aa78294e3091.tar.gz ipxe-ef50608029d9f5821dd4567ee8d9aa78294e3091.tar.xz ipxe-ef50608029d9f5821dd4567ee8d9aa78294e3091.zip | |
[image] Add image_asn1() to extract ASN.1 objects from image
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
| -rw-r--r-- | src/include/ipxe/image.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/ipxe/image.h b/src/include/ipxe/image.h index f33feddad..2e7eb4cee 100644 --- a/src/include/ipxe/image.h +++ b/src/include/ipxe/image.h @@ -17,6 +17,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); struct uri; struct pixel_buffer; +struct asn1_cursor; struct image_type; /** An executable image */ @@ -99,6 +100,19 @@ struct image_type { * @ret rc Return status code */ int ( * pixbuf ) ( struct image *image, struct pixel_buffer **pixbuf ); + /** + * Extract ASN.1 object from image + * + * @v image Image + * @v offset Offset within image + * @v cursor ASN.1 cursor to fill in + * @ret next Offset to next image, or negative error + * + * The caller is responsible for eventually calling free() on + * the allocated ASN.1 cursor. + */ + int ( * asn1 ) ( struct image *image, size_t offset, + struct asn1_cursor **cursor ); }; /** @@ -170,6 +184,8 @@ extern int image_select ( struct image *image ); extern struct image * image_find_selected ( void ); extern int image_set_trust ( int require_trusted, int permanent ); extern int image_pixbuf ( struct image *image, struct pixel_buffer **pixbuf ); +extern int image_asn1 ( struct image *image, size_t offset, + struct asn1_cursor **cursor ); /** * Increment reference count on an image |
