Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp2560456rwb; Sun, 4 Sep 2022 19:26:49 -0700 (PDT) X-Google-Smtp-Source: AA6agR724mpKUTlvZqBShmf4sowBNd6SiHn5hJ/U4WlUEUp6CmjuhC0K9yoeF4VeXOYexLe357eR X-Received: by 2002:a17:906:5d07:b0:738:b86d:df3d with SMTP id g7-20020a1709065d0700b00738b86ddf3dmr33525370ejt.617.1662344809649; Sun, 04 Sep 2022 19:26:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662344809; cv=none; d=google.com; s=arc-20160816; b=BeT12Kk9yFAMIQDz1ETXgjvR2lfjiioqSvsuYQaVF9ajZJa/5u/kSxQnx48DxYOvq5 3hV+ZeLJPY2OReVBqA61qR5km7iqQevWMNUskGN7voHAMdU0UtFgkLGoix4nx91lJAzW PoA7eLYdnWFAk6ZJhBttNGJalXtLLpdGtQ8K1t9/J9mxkyBjIA6ButbmRYmK9twqPelI xqUms1GPVAsFi0iw4FpqjqJ8u0qxu5DVlA6bioToOTGf1XBwR2nyA/X5dZhieZC4qLjg DL8aoeLx4OPMWwL0fpuvv2zEgJjZacE6sgVl3XpoFIhqSBGnUvKmnQ4P76OECfjr2ZpS BMhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=OVhwERY6tnqv/77SrSUgj/blUsygEe1izEgxhxX0w5Q=; b=RuKKVM4itDPeRK/48+qgfHY2pBHD7h22D5msmXo2xofBYaD3ZA+3R9ASS26eTUKN0J phl9y9uAC9dRjjyKWQF4NROvI7bInwJRo9fUcTO80GX88FaN2yqr5E0Aya2+8WyI+Nts 2/Opp1QPa5rT3Y/FFiLppHTRtKlropMMdcTie/SiCXRFQMhrCMa2JLktDD55XKOakJeR XzTqoIlKYM5ei0VJ2Xtt2adOO987NphXm/lBfUL4MusPZjiR0WiopVYNYcz0iT0cbrrN 76XNDZU88K/fLyYvs3BAf8ZLI1Jbisp1PxUsCX2jU8Sb8KO+5OAOtRCIkjaAHtni/GIM XBJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V0DQ3us3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x1-20020aa7dac1000000b0044e7371f762si1988523eds.260.2022.09.04.19.26.24; Sun, 04 Sep 2022 19:26:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V0DQ3us3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235599AbiIECEu (ORCPT + 99 others); Sun, 4 Sep 2022 22:04:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235591AbiIECEn (ORCPT ); Sun, 4 Sep 2022 22:04:43 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13F63DF75; Sun, 4 Sep 2022 19:04:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id E6C17CE0FA6; Mon, 5 Sep 2022 02:04:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48540C433D6; Mon, 5 Sep 2022 02:04:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662343475; bh=zZQCkfIPNszWIc75n8kSu1sHOjjYf8Pclxp9XteeajU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V0DQ3us3Rm1/fNTCYcZqbBObH/D81+g4eCIPsWFkOkWapGCo+Kr5BrGuBm+QcggGa tkZrMjtaZLH3w8osmtEQP8GoIUzj9fe6CIa/tirpJfLtjwySsbTbqFkCDaxnRZZY60 YqdJkS8kjNOd53vpRvO/x067Ux14BtTzt8SkXRkatZ1qEJtoRx58rdrlSm/9IqEYEe bW1Mz7z6a18MiRGo6SrqDWEvPmuGEVCnfv6PNmKsm329Kx9BjxW20+6kG1jJlohnWy VjXReu7xtAw9PcyX6jnUL2XzRGPc3VGZdXFfqrH3mep84ByaiBpGMbfOx/YmeaoDPb O6CFMfEWvtKYQ== From: Jarkko Sakkinen To: linux-sgx@vger.kernel.org Cc: Haitao Huang , Vijay Dhanraj , Reinette Chatre , Dave Hansen , Jarkko Sakkinen , Shuah Khan , 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 Message-Id: <20220905020411.17290-4-jarkko@kernel.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220905020411.17290-1-jarkko@kernel.org> References: <20220905020411.17290-1-jarkko@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.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 --- 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