mirror of
https://github.com/ipxe/ipxe
synced 2025-12-21 20:40:25 +03:00
[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 <mcb30@ipxe.org>
This commit is contained in:
@@ -11,6 +11,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
#include <ipxe/crypto.h>
|
||||
#include <ipxe/bigint.h>
|
||||
#include <ipxe/asn1.h>
|
||||
#include <ipxe/tables.h>
|
||||
|
||||
/** 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 */
|
||||
|
||||
Reference in New Issue
Block a user