Skip to content

Commit cd6c2a8

Browse files
committed
Linux 2.23 Open Source Gold Release
Supported new OS: Ubuntu* 23.10 64-bit Server version. Upgraded to OpenSSL 3.0.12. Upgraded MbedTLS to 3.5.0. Added SM2 encrypt/decrypt algorithm to the GM/SM (PRC National Commercial Cryptographic Algorithms) sample code. Introduced the Intel® DCAP Appraisal Engine within quote verification library, empowering users to evaluate verification results against diverse policies. Upgraded Intel SGX Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.12. Added Rust wrapper for quote provider library APIs. Fixed bugs. Signed-off-by: Li, Xun <xun.li@intel.com>
1 parent 8a22317 commit cd6c2a8

File tree

51 files changed

+1428
-323
lines changed

Some content is hidden

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

51 files changed

+1428
-323
lines changed

License.txt

Lines changed: 398 additions & 0 deletions
Large diffs are not rendered by default.

Makefile

Lines changed: 95 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ tdx:
9090
$(MAKE) -C external/dcap_source/QuoteGeneration tdx_qgs
9191
$(MAKE) -C external/dcap_source/QuoteGeneration tdx_attest
9292

93-
td_migration:
94-
$(MAKE) -C sdk/ td_migration _TD_MIGRATION=1
95-
$(MAKE) -C external/dcap_source/QuoteGeneration td_migration
93+
servtd_attest:
94+
$(MAKE) -C sdk/ servtd_attest SERVTD_ATTEST=1
95+
$(MAKE) -C external/dcap_source/QuoteGeneration servtd_attest
9696

97-
td_migration_preparation:
97+
servtd_attest_preparation:
9898
# Only enable the download from git
9999
git submodule update --init --recursive external/dcap_source external/sgx-emm/emm_src
100100
./external/sgx-emm/create_symlink.sh
@@ -209,7 +209,21 @@ deb_libsgx_headers_pkg:
209209

210210
ifeq ($(CC_BELOW_5_2), 1)
211211
.PHONY: deb_psw_pkg
212-
deb_psw_pkg: deb_libsgx_headers_pkg deb_libsgx_qe3_logic deb_libsgx_pce_logic deb_sgx_aesm_service deb_libsgx_epid deb_libsgx_launch deb_libsgx_quote_ex deb_libsgx_uae_service deb_libsgx_enclave_common deb_libsgx_urts deb_libsgx_ae_qe3 deb_libsgx_ae_tdqe deb_libsgx_ae_id_enclave deb_libsgx_tdx_logic deb_tdx_qgs deb_tdx_attest
212+
deb_psw_pkg: deb_libsgx_headers_pkg \
213+
deb_libsgx_qe3_logic \
214+
deb_libsgx_pce_logic \
215+
deb_sgx_aesm_service \
216+
deb_libsgx_epid \
217+
deb_libsgx_launch \
218+
deb_libsgx_quote_ex \
219+
deb_libsgx_uae_service \
220+
deb_libsgx_enclave_common \
221+
deb_libsgx_urts \
222+
deb_libsgx_ae_qe3 \
223+
deb_libsgx_ae_tdqe \
224+
deb_libsgx_ae_id_enclave \
225+
deb_libsgx_tdx_logic \
226+
deb_tdx_qgs deb_tdx_attest
213227
else
214228
.PHONY: deb_libsgx_dcap_default_qpl
215229
deb_libsgx_dcap_default_qpl:
@@ -250,8 +264,36 @@ deb_sgx_ra_service_pkg:
250264
$(CP) external/dcap_source/tools/SGXPlatformRegistration/build/installer/sgx-ra-service*deb ./linux/installer/deb/sgx-aesm-service/
251265
$(CP) external/dcap_source/tools/SGXPlatformRegistration/build/installer/libsgx-ra-*deb ./linux/installer/deb/sgx-aesm-service/
252266

