35 Commits

Author SHA1 Message Date
Mateusz Bronk 83655bc3ce Launch Enclave supporting facilities removal
Follows up on 590856d (removing the Linux LE). 
Removes all of whitelist management and LE facilities from the AESM and SDK.
Leaves only skeleton API stubs behind (for partial ABI compatibility).

!BREAKING CHANGES!
 - Launch-related stub(`libsgx_launch.so`) and simulation (`libsgx_launch_sim.so`) libraries 
   removed from the SGX SDK.

 - Removed AESM support for the deprecated Linux SGX out-of-tree (OOT) driver
   (will no longer attempt an enclave load if OOT driver is detected)

 - AESM APIs for launch control and whitelist management will now
   return SGX_ERROR_FEATURE_NOT_SUPPORTED:
   Affected APIs:
      * get_launch_token(...)
      * sgx_get_whitelist_size(...)
      * sgx_get_whitelist(...)
      * sgx_register_wl_cert_chain(...)

- Deprecated `sgx_uae_launch.h` SDK header

- Marked init token inputs `reserved` in the relevant loader APIs (no longer in use)

---------

Co-authored-by: Krzysztof1 Wisniewski <krzysztof1.wisniewski@intel.com>
Signed-off-by: Mateusz Bronk <mateusz.bronk@intel.com>
2026-02-13 17:24:40 +01:00
Bartosz Gotowalski 8e9ed532cc Linux 2.26 Open Source Gold Release
Intel® Software Guard Extensions (Intel® SGX) for Linux OS includes the following changes in version 2.26:
- Upgraded to OpenSSL 3.1.6.
- Removed support for the MbedTLS Trusted Library.
- Added support for Red Hat Enterprise Linux Server 9.4 (for x86_64) and SUSE Linux Enterprise Server 15.6 64-bits.
- Added support for the FIPS 140-3 Certifiable OpenSSL Provider as an experimental feature.
- Bug fixes.

Signed-off-by: Gotowalski, Bartosz <bartosz.gotowalski@intel.com>
2025-05-30 14:54:34 +02:00
Li, Xun a53adeaab7 Linux 2.24 Open Source Gold Release
Upgraded to OpenSSL 3.0.13.
Upgraded to Intel(R) Integrated Performance Primitives (IPP) Cryptography library
  version 2021.11.
Upgraded to Protobuf 3.23.2.
Upgraded MbedTLS to 3.5.2.
Upgraded Intel DCAP Ring3 Abstraction Layer (R3AAL) library to support ConfigFS-TSM
  as communication channel between host and guest for TDX remote attestation.
Upgraded Intel DCAP Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.13.
Upgraded new TDX attestation result “TD_RELAUNCH_ADVISED” in Intel DCAP Quote
  Verification Library (QVL) and Appraisal Engine.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2024-04-26 15:24:15 +08:00
Li, Xun 1bf092a389 Linux 2.19 Open Source Gold Release
Supported the Key Separation and Sharing (KSS) feature in Simulation mode.
Upgraded to OpenSSL 1.1.1t.
Upgraded Intel(R) SGX Quote Verification Enclave to integrate SgxSSL/OpenSSL
  version 1.1.1t.
Added new API in quote verification library to extract FMSPC
  (Family-Model-SteppingPlatform-CustomSKU) value from ECDSA quote.
Added Rust support for SGX ECDSA quote generation.
Added Linux kernel 5.19 support in TDX R3AAL (Ring 3 Attestation Abstraction Layer).
Removed Protobuf in TDX QGS (Quote Generation Service) and R3AAL (Ring 3
  Attestation Abstraction Layer).
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2023-03-10 09:06:21 +08:00
Li, Xun b0af6e75ac Linux 2.18 Open Source Gold Release
Along with the latest processor microcode address CVE-2022-21233.
  Modified the Switchless library to have mitigations for the associated issue.
