[crypto] Add bigint_copy() as a convenient wrapper macro

Big integers may be efficiently copied using bigint_shrink() (which
will always copy only the size of the destination integer), but this
is potentially confusing to a reader of the code.

Provide bigint_copy() as an alias for bigint_shrink() so that the
intention of the calling code may be more obvious.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2024-01-19 12:29:29 +00:00
parent 26d3ef062b
commit 13e390d54e
2 changed files with 23 additions and 0 deletions

View File

@@ -8,6 +8,8 @@
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <assert.h>
/**
* Define a big-integer type
*
@@ -176,6 +178,17 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
(dest)->element, dest_size ); \
} while ( 0 )
/**
* Copy big integer
*
* @v source Source big integer
* @v dest Destination big integer
*/
#define bigint_copy( source, dest ) do { \
build_assert ( sizeof ( *(source) ) == sizeof ( *(dest) ) ); \
bigint_shrink ( (source), (dest) ); \
} while ( 0 )
/**
* Multiply big integers
*