aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/cms.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2024-08-23 12:25:36 +0100
committerMichael Brown <mcb30@ipxe.org>2024-08-23 13:43:42 +0100
commitbdb5b4aef46ed34b47094652f3eefc7d0463d166 (patch)
treefe75769107040f350e611c0bb4b4f5c340e1f861 /src/include/ipxe/cms.h
parent46937a9df622d1e9fb5b1e926a04176b8855fdce (diff)
downloadipxe-bdb5b4aef46ed34b47094652f3eefc7d0463d166.tar.gz
[crypto] Hold CMS message as a single ASN.1 object
Reduce the number of dynamic allocations required to parse a CMS message by retaining the ASN.1 cursor returned from image_asn1() for the lifetime of the CMS message. This allows embedded ASN.1 cursors to be used for parsed objects within the message, such as embedded signatures. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/cms.h')
-rw-r--r--src/include/ipxe/cms.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/include/ipxe/cms.h b/src/include/ipxe/cms.h
index 1c8a0c587..bffb06bfe 100644
--- a/src/include/ipxe/cms.h
+++ b/src/include/ipxe/cms.h
@@ -48,15 +48,15 @@ struct cms_participant {
struct pubkey_algorithm *pubkey;
/** Signature or key value */
- void *value;
- /** Length of signature or key value */
- size_t len;
+ struct asn1_cursor value;
};
/** A CMS message */
struct cms_message {
/** Reference count */
struct refcnt refcnt;
+ /** Raw ASN.1 data */
+ struct asn1_cursor *raw;
/** Message type */
struct cms_type *type;