From fa5dfc690dfa7af5a54d14706b25a45655d568b0 Mon Sep 17 00:00:00 2001 From: "Zheng, Qi" Date: Wed, 22 Feb 2023 15:00:45 +0800 Subject: [PATCH] [toolchains] Add grpc ra_tls into toolchains --- .../init_ra_flow/build_content.sh | 1 - tools/toolchains/grpc_ratls/build.sh | 34 +++++++++++++++++++ .../toolchains/grpc_ratls}/ra_tls/README.md | 0 .../grpc_ratls}/ra_tls/build_and_install.sh | 21 ++++++++---- .../ra_tls/build_occlum_instance.sh | 3 ++ .../ra_tls/download_and_prepare.sh | 0 .../toolchains/grpc_ratls}/ra_tls/env.sh | 0 .../grpc_ratls}/ra_tls/grpc/.gitignore | 0 .../ra_tls/grpc/v1.38.1/CMakeLists.txt | 1 + .../v1.38.1/examples/cpp/ratls/CMakeLists.txt | 0 .../grpc/v1.38.1/examples/cpp/ratls/README.md | 0 .../grpc/v1.38.1/examples/cpp/ratls/build.sh | 0 .../grpc/v1.38.1/examples/cpp/ratls/client.cc | 0 .../examples/cpp/ratls/grpc_ratls_client.cc | 0 .../examples/cpp/ratls/grpc_ratls_client.h | 0 .../examples/cpp/ratls/grpc_ratls_server.cc | 0 .../examples/cpp/ratls/grpc_ratls_server.h | 0 .../grpc/v1.38.1/examples/cpp/ratls/server.cc | 0 .../grpc/v1.38.1/examples/protos/ratls.proto | 0 .../include/grpcpp/security/sgx/sgx_ra_tls.h | 0 .../grpcpp/security/sgx/sgx_ra_tls_options.h | 0 .../credentials/tls/tls_credentials.cc | 0 .../tls/tls_security_connector.cc | 0 .../tls/tls_security_connector.h | 0 .../src/cpp/sgx/sgx_ra_tls_backends.cc | 0 .../v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h | 0 .../src/cpp/sgx/sgx_ra_tls_credentials.cc | 0 .../v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc | 0 .../v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc | 0 .../v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc | 0 .../v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h | 0 .../grpc_ratls}/ra_tls/grpc_ratls_client.yaml | 0 .../grpc_ratls}/ra_tls/grpc_ratls_server.yaml | 0 .../ra_tls/ra_config_template.json | 0 .../toolchains/grpc_ratls}/ra_tls/run.sh | 0 .../grpc_ratls}/ra_tls/secret_config.json | 0 36 files changed, 52 insertions(+), 8 deletions(-) create mode 100755 tools/toolchains/grpc_ratls/build.sh rename {demos => tools/toolchains/grpc_ratls}/ra_tls/README.md (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/build_and_install.sh (78%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/build_occlum_instance.sh (91%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/download_and_prepare.sh (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/env.sh (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/.gitignore (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/CMakeLists.txt (99%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/CMakeLists.txt (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/README.md (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/build.sh (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/client.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/cpp/ratls/server.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/examples/protos/ratls.proto (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls_options.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/core/lib/security/credentials/tls/tls_credentials.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_credentials.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc_ratls_client.yaml (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/grpc_ratls_server.yaml (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/ra_config_template.json (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/run.sh (100%) rename {demos => tools/toolchains/grpc_ratls}/ra_tls/secret_config.json (100%) diff --git a/demos/remote_attestation/init_ra_flow/build_content.sh b/demos/remote_attestation/init_ra_flow/build_content.sh index f6987687..dd57aab9 100755 --- a/demos/remote_attestation/init_ra_flow/build_content.sh +++ b/demos/remote_attestation/init_ra_flow/build_content.sh @@ -14,7 +14,6 @@ function build_ratls() pushd ${RATLS_DIR} ./download_and_prepare.sh ./build_and_install.sh musl - ./build_occlum_instance.sh musl cp ./grpc-src/examples/cpp/ratls/build/libgrpc_ratls_client.so ${DEP_LIBS_DIR}/ cp ./grpc-src/examples/cpp/ratls/build/libhw_grpc_proto.so ${DEP_LIBS_DIR}/ diff --git a/tools/toolchains/grpc_ratls/build.sh b/tools/toolchains/grpc_ratls/build.sh new file mode 100755 index 00000000..88337701 --- /dev/null +++ b/tools/toolchains/grpc_ratls/build.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e + +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +INSTALL_DIR=/opt/occlum/toolchains/grpc_ratls +RATLS_DIR=${script_dir}/ra_tls + +pushd ${RATLS_DIR} +echo "Download and prepare grpc ra_tls" +./download_and_prepare.sh + +echo "Build and install musl-libc grpc ra_tls" +./build_and_install.sh musl +mkdir -p ${INSTALL_DIR}/musl +cp ./grpc-src/examples/cpp/ratls/build/libgrpc_ratls_client.so ${INSTALL_DIR}/musl/ +cp ./grpc-src/examples/cpp/ratls/build/libgrpc_ratls_server.so ${INSTALL_DIR}/musl/ +cp ./grpc-src/examples/cpp/ratls/build/libhw_grpc_proto.so ${INSTALL_DIR}/musl/ +cp ./grpc-src/examples/cpp/ratls/build/server ${INSTALL_DIR}/musl/ + +echo "Build and install glibc grpc ra_tls" +./build_and_install.sh +mkdir -p ${INSTALL_DIR}/glibc +cp ./grpc-src/examples/cpp/ratls/build/libgrpc_ratls_client.so ${INSTALL_DIR}/glibc/ +cp ./grpc-src/examples/cpp/ratls/build/libgrpc_ratls_server.so ${INSTALL_DIR}/glibc/ +cp ./grpc-src/examples/cpp/ratls/build/libhw_grpc_proto.so ${INSTALL_DIR}/glibc/ +cp ./grpc-src/examples/cpp/ratls/build/server ${INSTALL_DIR}/glibc/ + +# Do clean +rm -rf grpc-src +rm -f *.tar.gz +rm -rf cJSON* +popd + + diff --git a/demos/ra_tls/README.md b/tools/toolchains/grpc_ratls/ra_tls/README.md similarity index 100% rename from demos/ra_tls/README.md rename to tools/toolchains/grpc_ratls/ra_tls/README.md diff --git a/demos/ra_tls/build_and_install.sh b/tools/toolchains/grpc_ratls/ra_tls/build_and_install.sh similarity index 78% rename from demos/ra_tls/build_and_install.sh rename to tools/toolchains/grpc_ratls/ra_tls/build_and_install.sh index 3d761b7c..f57b1e5f 100755 --- a/demos/ra_tls/build_and_install.sh +++ b/tools/toolchains/grpc_ratls/ra_tls/build_and_install.sh @@ -6,17 +6,19 @@ source ./env.sh BUILD_TYPE=Release if [[ $1 == "musl" ]]; then - echo "*** Build and run musl-libc demo ***" + echo "*** Build musl-libc grpc_ratls ***" CC=occlum-gcc CXX=occlum-g++ DCAP_LIB_PATH="/opt/occlum/toolchains/dcap_lib/musl" INSTALL_PREFIX="/usr/local/occlum/x86_64-linux-musl" + GRPC_INSTALL_PATH="/tmp/grpc_ratls/musl" else - echo "*** Build and run glibc demo ***" + echo "*** Build glibc grpc_ratls ***" CC=gcc CXX=g++ DCAP_LIB_PATH="/opt/occlum/toolchains/dcap_lib/glibc" INSTALL_PREFIX="/usr/local" + GRPC_INSTALL_PATH="/tmp/grpc_ratls/glibc" fi # Build and install cJSON @@ -30,9 +32,9 @@ function build_cjson() { } function build_grpc_ratls() { - # Copy occlum dcap lib first + rm -rf ${GRPC_INSTALL_PATH} && mkdir -p ${GRPC_INSTALL_PATH} + # Copy occlum dcap lib first to ease linking cp ${DCAP_LIB_PATH}/libocclum_dcap.so* ${INSTALL_PREFIX}/lib - cp /opt/occlum/toolchains/dcap_lib/inc/occlum_dcap.h ${INSTALL_PREFIX}/include/ # Copy ratls added/updated files to grpc source cp -rf grpc/${GRPC_VERSION}/* ${GRPC_PATH}/ @@ -44,7 +46,7 @@ function build_grpc_ratls() { pushd ${ABSEIL_PATH} rm -rf build && mkdir build && cd build cmake -DCMAKE_CXX_STANDARD=11 -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ - -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${GRPC_INSTALL_PATH} \ -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} .. make -j `nproc` make install @@ -58,7 +60,8 @@ function build_grpc_ratls() { -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \ -DDEFINE_SGX_RA_TLS_OCCLUM_BACKEND=ON \ -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} \ - -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} .. + -DCMAKE_PREFIX_PATH=${GRPC_INSTALL_PATH} \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${GRPC_INSTALL_PATH} .. make -j `nproc` make install popd @@ -67,10 +70,14 @@ function build_grpc_ratls() { pushd ${GRPC_PATH}/examples/cpp/ratls rm -rf build && mkdir -p build cd build - cmake -D CMAKE_PREFIX_PATH=${INSTALL_PREFIX} -D CMAKE_BUILD_TYPE=${BUILD_TYPE} \ + cmake -DCMAKE_PREFIX_PATH=${GRPC_INSTALL_PATH} \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} .. make -j `nproc` popd + + # Clean temp occlum dcap lib + rm ${INSTALL_PREFIX}/lib/libocclum_dcap.so* } build_cjson diff --git a/demos/ra_tls/build_occlum_instance.sh b/tools/toolchains/grpc_ratls/ra_tls/build_occlum_instance.sh similarity index 91% rename from demos/ra_tls/build_occlum_instance.sh rename to tools/toolchains/grpc_ratls/ra_tls/build_occlum_instance.sh index 06d7464f..2b66c86f 100755 --- a/demos/ra_tls/build_occlum_instance.sh +++ b/tools/toolchains/grpc_ratls/ra_tls/build_occlum_instance.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + function get_mr() { cd ${script_dir}/occlum_$1 && occlum print $2 } @@ -55,6 +57,7 @@ function build_instance() { if [[ $1 == "musl" ]]; then echo "*** Build musl-libc Occlum instance ***" + cp /opt/occlum/toolchains/dcap_lib/musl/libocclum_dcap.so.0.1.0 /usr/local/occlum/x86_64-linux-musl/lib/ else echo "*** Build glibc Occlum instance ***" # glibc version requires libnss diff --git a/demos/ra_tls/download_and_prepare.sh b/tools/toolchains/grpc_ratls/ra_tls/download_and_prepare.sh similarity index 100% rename from demos/ra_tls/download_and_prepare.sh rename to tools/toolchains/grpc_ratls/ra_tls/download_and_prepare.sh diff --git a/demos/ra_tls/env.sh b/tools/toolchains/grpc_ratls/ra_tls/env.sh similarity index 100% rename from demos/ra_tls/env.sh rename to tools/toolchains/grpc_ratls/ra_tls/env.sh diff --git a/demos/ra_tls/grpc/.gitignore b/tools/toolchains/grpc_ratls/ra_tls/grpc/.gitignore similarity index 100% rename from demos/ra_tls/grpc/.gitignore rename to tools/toolchains/grpc_ratls/ra_tls/grpc/.gitignore diff --git a/demos/ra_tls/grpc/v1.38.1/CMakeLists.txt b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/CMakeLists.txt similarity index 99% rename from demos/ra_tls/grpc/v1.38.1/CMakeLists.txt rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/CMakeLists.txt index 601c3cb1..d648e423 100644 --- a/demos/ra_tls/grpc/v1.38.1/CMakeLists.txt +++ b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/CMakeLists.txt @@ -55,6 +55,7 @@ option(DEFINE_SGX_RA_TLS_OCCLUM_BACKEND "SGX Occlum Backend" OFF) if(DEFINE_SGX_RA_TLS_OCCLUM_BACKEND) message("SGX_RA_TLS_OCCLUM_BACKEND is defined") include_directories(/opt/intel/sgxsdk/include) + include_directories(/opt/occlum/toolchains/dcap_lib/inc) add_definitions(-DSGX_RA_TLS_OCCLUM_BACKEND) endif() diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/CMakeLists.txt b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/CMakeLists.txt similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/CMakeLists.txt rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/CMakeLists.txt diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/README.md b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/README.md similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/README.md rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/README.md diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/build.sh b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/build.sh similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/build.sh rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/build.sh diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/client.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/client.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/client.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/client.cc diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.cc diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_client.h diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.cc diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/grpc_ratls_server.h diff --git a/demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/server.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/server.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/cpp/ratls/server.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/cpp/ratls/server.cc diff --git a/demos/ra_tls/grpc/v1.38.1/examples/protos/ratls.proto b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/protos/ratls.proto similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/examples/protos/ratls.proto rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/examples/protos/ratls.proto diff --git a/demos/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls.h diff --git a/demos/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls_options.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls_options.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls_options.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/include/grpcpp/security/sgx/sgx_ra_tls_options.h diff --git a/demos/ra_tls/grpc/v1.38.1/src/core/lib/security/credentials/tls/tls_credentials.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/credentials/tls/tls_credentials.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/core/lib/security/credentials/tls/tls_credentials.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/credentials/tls/tls_credentials.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/core/lib/security/security_connector/tls/tls_security_connector.h diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_backends.h diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_credentials.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_credentials.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_credentials.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_credentials.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_occlum.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_options.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.cc diff --git a/demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h b/tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h similarity index 100% rename from demos/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h rename to tools/toolchains/grpc_ratls/ra_tls/grpc/v1.38.1/src/cpp/sgx/sgx_ra_tls_utils.h diff --git a/demos/ra_tls/grpc_ratls_client.yaml b/tools/toolchains/grpc_ratls/ra_tls/grpc_ratls_client.yaml similarity index 100% rename from demos/ra_tls/grpc_ratls_client.yaml rename to tools/toolchains/grpc_ratls/ra_tls/grpc_ratls_client.yaml diff --git a/demos/ra_tls/grpc_ratls_server.yaml b/tools/toolchains/grpc_ratls/ra_tls/grpc_ratls_server.yaml similarity index 100% rename from demos/ra_tls/grpc_ratls_server.yaml rename to tools/toolchains/grpc_ratls/ra_tls/grpc_ratls_server.yaml diff --git a/demos/ra_tls/ra_config_template.json b/tools/toolchains/grpc_ratls/ra_tls/ra_config_template.json similarity index 100% rename from demos/ra_tls/ra_config_template.json rename to tools/toolchains/grpc_ratls/ra_tls/ra_config_template.json diff --git a/demos/ra_tls/run.sh b/tools/toolchains/grpc_ratls/ra_tls/run.sh similarity index 100% rename from demos/ra_tls/run.sh rename to tools/toolchains/grpc_ratls/ra_tls/run.sh diff --git a/demos/ra_tls/secret_config.json b/tools/toolchains/grpc_ratls/ra_tls/secret_config.json similarity index 100% rename from demos/ra_tls/secret_config.json rename to tools/toolchains/grpc_ratls/ra_tls/secret_config.json