Skip to content

Commit 8a40733

Browse files
committed
Intel(R) SGX DCAP 1.19 Release
Resigned all Intel SGX Architecture Enclaves. Upgraded Intel SGX Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.10. Added Attestation Library support for Intel(R) TDX Migration TD. Added Rust wrapper for low-level Quote Generation APIs. Enabled `SE_TRACE` log in release binary. Updated Rust QVL wrapper to use native Rust structure for quote verification collateral. Added a limitation in the DCAP QVL to only allow the user to set the QvE load policy once. Fixed bugs. Signed-off-by: Li, Xun <xun.li@intel.com>
1 parent 6882afa commit 8a40733

File tree

336 files changed

+26684
-11098
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

336 files changed

+26684
-11098
lines changed

QuoteGeneration/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ For Windows* OS
3939
**NOTE**:`sgx_dcap_dev.inf` is for Windows* Server 2016 LTSC and `sgx_dcap.inf` is for Windows* Server 2019 LTSC.
4040

4141
## How to install
42-
Refer to the *"Installation Instructions"* section in the [Intel(R) Software Guard Extensions: Data Center Attestation Primitives Installation Guide For Windows* OS](https://download.01.org/intel-sgx/sgx-dcap/1.18/windows/docs/Intel_SGX_DCAP_Windows_SW_Installation_Guide.pdf) to install the right packages on your platform.
42+
Refer to the *"Installation Instructions"* section in the [Intel(R) Software Guard Extensions: Data Center Attestation Primitives Installation Guide For Windows* OS](https://download.01.org/intel-sgx/sgx-dcap/1.19/windows/docs/Intel_SGX_DCAP_Windows_SW_Installation_Guide.pdf) to install the right packages on your platform.
4343

4444

4545
For Linux* OS

QuoteGeneration/common/inc/internal/se_trace.h

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,28 @@
4343

4444
typedef enum
4545
{
46+
SE_TRACE_NONE,
4647
SE_TRACE_ERROR,
4748
SE_TRACE_WARNING,
4849
SE_TRACE_NOTICE,
4950
SE_TRACE_DEBUG
5051
} se_trace_t;
5152

53+
#ifdef _WIN32
54+
#ifndef SE_DEBUG_LEVEL
55+
/* Each module need define their own SE_DEBUG_LEVEL */
56+
#define sgx_trace_loglevel SE_TRACE_ERROR
57+
#else
58+
#define sgx_trace_loglevel SE_DEBUG_LEVEL
59+
#endif
60+
#else /* _WIN32 */
5261
#ifndef SE_DEBUG_LEVEL
5362
/* Each module need define their own SE_DEBUG_LEVEL */
54-
#define SE_DEBUG_LEVEL SE_TRACE_ERROR
63+
__attribute__((weak)) se_trace_t sgx_trace_loglevel = SE_TRACE_NONE;
64+
#else
65+
__attribute__((weak)) se_trace_t sgx_trace_loglevel = (se_trace_t)SE_DEBUG_LEVEL;
5566
#endif
67+
#endif /* _WIN32 */
5668

5769
#ifdef __cplusplus
5870
extern "C" {
@@ -69,45 +81,47 @@ extern void sgx_proc_log_report(int channel, int level, const char* format, ...)
6981
#endif
7082
#else
7183
void __attribute__((weak)) sgx_proc_log_report(int level, const char* format, ...);
84+
85+
typedef void (*sgx_logging_callback_t)(int level, const char* message);
86+
87+
__attribute__((weak)) sgx_logging_callback_t sgx_trace_logger_callback = NULL;
7288
#endif
7389
#ifdef __cplusplus
7490
}
7591
#endif
7692

77-
7893
/* For libraries, we usually define DISABLE_TRACE to disable any trace. */
7994
/* For apps, we usually enable trace. */
80-
#ifdef DISABLE_TRACE
95+
#if(defined _WIN32) && (defined DISABLE_TRACE)
8196
#define SE_TRACE(...)
8297
#define se_trace(...)
8398
#define se_trace_verbose(...)
84-
#else /* DISABLE_TRACE */
99+
#else
85100
#define se_trace_verbose(debug_level, fmt, ...) \
86101
do { \
87102
se_trace_t trace_level = debug_level; \
88-
if(trace_level <= SE_DEBUG_LEVEL) \
103+
if(trace_level <= sgx_trace_loglevel) \
89104
se_trace_internal(trace_level, "[%s %s:%d] " fmt, __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__); \
90105
}while(0)
91106

92107
#define se_trace(debug_level, fmt, ...) \
93108
do { \
94109
se_trace_t trace_level = debug_level; \
95-
if(trace_level <= SE_DEBUG_LEVEL) \
110+
if(trace_level <= sgx_trace_loglevel) \
96111
se_trace_internal(trace_level, fmt, ##__VA_ARGS__); \
97112
}while(0)
98113

99114
/* For compatibility, SE_TRACE/se_trace is used in old code. */
100115
/* New code should use SE_TRACE_DEBUG, SE_TRACE_NOTICE, SE_TRACE_WARNING, SE_TRACE_ERROR */
101116
#define SE_TRACE(debug_level, fmt, ...) \
102117
se_trace_verbose(debug_level, fmt, ##__VA_ARGS__)
103-
#endif/* DISABLE_TRACE */
104118

105-
/* SE_TRACE_DEBUG and SE_TRACE_NOTICE print the debug information plus message. */
119+
/* Print the debug information plus message. */
106120
#define SE_TRACE_DEBUG(fmt, ...) se_trace_verbose(SE_TRACE_DEBUG, fmt, ##__VA_ARGS__)
107121
#define SE_TRACE_NOTICE(fmt, ...) se_trace_verbose(SE_TRACE_NOTICE, fmt, ##__VA_ARGS__)
108-
//SE_TRACE_WARNING and SE_TRACE_ERROR only print message.
109-
#define SE_TRACE_WARNING(fmt, ...) se_trace(SE_TRACE_WARNING, fmt, ##__VA_ARGS__)
110-
#define SE_TRACE_ERROR(fmt, ...) se_trace(SE_TRACE_ERROR, fmt, ##__VA_ARGS__)
122+
#define SE_TRACE_WARNING(fmt, ...) se_trace_verbose(SE_TRACE_WARNING, fmt, ##__VA_ARGS__)
123+
#define SE_TRACE_ERROR(fmt, ...) se_trace_verbose(SE_TRACE_ERROR, fmt, ##__VA_ARGS__)
124+
#endif
111125

112126
/* SE_PROD_LOG will output message to stdout by default in production mode.
113127
When the executable is running as daemon, it will output to syslog. */

QuoteGeneration/common/inc/internal/se_version.h

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@
2828
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929
*
3030
*/
31-
#define STRFILEVER "1.18.100.1"
31+
#define STRFILEVER "1.19.100.3"
3232
#define COPYRIGHT "Copyright (C) 2023 Intel Corporation"
33-
#define FILEVER 1,18,100,1
34-
#define PRODUCTVER 1,18,100,1
35-
#define STRPRODUCTVER "1.18.100.1"
33+
#define FILEVER 1,19,100,3
34+
#define PRODUCTVER 1,19,100,3
35+
#define STRPRODUCTVER "1.19.100.3"
3636
#define COMPANYNAME "Intel Corporation"
3737
#define PRODUCTNAME "Intel® Software Guard Extensions"
3838

39-
#define DEFAULT_QPL_VERSION "1.13.105.1"
40-
#define QUOTE_VERIFIER_VERSION "1.12.105.1"
41-
#define QUOTE_LOADER_VERSION "1.11.105.1"
42-
#define TDQE_WRAPPER_VERSION "1.14.105.1"
43-
#define PCE_WRAPPER_VERSION "1.14.105.1"
39+
#define DEFAULT_QPL_VERSION "1.13.106.3"
40+
#define QUOTE_VERIFIER_VERSION "1.12.106.3"
41+
#define QUOTE_LOADER_VERSION "1.11.106.3"
42+
#define TDQE_WRAPPER_VERSION "1.14.106.3"
43+
#define PCE_WRAPPER_VERSION "1.14.106.3"
4444

45-
#define QE3_VERSION "1.16.100.1"
46-
#define QVE_VERSION "1.18.100.1"
47-
#define IDE_VERSION "1.16.100.1"
48-
#define TDQE_VERSION "1.16.100.1"
45+
#define QE3_VERSION "1.19.100.1"
46+
#define QVE_VERSION "1.19.100.1"
47+
#define IDE_VERSION "1.19.100.1"
48+
#define TDQE_VERSION "1.19.100.1"

QuoteGeneration/common/src/se_trace.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,20 @@ void se_trace_internal(int debug_level, const char *fmt, ...)
5252
va_list args;
5353

5454
va_start(args, fmt);
55+
#ifndef _WIN32
56+
if (sgx_trace_logger_callback && debug_level)
57+
{
58+
char message[2500]; // to make sure the full URL can be logged.
59+
vsnprintf(message, sizeof(message), fmt, args);
60+
va_end(args);
61+
62+
// ensure buf is always null-terminated
63+
message[sizeof(message) - 1] = 0;
64+
65+
sgx_trace_logger_callback(debug_level - 1, message);
66+
return;
67+
}
68+
#endif
5569
if (SE_TRACE_NOTICE == debug_level)
5670
vfprintf(stdout, fmt, args);
5771
else

QuoteGeneration/download_prebuilt.bat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929

3030
@echo off
3131

32-
set ae_file_name=prebuilt_windows_dcap_1.18.zip
33-
set checksum_file=SHA256SUM_prebuilt_windows_dcap_1.18.cfg
34-
set server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.18/windows/
32+
set ae_file_name=prebuilt_windows_dcap_1.19.zip
33+
set checksum_file=SHA256SUM_prebuilt_windows_dcap_1.19.cfg
34+
set server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.19/windows/
3535
set server_ae_url=%server_url_path%/%ae_file_name%
3636
set server_checksum_url=%server_url_path%/%checksum_file%
3737

QuoteGeneration/download_prebuilt.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232

3333
top_dir=`dirname $0`
3434
out_dir=$top_dir
35-
ae_file_name=prebuilt_dcap_1.18.tar.gz
36-
checksum_file=SHA256SUM_prebuilt_dcap_1.18.cfg
37-
server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.18/linux/
35+
ae_file_name=prebuilt_dcap_1.19.tar.gz
36+
checksum_file=SHA256SUM_prebuilt_dcap_1.19.cfg
37+
server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.19/linux/
3838
server_ae_url=$server_url_path/$ae_file_name
3939
server_checksum_url=$server_url_path/$checksum_file
4040

QuoteGeneration/installer/linux/deb/libsgx-dcap-ql/libsgx-dcap-ql-1.0/debian/control

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives
99
Package: libsgx-dcap-ql
1010
Architecture: amd64
1111
Depends: libsgx-qe3-logic(>= @dep_version@), libsgx-pce-logic(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
12-
Recommends: libsgx-dcap-quote-verify(>= @dep_version@), libsgx-quote-ex(>= 2.21)
12+
Recommends: libsgx-dcap-quote-verify(>= @dep_version@), libsgx-quote-ex(>= 2.22)
1313
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives
1414

1515
Package: libsgx-dcap-ql-dev
1616
Section: devel
1717
Architecture: amd64
18-
Depends: libsgx-dcap-ql (= @dep_version@), libsgx-headers (>= 2.21)
18+
Depends: libsgx-dcap-ql (= @dep_version@), libsgx-headers (>= 2.22)
1919
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives For Developers

QuoteGeneration/installer/linux/deb/libsgx-dcap-quote-verify/libsgx-dcap-quote-verify-1.0/debian/control

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives
99
Package: libsgx-dcap-quote-verify
1010
Architecture: amd64
1111
Depends: ${shlibs:Depends}, ${misc:Depends}
12-
Recommends: libsgx-ae-qve (>= @dep_version@), libsgx-urts (>= 2.21)
12+
Recommends: libsgx-ae-qve (>= @dep_version@), libsgx-urts (>= 2.22)
1313
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives
1414

1515
Package: libsgx-dcap-quote-verify-dev
1616
Section: devel
1717
Architecture: amd64
18-
Depends: libsgx-dcap-quote-verify (= @dep_version@), libsgx-headers (>= 2.21)
18+
Depends: libsgx-dcap-quote-verify (= @dep_version@), libsgx-headers (>= 2.22)
1919
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives For Developers

QuoteGeneration/installer/linux/deb/libsgx-pce-logic/libsgx-pce-logic-1.0/debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives
88

99
Package: libsgx-pce-logic
1010
Architecture: amd64
11-
Depends: libsgx-urts (>= 2.21), libsgx-ae-pce(>= 2.21), ${shlibs:Depends}, ${misc:Depends}
11+
Depends: libsgx-urts (>= 2.22), libsgx-ae-pce(>= 2.22), ${shlibs:Depends}, ${misc:Depends}
1212
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives

QuoteGeneration/installer/linux/deb/libsgx-qe3-logic/libsgx-qe3-logic-1.0/debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives
88

99
Package: libsgx-qe3-logic
1010
Architecture: amd64
11-
Depends: libsgx-urts (>= 2.21), libsgx-ae-qe3(>= @dep_version@), libsgx-ae-id-enclave(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
11+
Depends: libsgx-urts (>= 2.22), libsgx-ae-qe3(>= @dep_version@), libsgx-ae-id-enclave(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
1212
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives

0 commit comments

Comments
 (0)