All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandru Gagniuc <mr.nuke.me@gmail.com>
To: u-boot@lists.denx.de, trini@konsulko.com
Cc: Alexandru Gagniuc <mr.nuke.me@gmail.com>,
	Simon Glass <sjg@chromium.org>,
	Michal Simek <michal.simek@xilinx.com>
Subject: [PATCH v3 18/19] image: Add support for relocating crypto_algos in linker lists
Date: Wed, 14 Jul 2021 17:05:46 -0500	[thread overview]
Message-ID: <20210714220547.170371-19-mr.nuke.me@gmail.com> (raw)
In-Reply-To: <20210714211138.GA25256@bill-the-cat>

Function pointers from crypto_algos array are relocated, when
NEEDS_MANUAL_RELOC is set. This relocation doesn't happen if the algo
is placed in a linker list. Implement this relocation.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
---
 common/image-sig.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/image-sig.c b/common/image-sig.c
index d680bf7d98..fb0035524e 100644
--- a/common/image-sig.c
+++ b/common/image-sig.c
@@ -97,6 +97,19 @@ struct crypto_algo *image_get_crypto_algo(const char *full_name)
 	struct crypto_algo *crypto, *end;
 	const char *name;
 
+#if defined(CONFIG_NEEDS_MANUAL_RELOC)
+	static bool done;
+
+	if (!done) {
+		crypto = ll_entry_start(struct crypto_algo, cryptos);
+		end = ll_entry_end(struct crypto_algo, cryptos);
+		for (; crypto < end; crypto++) {
+			crypto->name += gd->reloc_off;
+			crypto->verify += gd->reloc_off;
+		}
+	}
+#endif
+
 	/* Move name to after the comma */
 	name = strchr(full_name, ',');
 	if (!name)
-- 
2.31.1


  parent reply	other threads:[~2021-07-14 22:09 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06 15:03 [PATCH v2] tools: Use a single target-independent config to enable OpenSSL Alexandru Gagniuc
2021-07-14 21:11 ` Tom Rini
2021-07-14 22:05   ` [PATCH v3 00/19] tools: Use a single config for Host OpenSSL (plus dependent patches) Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 01/19] image: Shorten FIT_ENABLE_SHAxxx_SUPPORT Alexandru Gagniuc
2021-07-17 17:47     ` Tom Rini
2021-07-14 22:05   ` [PATCH v3 02/19] image: Rename SPL_SHAxxx_SUPPORT to SPL_FIT_SHAxxx Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 03/19] image: Rename CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 04/19] Kconfig: Rename SPL_CRC32_SUPPORT to SPL_CRC32 Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 05/19] Kconfig: Rename SPL_MD5_SUPPORT to SPL_MD5 Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 06/19] image: Drop IMAGE_ENABLE_SHA1 Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 07/19] image: Drop IMAGE_ENABLE_SHAxxx Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 08/19] image: Drop IMAGE_ENABLE_BEST_MATCH Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 09/19] common: Move host-only logic in image-sig.c to separate file Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 10/19] common: image-sig.c: Remove host-specific logic and #ifdefs Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 11/19] image: Add support for placing crypto_algo in linker lists Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 12/19] image: rsa: Move verification algorithm to a linker list Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 13/19] image: image-sig.c: Remove crypto_algos array Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 14/19] lib: ecdsa: Remove #ifdefs from ecdsa.h Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 15/19] lib: rsa: Remove #ifdefs from rsa.h Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 16/19] image: Eliminate IMAGE_ENABLE_VERIFY macro Alexandru Gagniuc
2021-07-14 22:05   ` [PATCH v3 17/19] image: Eliminate IMAGE_ENABLE_VERIFY_ECDSA macro Alexandru Gagniuc
2021-07-14 22:05   ` Alexandru Gagniuc [this message]
2021-07-14 22:05   ` [PATCH v3 19/19] tools: Use a single target-independent config to enable OpenSSL Alexandru Gagniuc
2021-07-27  9:59     ` Heiko Thiery
2021-07-27 14:34       ` Alex G.
2021-07-27 19:51         ` Heiko Thiery

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210714220547.170371-19-mr.nuke.me@gmail.com \
    --to=mr.nuke.me@gmail.com \
    --cc=michal.simek@xilinx.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.