267+
.PHONY: deb_tee_appraisal_tool
268+
deb_tee_appraisal_tool:
269+
$(MAKE) -C external/dcap_source/QuoteGeneration deb_tee_appraisal_tool_pkg
270+
$(CP) external/dcap_source/QuoteGeneration/installer/linux/deb/tee-appraisal-tool/tee-appraisal-tool*deb ./linux/installer/deb/sgx-aesm-service/
271+
253272
.PHONY: deb_psw_pkg
254-
deb_psw_pkg: deb_libsgx_headers_pkg deb_libsgx_qe3_logic deb_libsgx_pce_logic deb_sgx_aesm_service deb_libsgx_epid deb_libsgx_launch deb_libsgx_quote_ex deb_libsgx_uae_service deb_libsgx_enclave_common deb_libsgx_urts deb_libsgx_ae_qe3 deb_libsgx_ae_id_enclave deb_libsgx_dcap_default_qpl deb_libsgx_dcap_pccs deb_libsgx_dcap_ql deb_libsgx_ae_qve deb_sgx_dcap_quote_verify deb_sgx_pck_id_retrieval_tool_pkg deb_sgx_ra_service_pkg deb_libsgx_ae_tdqe deb_libsgx_tdx_logic deb_tdx_qgs deb_tdx_attest
273+
deb_psw_pkg: deb_libsgx_headers_pkg \
274+
deb_libsgx_qe3_logic \
275+
deb_libsgx_pce_logic \
276+
deb_sgx_aesm_service \
277+
deb_libsgx_epid \
278+
deb_libsgx_launch \
279+
deb_libsgx_quote_ex \
280+
deb_libsgx_uae_service \
281+
deb_libsgx_enclave_common \
282+
deb_libsgx_urts \
283+
deb_libsgx_ae_qe3 \
284+
deb_libsgx_ae_id_enclave \
285+
deb_libsgx_dcap_default_qpl \
286+
deb_libsgx_dcap_pccs \
287+
deb_libsgx_dcap_ql \
288+
deb_libsgx_ae_qve \
289+
deb_sgx_dcap_quote_verify \
290+
deb_sgx_pck_id_retrieval_tool_pkg \
291+
deb_sgx_ra_service_pkg \
292+
deb_libsgx_ae_tdqe \
293+
deb_libsgx_tdx_logic \
294+
deb_tdx_qgs \
295+
deb_tdx_attest \
296+
deb_tee_appraisal_tool
255297
endif
256298

257299
.PHONY: deb_local_repo
@@ -345,7 +387,22 @@ rpm_libsgx_headers_pkg:
345387

346388
ifeq ($(CC_BELOW_5_2), 1)
347389
.PHONY: rpm_psw_pkg
348-
rpm_psw_pkg: rpm_libsgx_headers_pkg rpm_libsgx_pce_logic rpm_libsgx_qe3_logic rpm_sgx_aesm_service rpm_libsgx_epid rpm_libsgx_launch rpm_libsgx_quote_ex rpm_libsgx_uae_service rpm_libsgx_enclave_common rpm_libsgx_urts rpm_libsgx_ae_qe3 rpm_libsgx_ae_tdqe rpm_libsgx_ae_id_enclave rpm_libsgx_tdx_logic rpm_tdx_qgs rpm_tdx_attest
390+
rpm_psw_pkg: rpm_libsgx_headers_pkg \
391+
rpm_libsgx_pce_logic \
392+
rpm_libsgx_qe3_logic \
393+
rpm_sgx_aesm_service \
394+
rpm_libsgx_epid \
395+
rpm_libsgx_launch \
396+
rpm_libsgx_quote_ex \
397+
rpm_libsgx_uae_service \
398+
rpm_libsgx_enclave_common \
399+
rpm_libsgx_urts \
400+
rpm_libsgx_ae_qe3 \
401+
rpm_libsgx_ae_tdqe \
402+
rpm_libsgx_ae_id_enclave \
403+
rpm_libsgx_tdx_logic \
404+
rpm_tdx_qgs \
405+
rpm_tdx_attest
349406
else
350407
.PHONY: rpm_libsgx_dcap_default_qpl
351408
rpm_libsgx_dcap_default_qpl:
@@ -386,8 +443,36 @@ rpm_sgx_ra_service_pkg:
386443
$(CP) external/dcap_source/tools/SGXPlatformRegistration/build/installer/sgx-ra-service*rpm ./linux/installer/rpm/sgx-aesm-service/
387444
$(CP) external/dcap_source/tools/SGXPlatformRegistration/build/installer/libsgx-ra-*rpm ./linux/installer/rpm/sgx-aesm-service/
388445

