From 05c13716f9a6323d8c8b4006f11dc2fc86493371 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 20 Mar 2012 04:20:06 +0000 Subject: [crypto] Use linker tables for RSA digestInfo prefixes Allow external code to specify RSA digestInfo prefixes for additional digest algorithms. Signed-off-by: Michael Brown --- src/include/ipxe/rsa.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/include') diff --git a/src/include/ipxe/rsa.h b/src/include/ipxe/rsa.h index 87e75a82f..d43d336ab 100644 --- a/src/include/ipxe/rsa.h +++ b/src/include/ipxe/rsa.h @@ -11,6 +11,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include #include +#include /** ASN.1 OID for iso(1) member-body(2) us(840) */ #define ASN1_OID_ISO_US ASN1_OID_ISO_MEMBERBODY, ASN1_OID_DOUBLE ( 840 ) @@ -111,6 +112,23 @@ FILE_LICENCE ( GPL2_OR_LATER ); RSA_DIGESTALGORITHM ( __VA_ARGS__ ), \ RSA_DIGEST_PREFIX ( digest_size ) +/** An RSA digestInfo prefix */ +struct rsa_digestinfo_prefix { + /** Digest algorithm */ + struct digest_algorithm *digest; + /** Prefix */ + const void *data; + /** Length of prefix */ + size_t len; +}; + +/** RSA digestInfo prefix table */ +#define RSA_DIGESTINFO_PREFIXES \ + __table ( struct rsa_digestinfo_prefix, "rsa_digestinfo_prefixes" ) + +/** Declare an RSA digestInfo prefix */ +#define __rsa_digestinfo_prefix __table_entry ( RSA_DIGESTINFO_PREFIXES, 01 ) + /** An RSA context */ struct rsa_context { /** Allocated memory */ -- cgit v1.2.3-55-g7522