aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>2021-07-14 17:05:39 -0500
committerTom Rini <trini@konsulko.com>2021-07-16 12:58:56 -0400
commit0980164b1306400e91e5ac389a514111ff74fc01 (patch)
tree402e82c22bfd77d66930daef21ec465c513d0734 /common
parentcab22c8890e97e8b557295ba2177e26392720765 (diff)
downloadu-boot-0980164b1306400e91e5ac389a514111ff74fc01.zip
u-boot-0980164b1306400e91e5ac389a514111ff74fc01.tar.gz
u-boot-0980164b1306400e91e5ac389a514111ff74fc01.tar.bz2
image: Add support for placing crypto_algo in linker lists
The purpose of this change is to enable crypto algorithms to be placed in linker lists, rather than be declared as a static array. The goal is to remove the crypto_algos array in a subsequent patch. Create a new linker list named "cryptos", and search it when image_get_crypto_algo() is invoked. NOTE that adding support for manual relocation of crypto_algos within linker lists is beyond the scope of this patch. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r--common/image-sig.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/image-sig.c b/common/image-sig.c
index 5e2d171..81a3b73 100644
--- a/common/image-sig.c
+++ b/common/image-sig.c
@@ -107,6 +107,7 @@ struct checksum_algo *image_get_checksum_algo(const char *full_name)
struct crypto_algo *image_get_crypto_algo(const char *full_name)
{
+ struct crypto_algo *crypto, *end;
int i;
const char *name;
@@ -133,6 +134,14 @@ struct crypto_algo *image_get_crypto_algo(const char *full_name)
return &crypto_algos[i];
}
+ crypto = ll_entry_start(struct crypto_algo, cryptos);
+ end = ll_entry_end(struct crypto_algo, cryptos);
+ for (; crypto < end; crypto++) {
+ if (!strcmp(crypto->name, name))
+ return crypto;
+ }
+
+ /* Not found */
return NULL;
}