446+
.PHONY: rpm_tee_appraisal_tool
447+
rpm_tee_appraisal_tool:
448+
$(MAKE) -C external/dcap_source/QuoteGeneration rpm_tee_appraisal_tool_pkg
449+
$(CP) external/dcap_source/QuoteGeneration/installer/linux/rpm/tee-appraisal-tool/tee-appraisal-tool*rpm ./linux/installer/rpm/sgx-aesm-service/
450+
389451
.PHONY: rpm_psw_pkg
390-
rpm_psw_pkg: rpm_libsgx_headers_pkg rpm_libsgx_pce_logic rpm_libsgx_qe3_logic rpm_sgx_aesm_service rpm_libsgx_epid rpm_libsgx_launch rpm_libsgx_quote_ex rpm_libsgx_uae_service rpm_libsgx_enclave_common rpm_libsgx_urts rpm_libsgx_ae_qe3 rpm_libsgx_ae_id_enclave rpm_libsgx_dcap_default_qpl rpm_libsgx_dcap_pccs rpm_libsgx_dcap_ql rpm_libsgx_ae_qve rpm_sgx_dcap_quote_verify rpm_sgx_pck_id_retrieval_tool_pkg rpm_sgx_ra_service_pkg rpm_libsgx_ae_tdqe rpm_libsgx_tdx_logic rpm_tdx_qgs rpm_tdx_attest
452+
rpm_psw_pkg: rpm_libsgx_headers_pkg \
453+
rpm_libsgx_pce_logic \
454+
rpm_libsgx_qe3_logic \
455+
rpm_sgx_aesm_service \
456+
rpm_libsgx_epid \
457+
rpm_libsgx_launch \
458+
rpm_libsgx_quote_ex \
459+
rpm_libsgx_uae_service \
460+
rpm_libsgx_enclave_common \
461+
rpm_libsgx_urts \
462+
rpm_libsgx_ae_qe3 \
463+
rpm_libsgx_ae_id_enclave \
464+
rpm_libsgx_dcap_default_qpl \
465+
rpm_libsgx_dcap_pccs \
466+
rpm_libsgx_dcap_ql \
467+
rpm_libsgx_ae_qve \
468+
rpm_sgx_dcap_quote_verify \
469+
rpm_sgx_pck_id_retrieval_tool_pkg \
470+
rpm_sgx_ra_service_pkg \
471+
rpm_libsgx_ae_tdqe \
472+
rpm_libsgx_tdx_logic \
473+
rpm_tdx_qgs \
474+
rpm_tdx_attest \
475+
rpm_tee_appraisal_tool
391476
endif
392477