Added support for the Linux kernel APIs for the Enclave Dynamic Memory
  Management (EDMM) features that are available with the Linux kernel v6.0 or
  later. Refer to the SGX SDK developer reference for details on new trusted
  APIs and enclave configuration for the EDMM features.
Enabled C++17 within SGX SDK.
Supported AMX (Advanced Matrix Extensions) in Enclave.
Replace hardcoded Enclave signing keys in all sample projects with dynamically
generated keys.
Added a new API to allow user to configure enclave internal cache size in the
  Protected File System library.
Upgraded to OpenSSL 1.1.1q and upgraded Intel(R) SGX Quote Verification Enclave
  to integrate SgxSSL/OpenSSL version 1.1.1q.
Supported new OS: Ubuntu* 22.04 LTS 64-bit Server version, CentOS* 8.3 64bits,
  Red Hat* Enterprise Linux* Server 8.6 (for x86_64), SUSE* Linux* Enterprise
  Server 15.4 64bits, Debian* 10 and Anolis* OS 8.6.
Upgraded Intel SGX QE3 to make it backward compatible.
Improved ECDSA quote generation and verification performance by caching PCK
  certificates and collaterals in memory and disk drive.
Added Java support for quote verification library.
Added new APIs to unify Intel SGX and TDX quote verification in Quote
  Verification Library.
Added Advisory ID in ECDSA quote verification supplemental data.
Added Intel TDX support in RA-TLS (Remote Attestation based TLS) library.
Improved TDX quote generation throughput in vsock mode.
Added Rust support for TDX quote generation.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2022-11-24 13:48:25 +08:00
Li, Xun effae62802 Linux 2.17 Open Source Gold Release
Along with the latest processor microcode and re-signed all the Intel(R) SGX
  Architecture Enclaves (AEs) to address CVE-2022-21123, CVE-2022-21125 and
  CVE-2022-21166.
Upgraded to Protobuf 3.20.
Upgraded to SgxSSL/OpenSSL 1.1.1o.
Added Intel TDX Attestation support.
Added Rust support for ECDSA quote verification.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2022-06-15 09:34:27 +08:00
gaoyusong 111a916b5d Fix sgx_create_enclave retry mechanism
Fix sgx_create_enclave retry mechanism when load_enclave
just return SGX_ERROR_MEMORY_MAP_FAILURE. Deprecated the
SGX_ERROR_MEMORY_MAP_CONFLICT. Make the retry mechanism
compatible with new driver and urts.

Signed-off-by: gaoyusong <a869920004@163.com>
2022-04-08 10:29:29 +08:00
Li, Xun edfe42a517 Linux 2.14 Open Source Gold Release
Supported loading enclave at address 0.
Upgraded Intel(R) Quote Verification Enclave to integrate SgxSSL/OpenSSL version 1.1.1k.
Updated the DCAP driver V1.33 with stability fixes, released as V1.33.2. This is to support
  legacy solutions not ready to transition to the latest DCAP driver V1.41 or kernel 5.11+.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2021-07-13 14:01:03 +08:00
