From: Jarkko Sakkinen <jarkko@kernel.org>
To: linux-sgx@vger.kernel.org
Cc: Haitao Huang <haitao.huang@linux.intel.com>,
Vijay Dhanraj <vijay.dhanraj@intel.com>,
Reinette Chatre <reinette.chatre@intel.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Jarkko Sakkinen <jarkko@kernel.org>,
Shuah Khan <shuah@kernel.org>,
linux-kselftest@vger.kernel.org (open list:KERNEL SELFTEST
FRAMEWORK), linux-kernel@vger.kernel.org (open list)
Subject: [PATCH v2 3/5] selftests/sgx: Use encl->encl_size in sigstruct.c
Date: Mon, 5 Sep 2022 05:04:09 +0300 [thread overview]
Message-ID: <20220905020411.17290-4-jarkko@kernel.org> (raw)
In-Reply-To: <20220905020411.17290-1-jarkko@kernel.org>
The final enclave address range (referred as ELRANGE in Intel SDM)
calculation is a reminiscent of signing tool being a separate command-line
utility, and sigstruct being produced during the compilation. Given that
nowadays the sigstruct is calculated on-fly, use the readily calculated
encl->encl_size instead, in order to remove duplicate code.
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
---
tools/testing/selftests/sgx/load.c | 5 +++--
tools/testing/selftests/sgx/main.h | 1 -
tools/testing/selftests/sgx/sigstruct.c | 8 ++------
3 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/sgx/load.c b/tools/testing/selftests/sgx/load.c
index 94bdeac1cf04..3b4e2422fb09 100644
--- a/tools/testing/selftests/sgx/load.c
+++ b/tools/testing/selftests/sgx/load.c
@@ -174,6 +174,7 @@ uint64_t encl_get_entry(struct encl *encl, const char *symbol)
bool encl_load(const char *path, struct encl *encl, unsigned long heap_size)
{
const char device_path[] = "/dev/sgx_enclave";
+ unsigned long contents_size;
struct encl_segment *seg;
Elf64_Phdr *phdr_tbl;
off_t src_offset;
@@ -298,9 +299,9 @@ bool encl_load(const char *path, struct encl *encl, unsigned long heap_size)
if (seg->src == MAP_FAILED)
goto err;
- encl->src_size = encl->segment_tbl[j].offset + encl->segment_tbl[j].size;
+ contents_size = encl->segment_tbl[j].offset + encl->segment_tbl[j].size;
- for (encl->encl_size = 4096; encl->encl_size < encl->src_size; )
+ for (encl->encl_size = 4096; encl->encl_size < contents_size; )
encl->encl_size <<= 1;
return true;
diff --git a/tools/testing/selftests/sgx/main.h b/tools/testing/selftests/sgx/main.h
index 82b33f8db048..9c1bc0d9b43c 100644
--- a/tools/testing/selftests/sgx/main.h
+++ b/tools/testing/selftests/sgx/main.h
@@ -20,7 +20,6 @@ struct encl {
void *bin;
off_t bin_size;
void *src;
- size_t src_size;
size_t encl_size;
off_t encl_base;
unsigned int nr_segments;
diff --git a/tools/testing/selftests/sgx/sigstruct.c b/tools/testing/selftests/sgx/sigstruct.c
index 50c5ab1aa6fa..0c7678d2594b 100644
--- a/tools/testing/selftests/sgx/sigstruct.c
+++ b/tools/testing/selftests/sgx/sigstruct.c
@@ -212,13 +212,9 @@ struct mrecreate {
} __attribute__((__packed__));
-static bool mrenclave_ecreate(EVP_MD_CTX *ctx, uint64_t blob_size)
+static bool mrenclave_ecreate(EVP_MD_CTX *ctx, uint64_t encl_size)
{
struct mrecreate mrecreate;
- uint64_t encl_size;
-
- for (encl_size = 0x1000; encl_size < blob_size; )
- encl_size <<= 1;
memset(&mrecreate, 0, sizeof(mrecreate));
mrecreate.tag = MRECREATE;
@@ -343,7 +339,7 @@ bool encl_measure(struct encl *encl)
if (!ctx)
goto err;
- if (!mrenclave_ecreate(ctx, encl->src_size))
+ if (!mrenclave_ecreate(ctx, encl->encl_size))
goto err;
for (i = 0; i < encl->nr_segments; i++) {
--
2.37.2
next prev parent reply other threads:[~2022-09-05 2:04 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-05 2:04 [PATCH v2 0/5] Test a large dynamic heap Jarkko Sakkinen
2022-09-05 2:04 ` [PATCH v2 1/5] selftests/sgx: Retry the ioctl()'s returned with EAGAIN Jarkko Sakkinen
2022-09-08 22:43 ` Reinette Chatre
2022-09-08 23:19 ` Jarkko Sakkinen
2022-09-08 23:20 ` Jarkko Sakkinen
2022-09-08 23:31 ` Jarkko Sakkinen
2022-09-09 0:06 ` Reinette Chatre
2022-09-09 4:01 ` Jarkko Sakkinen
2022-09-12 10:40 ` Jarkko Sakkinen
2022-09-05 2:04 ` [PATCH v2 2/5] selftests/sgx: Move ENCL_HEAP_SIZE_DEFAULT to main.c Jarkko Sakkinen
2022-09-08 22:43 ` Reinette Chatre
2022-09-05 2:04 ` Jarkko Sakkinen [this message]
2022-09-08 22:43 ` [PATCH v2 3/5] selftests/sgx: Use encl->encl_size in sigstruct.c Reinette Chatre
2022-09-05 2:04 ` [PATCH v2 4/5] selftests/sgx: Include the dynamic heap size to the ELRANGE calculation Jarkko Sakkinen
2022-09-08 22:43 ` Reinette Chatre
2022-09-05 2:04 ` [PATCH v2 5/5] selftests/sgx: Add SGX selftest augment_via_eaccept_long Jarkko Sakkinen
2022-09-08 21:17 ` Jarkko Sakkinen
2022-09-08 22:44 ` Reinette Chatre
2022-09-08 23:28 ` Jarkko Sakkinen
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=20220905020411.17290-4-jarkko@kernel.org \
--to=jarkko@kernel.org \
--cc=dave.hansen@linux.intel.com \
--cc=haitao.huang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-sgx@vger.kernel.org \
--cc=reinette.chatre@intel.com \
--cc=shuah@kernel.org \
--cc=vijay.dhanraj@intel.com \
/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.