393478
.PHONY: rpm_local_repo
@@ -442,6 +527,7 @@ ifeq ("$(shell test -f external/dcap_source/QuoteVerification/Makefile && echo M
442527
./external/dcap_source/QuoteGeneration/installer/linux/deb/libsgx-qe3-logic/clean.sh
443528
./external/dcap_source/QuoteGeneration/installer/linux/deb/libsgx-dcap-quote-verify/clean.sh
444529
./external/dcap_source/QuoteGeneration/installer/linux/deb/sgx-dcap-pccs/clean.sh
530+
./external/dcap_source/QuoteGeneration/installer/linux/deb/tee-appraisal-tool/clean.sh
445531
./external/dcap_source/QuoteGeneration/installer/linux/rpm/libsgx-ae-qve/clean.sh
446532
./external/dcap_source/QuoteGeneration/installer/linux/rpm/libsgx-ae-qe3/clean.sh
447533
./external/dcap_source/QuoteGeneration/installer/linux/rpm/libsgx-ae-id-enclave/clean.sh
@@ -455,6 +541,7 @@ ifeq ("$(shell test -f external/dcap_source/QuoteVerification/Makefile && echo M
455541
./external/dcap_source/QuoteGeneration/installer/linux/rpm/libsgx-qe3-logic/clean.sh
456542
./external/dcap_source/QuoteGeneration/installer/linux/rpm/libsgx-dcap-quote-verify/clean.sh
457543
./external/dcap_source/QuoteGeneration/installer/linux/rpm/sgx-dcap-pccs/clean.sh
544+
./external/dcap_source/QuoteGeneration/installer/linux/rpm/tee-appraisal-tool/clean.sh
458545
endif
459546

460547
rebuild:

README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
9191
* Ubuntu\* 20.04 LTS Desktop 64bits
9292
* Ubuntu\* 20.04 LTS Server 64bits
9393
* Ubuntu\* 22.04 LTS Server 64bits
94+
* Ubuntu\* 23.10 Server 64bits
9495
* Red Hat Enterprise Linux Server release 9.2 64bits
9596
* CentOS Stream 9 64bits
9697
* CentOS 8.3 64bits
@@ -104,7 +105,7 @@ Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
104105
$ sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python3 libssl-dev git cmake perl
105106
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
106107
```
107-
* On Ubuntu 20.04 and Ubuntu 22.04:
108+
* On Ubuntu 20.04, Ubuntu 22.04 and Ubuntu 23.10:
108109
```
109110
$ sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python-is-python3 libssl-dev git cmake perl
110111
```
@@ -143,7 +144,7 @@ Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
143144
```
144145
$ sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip lsb-release libsystemd0
145146
```
146-
* On Ubuntu 20.04 and Ubuntu 22.04:
147+
* On Ubuntu 20.04, Ubuntu 22.04 and Ubuntu 23.10:
147148
```
148149
$ sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip pkgconf libboost-dev libboost-system-dev libboost-thread-dev lsb-release libsystemd0
149150
```
@@ -177,12 +178,12 @@ Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
177178
```
178179
The above ``make preparation`` would trigger the script ``download_prebuilt.sh`` to download the prebuilt binaries. You may need to set an https proxy for the `wget` tool used by the script (such as ``export https_proxy=http://test-proxy:test-port``)
179180
180-
- Copy the mitigation tools corresponding to current OS distribution from external/toolset/{current_distr} to /usr/local/bin and make sure they have execute permission:
181+
- (*Optional*) If the binutils on your current operating system distribution doesn't support mitigation options, copy the mitigation tools corresponding to current OS distribution from external/toolset/{current_distr} to /usr/local/bin and make sure they have execute permission:
181182
```
182183
$ sudo cp external/toolset/{current_distr}/* /usr/local/bin
183184
$ which ar as ld objcopy objdump ranlib
184185
```
185-
**Note**: The above action is a must even if you copied the previous mitigation tools to /usr/local/bin before. It ensures the updated mitigation tools are used in the later build.
186+
**Note**: Mitigation tools are only provided for the operating systems whose binutils lack mitigation options support. If your operating system is not listed in the external/toolset/{current_distr} directory, you can skip this step. Otherwise, even if you previously copied the mitigation tools to /usr/local/bin, performing the above action is still necessary. This ensures that the latest mitigation tools are used during the subsequent build process.
186187
187188
188189
### Build the Intel(R) SGX SDK and Intel(R) SGX SDK Installer
@@ -255,7 +256,7 @@ You can find the tools and libraries generated in the `build/linux` directory.
255256
$ make
256257
```
257258
- To build the Intel(R) SGX PSW installer, enter the following command:
258-
* On Ubuntu 20.04, Ubuntu 22.04 and Debian 10:
259+
* On Ubuntu 20.04, Ubuntu 22.04, Ubuntu 23.10 and Debian 10:
259260
```
260261
$ make deb_psw_pkg
261262
```
@@ -296,6 +297,10 @@ You can find the tools and libraries generated in the `build/linux` directory.
296297
```
297298
deb [trusted=yes arch=amd64] file:/PATH_TO_LOCAL_REPO jammy main
298299
```
300+
* On Ubuntu 23.10:
301+
```
302+
deb [trusted=yes arch=amd64] file:/PATH_TO_LOCAL_REPO mantic main
303+
```
299304
* On Debian 10:
300305
```
301306
deb [trusted=yes arch=amd64] file:/PATH_TO_LOCAL_REPO buster main
@@ -339,6 +344,7 @@ Install the Intel(R) SGX SDK
339344
* Ubuntu\* 20.04 LTS Desktop 64bits
340345
* Ubuntu\* 20.04 LTS Server 64bits
341346
* Ubuntu\* 22.04 LTS Server 64bits
347+
* Ubuntu\* 23.10 Server 64bits
342348
* Red Hat Enterprise Linux Server release 9.2 64bits
343349
* CentOS Stream 9 64bits
344350
* CentOS 8.3 64bits
@@ -351,7 +357,7 @@ Install the Intel(R) SGX SDK
351357
$ sudo apt-get install build-essential python3
352358
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3
353359
```
354-
* On Ubuntu 20.04 and Ubuntu 22.04:
360+
* On Ubuntu 20.04, Ubuntu 22.04 and Ubuntu 23.10:
355361
```
356362
$ sudo apt-get install build-essential python-is-python3
357363
```
@@ -429,6 +435,7 @@ Install the Intel(R) SGX PSW
429435
* Ubuntu\* 20.04 LTS Desktop 64bits
430436
* Ubuntu\* 20.04 LTS Server 64bits
431437
* Ubuntu\* 22.04 LTS Server 64bits
438+
* Ubuntu\* 23.10 Server 64bits
432439
* Red Hat Enterprise Linux Server release 9.2 64bits
433440
* CentOS Stream 9 64bits
434441
* CentOS 8.3 64bits
@@ -440,7 +447,7 @@ Install the Intel(R) SGX PSW
440447
- Configure the system with the **Intel SGX hardware enabled** option and install Intel(R) SGX driver in advance.
441448
See the earlier topic, *Build and Install the Intel(R) SGX Driver*, for information on how to install the Intel(R) SGX driver.
442449
- Install the library using the following command:
443-
* On Ubuntu 20.04, Ubuntu 22.04 and Debian 10:
450+
* On Ubuntu 20.04, Ubuntu 22.04, Ubuntu 23.10 and Debian 10:
444451
```
445452
$ sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev
446453
```
@@ -470,7 +477,7 @@ The SGX PSW provides 3 services: launch, EPID-based attestation, and algorithm a
470477
471478
#### Using the local repo(recommended)
472479
473-
| |Ubuntu 20.04, Ubuntu 22.04 and Debian 10|Red Hat Enterprise Linux 9.2, CentOS Stream 9, CentOS 8.3 and Anolis OS 8.6| SUSE Linux Enterprise Server 15|
480+
| |Ubuntu 20.04, Ubuntu 22.04, Ubuntu 23.10 and Debian 10|Red Hat Enterprise Linux 9.2, CentOS Stream 9, CentOS 8.3 and Anolis OS 8.6| SUSE Linux Enterprise Server 15|
474481
| ------------ | ------------ | ------------ | ------------ |
475482
|launch service |apt-get install libsgx-launch libsgx-urts|yum install libsgx-launch libsgx-urts|zypper install libsgx-launch libsgx-urts|
476483
|EPID-based attestation service|apt-get install libsgx-epid libsgx-urts|yum install libsgx-epid libsgx-urts|zypper install libsgx-epid libsgx-urts|
@@ -491,7 +498,7 @@ apt-get dist-upgrade -o Dpkg::Options::="--force-overwrite"
491498
```
492499
#### Configure the installation
493500
Some packages are configured with recommended dependency on other packages that are not required for certain usage. For instance, the background daemon is not required for container usage. It will be installed by default, but you can drop it by using the additional option during the installation.
494-
* On Ubuntu 20.04, Ubuntu 22.04 and Debian 10:
501+
* On Ubuntu 20.04, Ubuntu 22.04, Ubuntu 23.10 and Debian 10:
495502
```
496503
--no-install-recommends
497504
```

SampleCode/RemoteAttestation/service_provider/ecp.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ bool derive_key(
100100
hash_buffer_t hash_buffer;
101101
sample_sha_state_handle_t sha_context;
102102
sample_sha256_hash_t key_material;
103-
103+
104104
memset(&hash_buffer, 0, sizeof(hash_buffer_t));
105105

106106
/* counter in big endian */
@@ -175,7 +175,7 @@ bool derive_key(
175175
sample_status_t sample_ret = SAMPLE_SUCCESS;
176176
uint8_t cmac_key[MAC_KEY_SIZE];
177177
sample_ec_key_128bit_t key_derive_key;
178-
178+
179179
memset(&cmac_key, 0, MAC_KEY_SIZE);
180180

181181
sample_ret = sample_rijndael128_cmac_msg(
@@ -233,7 +233,11 @@ bool derive_key(
233233
/*counter = 0x01 */
234234
p_derivation_buffer[0] = 0x01;
235235
/*label*/
236-
memcpy_s(&p_derivation_buffer[1], derivation_buffer_length - 1, label, label_length);
236+
if(memcpy_s(&p_derivation_buffer[1], derivation_buffer_length - 1, label, label_length)) {
237+
memset(&key_derive_key, 0, sizeof(key_derive_key));
238+
free(p_derivation_buffer);
239+
return false;
240+
}
237241
/*output_key_len=0x0080*/
238242
uint16_t *key_len = (uint16_t *)(&(p_derivation_buffer[derivation_buffer_length - 2]));
239243
*key_len = 0x0080;

SampleCode/RemoteAttestation/service_provider/ias_ra.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,9 @@ int ias_enroll(
243243
UNUSED(p_authentication_token);
244244

245245
if (NULL != p_spid) {
246-
memcpy_s(p_spid, sizeof(sample_spid_t), &g_sim_spid,
247-
sizeof(sample_spid_t));
246+
if(memcpy_s(p_spid, sizeof(sample_spid_t), &g_sim_spid, sizeof(sample_spid_t))) {
247+
return(1);
248+
}
248249
} else {
249250
return(1);
250251
}

SampleCode/RemoteAttestation/service_provider/service_provider.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,23 @@ int sp_ra_proc_msg0_req(const sample_ra_msg0_t *p_msg0,
268268

269269
if (g_return_ecdsa_att_key_id)
270270
{
271-
memcpy_s(p_msg0_resp_full->body, msg0_resp_size,
272-
g_ecdsa_p256_att_key_id_list, msg0_resp_size);
271+
if (memcpy_s(p_msg0_resp_full->body, msg0_resp_size,
272+
g_ecdsa_p256_att_key_id_list, msg0_resp_size)) {
273+
fprintf(stderr, "\nError, cannot do memcpy in [%s].", __FUNCTION__);
274+
g_return_ecdsa_att_key_id = false;
275+
ret = SP_INTERNAL_ERROR;
276+
goto CLEANUP;
277+
}
273278
g_return_ecdsa_att_key_id = false;
274279
}
275280
else // Return EPID attestation key id
276281
{
277-
memcpy_s(p_msg0_resp_full->body, msg0_resp_size,
278-
g_epid_unlinkable_att_key_id_list, msg0_resp_size);
282+
if(memcpy_s(p_msg0_resp_full->body, msg0_resp_size,
283+
g_epid_unlinkable_att_key_id_list, msg0_resp_size)) {
284+
fprintf(stderr, "\nError, cannot do memcpy in [%s].", __FUNCTION__);
285+
ret = SP_INTERNAL_ERROR;
286+
goto CLEANUP;
287+
}
279288
}
280289
p_msg0_resp_full->type = TYPE_RA_MSG0;
281290
p_msg0_resp_full->size = msg0_resp_size;
@@ -872,7 +881,3 @@ int sp_ra_proc_msg3_req(const sample_ra_msg3_t *p_msg3,
872881
}
873882
return ret;
874883
}
875-
876-
877-
878-

0 commit comments

Comments
 (0)