lzha101 26c458905b Update copyright. (#708)
Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2021-05-18 10:52:48 +08:00
Li, Xun 73b8b57aea Linux 2.13 Open Source Gold Release
Added more logs in PSW components for identifying issues.
Upgraded OpenSSL and SgxSSL to latest version 1.1.1i in DCAP components.
Added data base migration support in PCCS.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2021-02-04 14:56:56 +08:00
Zhang Lili Z adaeb2af79 Fix bug of setting large reserved momory.
Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2020-07-23 18:28:33 +08:00
Li, Xun 60d36e0de7 Linux 2.10 Open Source Gold Release
Provided a reproducible SDK.
Supported new OS: RHEL 8.1, CentOS 8.1 and Fedora 31.
Supported user to specify platform id in PCK Cert ID Retrieval Tool’s command line option.
Added ability to execute Platform Cert ID Retrieval Tool on multi-package platforms without
  loading enclaves. PCCS now supports this functionality. The platform still needs to support
  SGX.
Updated Platform Cert ID Retrieval Tool and Multi-package registration tool to align with BIOS
  platform manifest changes.
Added .deb and .rpm installers for Platform Cert ID Retrieval Tool and Multi-package
  Registration Agent.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2020-07-07 08:42:08 +08:00
Li, Xun 4589daddd5 Linux 2.9 Open Source Gold Release
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2020-03-10 12:47:50 +08:00
Zhang Lili Z 9ddec08fb9 Linux 2.8 Open Source Gold Release.
Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2020-01-16 09:56:26 +08:00
Zhang Lili Z b13ab0eae7 Linux 2.7 Open Source Gold Release
Changes:
Added a command option “-resign” for Signing Tool.
Split the header file of Un-trusted Architecture Services.
Supported Red Hat* Enterprise Linux* Server 8.0 (for x86_64). And we do not support
Red Hat* Enterprise Linux* Server 7.6 (for x86_64) from this release
Added support for new version Intel(R) Provisioning Certification Server interfaces.
Added new libraries libsgx_epid.so, libsgx_launch.so, libsgx_platform.so and libsgx_quote_ex.so
Fixed bugs.

Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2019-10-18 00:16:40 +08:00
Li, Xun c505e6129a Linux 2.6 Open Source Gold Release
Added support for Reproducible Enclave Build using Docker file.
Added support for Intel AVX-512 instructions and Intel SHA Extensions New Instructions (SHA-NI) in trusted libraries.
Support both EPID and ECDSA based quote for quoting related interfaces in sgx_uae_service library.
Updated key exchange library to support both EPID and ECDSA based remote attestation.
Support new interface to check platform information blob from remote attestation response message.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2019-07-05 14:12:24 +08:00
Li, Xun d10cabebb5 Linux 2.5 Open Source Gold Release
Added new APIs in sgx_uae_service.h and sgx_ukey_exchange.h to support ECDSA quote based remote attestation.
  The set of legacy APIs supports EPID only and the set of new APIs supports ECDSA quotes.
Enhanced Edger8r with structure deep-copy feature.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2019-04-02 13:26:58 +08:00
Li, Xun 28817533cc Linux 2.4 Open Source Gold Release
Added support for the Key Separation and Sharing (KSS) feature.
Provided a set of new encryption and decryption functions such as sgx_hmac256_*.
Provided a new untrusted API: sgx_get_target_info.
Provided a new untrusted API: sgx_create_enclave_from_buffer_ex.
Updated the cryptography library and Architecture Enclaves to use Intel(R) Integrated
  Performance Primitives Cryptography 2019 Update 1.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-12-20 11:02:39 +08:00
Dionna Glaze 1cd53405cc Remove using namespace std
Header files that contain "using namespace std;" do not work well in
codebases that have custom implementations for common classes such as
"string". This is a C++ Core guideline (SF.7).

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2018-09-29 21:01:49 -07:00
Li, Xun 68f44d6e68 Linux 2.3 Open Source Gold Release
Support for Ubuntu 18.04 LTS 64-bit Desktop and Server version
Provided a new set of SGX common loader APIs in sgx_enclave_common.h
Provided the sample code for Switchless Call
Provided a new API in tcrypto: sgx_ecc256_calculate_pub_from_priv
sgx_create_enclave API will ignore the parameter of launch token and will not update it after function successfully returns
Change Intel SGX PSW installer for Ubuntu by
    - Using .deb installer.
    - Using name libsgx-enclave-common_{version string}-1_amd64.deb.
    - Installing Intel SGX Enclave Common loader library.
Bug fixes

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-09-13 09:47:41 +08:00
Li, Xun 1ccf25b64a Linux 2.1 Open Source Gold release
Signed-off-by: Li, Xun <xun.li@intel.com>
2018-01-19 11:02:56 +08:00
Li, Xun 159f60223e Linux 2.0 Open Source Gold release
Signed-off-by: Li, Xun <xun.li@intel.com>
2017-11-07 14:41:20 +08:00
Li, Xun 0fb9f47e78 Linux 1.9 Open Source Gold release
Signed-off-by: Li, Xun <xun.li@intel.com>
2017-06-30 15:51:16 +08:00
Li, Xun 1115c195cd Linux 1.8 Open Source Gold release
Signed-off-by: Li, Xun <xun.li@intel.com>
2017-03-16 15:30:38 +09:00
Sean Christopherson 75349459a9 Bug fix - mprotect may be called with wrong flags
Query si_flags instead of attributes when determining whether a layout
entry should be readable/writable or not accessible.  The current code
magically works because all layout entries that should be marked R/W
will have a non-zero value for attributes since added pages are marked
with either ADD_EXTEND_PAGE or ADD_EXTEND_PAGE.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
2017-02-06 12:31:30 -08:00
llly 6662022bf8 Linux 1.7 Open Source Gold release
Signed-off-by: Li, Xun <xun.li@email.com>
2016-12-20 09:47:15 +09:00
Yu Yuan dc3125fe2e update CLoader::is_relocation_page to check the array index is out of range. Signed-off-by Yu Yuan yuan.yu@intel.com 2016-10-25 14:11:22 +08:00
Yu Yuan d1353eeebe fixed conflict 2016-10-24 15:45:22 +08:00
Yu Yuan 5cd3c5a7bf update enclave_creator to align with driver API change 2016-10-24 12:27:44 +08:00
yuyuany 57cb162f12 Merge pull request #9 from wh0/64bit
Large enclave support
2016-10-20 09:19:16 +08:00
Sean Christopherson 14c19edaaf Clean up build_sections and build_mem_region code
Modify build_mem_region to support an unaligned starting address.  This
makes it symmetrical with regard to starting and ending partial pages;
previously, build_mem_region only support partial pages at the end of a
section (caller was responsible for handling the first page).  Remove
the edge case handling of the first page from build_sections now that
build_mem_region does not have alignment restrictions.

Change the section_info_t parameter in build_mem_region to be a const
reference to eliminate any need to check for a null pointer.

Make the raw_data pointer in section_info_t const, as the source file's
data should never be modified.  This is currently cast away via GET_PTR
in build_pages when calling into add_enclave_page; the add_enclave_page
flow can be modified by a future commit to retain the const modifier.

Add two utilities, is_relocation_page and build_partial_page, to reduce
copy-paste code.

Add PAGE_OFFSET macro to calculate the offset within a page.

Assert on address/size alignment in build_pages and build_context to
document expected alignment and catch any related code bugs.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
2016-09-26 13:46:38 -07:00
Sean Christopherson ed437b5ea1 Set misc_attr for failing _create_enclave flows
Set misc_attr in the top level sgx_create_enclave if _create_enclave
fails.  This provides the user with the platform's capabilities when
sgx_create_enclave fails for any reason other than a parameter error.

Previously the misc_attr was only set upon failure if build_image
failed, which was not helpful when sgx_create_enclave failed due to
an attribute error, e.g. misc_select, as the flow aborted before it
reached build_image.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
2016-09-20 10:45:59 -07:00
zhaohuidu 85947caa12 Upgrade to Linux 1.6 gold release
switch code to linux 1.6 opensource gold release
2016-09-19 14:55:22 +08:00
Warren He 8bde48e653 Avoid overflow when shifting
The urts library and the signing tool often shift page counts as
32-bit integers, then passes the result as a 64-bit value. This patch
casts page counts into 64-bit integers first, so that large page
counts don't overflow.

Signed-off-by: Warren He <-w@berkeley.edu>
2016-08-01 08:39:04 -07:00
Angie Chinchilla 9441de4c38 Initial release of Intel SGX for Linux.
This release is used in conjunction with the linux-sgx-driver Intial release:
https://github.com/01org/linux-sgx-driver
commit-id: 0e865ce5e6b297a787bcdc12d98bada8174be6d7

Intel-id: 33399

Signed-off-by: Angie Chinchilla <angie.v.chinchilla@intel.com>
2016-06-23 18:51:53 -04:00