73 Commits

Author SHA1 Message Date
Zhang, Lili Z f47d0e5a01 Linux 2.21 Open Source Gold Release
Upgraded to OpenSSL 1.1.1u.
Introduced Intel(R) TDX 1.4 and 1.5 support
Upgraded Ring3 Abstraction Layer (R3AAL) library to support
Intel(R) TDX MVP 6.2 kernel
Enhanced quote verification performance in multi-thread scenarios
Fixed bugs.

Signed-off-by: Zhang, Lili Z <lili.z.zhang@intel.com>
2023-08-22 10:10:14 +08:00
Camila Fonseca 4b888cda73 Fixed minor typo in key definitions (#951)
* Fixed minor typo in sgx_tseal.h and key definitions.

---------

Signed-off-by: Camila Fonseca inrymail@gmail.com
2023-07-21 14:45:09 +08:00
Li, Xun e7bbc158fa Linux 2.20 Open Source Gold Release
Supported the AEX (Asynchronous Enclave Exit) Notify feature.
Supported Mbed-TLS Cryptography library (excluding SSL/TLS portion) in Enclave.
Applied patches to OpenSSL 1.1.1t, fixed CVE-2023-1255, CVE-2023-0465 and
  CVE-2023-0466.
Upgraded to Intel(R) Integrated Performance Primitives (IPP) Cryptography
  library version 2021.7.
Upgraded Intel SGX Quote Verification Enclave to integrate updated SgxSSL.
Enhanced the attestation local cache functionality by giving users the option
  to provide their own cache file.
Enabled QPL/QCNL log in DCAP samples.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2023-07-21 10:11:26 +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 607a226fc3 Linux 2.18.1 Open Source Gold Release
Fixed enclave load failure in environments where no symbolic links, /dev/sgx/{enclave,
provision} are created to point to the default SGX device nodes exported by kernel,
/dev/{sgx_enclave, sgx_provision}, respectively.

Signed-off-by: Li, Xun <xun.li@intel.com>
2023-01-13 13:18:07 +08:00
volcano 984f3c9fe8 Fix number of layout entry for global_data_t (#924)
Signed-off-by: volcano0dr <volcano_dr@163.com>
2023-01-05 17:03:23 +08:00
Maja Kądziołka 3be7be4060 Fix data races around g_enclave_state (#889)
Before this commit, the memory access within `do_init_enclave` setting
`g_enclave_state` to `ENCLAVE_INIT_DONE` was entirely unsynchronized.
This could cause the compiler to reorder this access, performing it
earlier than actually written. This would effectively unlock the memory
being initialized for use within other threads before the initialization
is finished.

The issue isn't entirely theoretical, as such an optimization could for
example allow to make one of the calls to `memset_s` a tailcall. The
only thing preventing this is the difficulty of proving that the memset
doesn't alias `g_enclave_state`.

One way to fix this would be to access `g_enclave_state` with C11
atomics of ordering `acq_rel` or stronger. However, the freestanding
environment of the SDK doesn't support C11 atomics. Thus we use the
existing assembly wrappers, which are sufficient as achieving `acq_rel`
semantics in x86 assembly doesn't require any special instructions.

To make it less likely that a similar flaw is reintroduced, we remove
the `extern` declaration of `g_enclave_state` from the header files.

Signed-off-by: Maja Kądziołka <maya@invisiblethingslab.com>
2023-01-05 13:57:46 +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 70e1535caa Linux 2.17.1 Open Source Gold Release
Along with the latest processor microcode address CVE-2022-21233.
- Modified the Edger8r to generate code with mitigations for the associated issue.
- Modified the API memcpy and memcpy_s to have mitigations for the associated issue.

Signed-off-by: Li, Xun <xun.li@intel.com>
2022-08-10 08:55:34 +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
Zhang Lili 1a98debccc Fix get_max_tcs_num() API for SGX1.
Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2022-04-08 14:31:15 +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 321a6580fb Linux 2.16 Open Source Gold Release
Upgraded to OpenSSL 1.1.1m.
Provided RA-TLS (Remote Attestation based Transport Layer Security) APIs and
  Samples.
Supported PKRU (Protection Key rights Register) in Enclave.
Added APIs of SHA384 and VerifyReport2 to support TDX.
Enhanced QPL (Quote Provider Library) to support caching Intel PCK
  (Provisioning Certificate Key) certificate chain in local memory, or
  retrieving Intel PCK cert chain from local HTTP/S address.
Upgraded Intel ECDSA Quote Verification Enclave to integrate SgxSSL/OpenSSL
  version 1.1.1m.
Introduced Intel ID enclave for QE identity generation.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2022-04-06 12:06:27 +08:00
Li, Xun a59e51e223 Linux 2.15.1 Open Source Gold Release
Upgraded to OpenSSL 1.1.1l

Signed-off-by: Li, Xun <xun.li@intel.com>
2021-11-18 15:30:52 +08:00
Zhang Lili 6bb988fd7c Linux 2.15 Open Source Gold Release
Upgraded Intel(R) Integrated Performance Primitives Cryptography library to version 2021 update 3.
Upgraded Intel(R) SGX Architecture Enclaves based on new IPP crypto library.
Added software prevention of fault injection attacks.
Upgraded to GNU Binutils 2.36.1. Stopped providing ld.gold (developers should use ld instead).
Supported Google Protobuf C++.
Enabled C++14 within SGX SDK.
Added SM2/3/4 Samples.
Fixed bugs.

Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2021-09-30 00:32:18 +00:00
lzha101 ca3795bdfb Change some type definitions in pthread. (#738)
Make sure the pthread structures be initialized by PTHREAD_*_INITIALIZER.
Also fix one potential race condition issue.

Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2021-08-23 16:25:06 +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
Sylvain Bellemare 90eb55fc1f Support setting BINUTILS_DIR as an env var (#718)
Signed-off-by: Sylvain Bellemare <sbellem@gmail.com>
2021-07-06 15:07:44 +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
Zhang Lili f1fcf9175d Linux 2.13.3 Open Source Gold Release
Upgraded to Intel(R) Integrated Performance Primitives (IPP) Cryptography library version 2020 update 3.
Upgraded Intel(R) SGX Architecture Enclaves based on new IPP crypto library.
Fixed bugs.

Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2021-05-07 23:33:49 +08:00
Li, Xun 56faf11a45 Revert "Linux 2.13.1 Open Source Gold Release"
Linux 2.13.1 is broken.

This reverts commit 63d0e65cfa.

Signed-off-by: Li, Xun <xun.li@intel.com>
2021-04-06 12:00:15 +08:00
Li, Xun 63d0e65cfa Linux 2.13.1 Open Source Gold Release
Upgraded Intel(R) Integrated Performance Primitives (IPP) Cryptography library to version 2020 update 3.
Upgraded Intel(R) SGX Architecture Enclaves based on new IPP crypto library.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2021-03-30 13:56:43 +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
Li, Xun 608fe1df4c Linux 2.12 Open Source Gold Release
Added Ubuntu 20.04 and CentOS 8.2 support.
Added Intel(R) Provisioning Certification Service V3 API support for ECDSA attestation.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2020-11-11 17:17:33 +08:00
Yu Ding d10c025eb0 Typo fixes (#588)
Signed-off-by: Yu Ding dingelish@gmail.com
2020-09-09 16:31:22 +08:00
Li, Xun b9b071b544 Linux 2.11 Open Source Gold Release
Supported new OS: RHEL 8.2 and SUSE 15.
Provided standalone Intel(R) SGX DCAP Quote verification library installer.
Added Intel(R) SGX DCAP Platform Certificate ID Retrieval Tool and Multi-package Registration
  Agent (MPA) installers into SGX installation repo.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2020-08-28 09:01:06 +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 1eaa4551d4 Linux 2.9.1 Open Source Gold Release
Supported to query Intel(R) SGX attestation key ID list.
Fixed bugwqs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2020-04-09 14:45:01 +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
Li, Xun d166ff0c80 Linux 2.7.1 Open Source Gold Release
Updated OpenSSL to 1.1.1d.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2019-11-12 13:55:35 +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
Dionna Glaze f271c87d0a Guard weak_alias definition with ifndef
The musl libc implementation already defines weak_alias and conflicts
with this unguarded define.

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2019-08-13 11:52:03 -07: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 b46e0b0003 Update Deb installer
Signed-off-by: Li, Xun <xun.li@intel.com>
2019-04-15 16:19:09 +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
Dionna Amalie Glaze fd859f67ff Remove unused ill-defined 'storage' type field
The templated "storage" field in randomly_placed_buffer is uses alignas
in an undefined way. The field is also not used, so this change removes
it.

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2019-02-04 22:12:41 -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
lzha101 af25522a05 Merge pull request #323 from deeglaze/remove_using_std
Remove using namespace std

Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2018-10-30 08:46:19 +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 d9ba97c7fa Remerge PR #304 #308 #309 #310 #313
These PRs are lost in Linux 2.3.1 Open Source Gold Release

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-09-28 09:52:02 +08:00
Li, Xun 12223e5a17 Linux 2.3.1 Open Source Gold Release
Bug fixes

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-09-28 08:42:40 +08:00
Dionna Glaze ebf217908d Include sl_util.h to define MIN in mini_snprintf.h
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2018-09-17 11:41:17 -07:00
lzha101 ef91b293ad Merge pull request #309 from deeglaze/remove_sgx_urts_include
Remove #include sgx_urts.h from sgx_uswitchless

Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2018-09-17 14:36:54 +08: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
Dionna Glaze 7785922829 Remove #include sgx_urts.h from sgx_uswitchless
The sgx_uswitchless.h header is used in both trusted and untrusted
contexts from transitive inclusions. The sgx_urts.h header is strictly
an untrusted domain header. Users that depend on the untrusted runtime
should not depend on the transitive include behavior to provide
sgx_urts.h.

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2018-09-04 17:21:19 -07:00
Zhang Lili Z 62dc69d355 Add 'const' to sgx_create_enclave_ex()
Signed-off-by: Zhang Lili Z <lili.z.zhang@intel.com>
2018-08-07 22:31:27 +08:00
Li, Xun a169a69497 Linux 2.2 Open Source Gold Release
Support for Switchless Calls
Bug fixes

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-07-03 10:48:20 +08:00
Li, Xun 75dd558bda Linux 2.1.3 Open Source Gold Release
Security updates to Linux SDK and PSW
Support for Intel SGX Protected Code Loader

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-05-10 11:05:38 +08:00
Li, Xun 5d59856dae Update tlibcrypto to add new crypto wrapper function
New API:
sgx_create_rsa_key_pair
sgx_rsa_priv_decrypt_sha256
sgx_rsa_pub_encrypt_sha256
sgx_create_rsa_priv2_key
sgx_create_rsa_priv1_key

Signed-off-by: Li, Xun <xun.li@intel.com>
2018-04-12 11:15:57 +08:00