From 7ab2b1b064f01aa7a123799f13d2668a379544a0 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:06:33 +0000 Subject: [PATCH 1/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20wallfacer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wallfacer/.keep diff --git a/wallfacer/.keep b/wallfacer/.keep new file mode 100644 index 00000000..e69de29b -- Gitee From e95b6bb095a948aa0e3bc3669d5f8309c89ca8d2 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:06:49 +0000 Subject: [PATCH 2/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20verify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wallfacer/verify/.keep diff --git a/wallfacer/verify/.keep b/wallfacer/verify/.keep new file mode 100644 index 00000000..e69de29b -- Gitee From 506046fe887dd0fec82ed673c4fe72a287b78782 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:07:14 +0000 Subject: [PATCH 3/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20enclave?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/enclave/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wallfacer/verify/enclave/.keep diff --git a/wallfacer/verify/enclave/.keep b/wallfacer/verify/enclave/.keep new file mode 100644 index 00000000..e69de29b -- Gitee From a4200d678b60bc1dd107202942d6936b522786d3 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:08:47 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20wall?= =?UTF-8?q?facer/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wallfacer/.keep diff --git a/wallfacer/.keep b/wallfacer/.keep deleted file mode 100644 index e69de29b..00000000 -- Gitee From a31b47a453325b14e8af459c20791d702813b29b Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:08:57 +0000 Subject: [PATCH 5/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20wall?= =?UTF-8?q?facer/verify/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wallfacer/verify/.keep diff --git a/wallfacer/verify/.keep b/wallfacer/verify/.keep deleted file mode 100644 index e69de29b..00000000 -- Gitee From f4b0a03e3de2e51c01da8674830e702d22c57555 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:09:05 +0000 Subject: [PATCH 6/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20host?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/enclave/host/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wallfacer/verify/enclave/host/.keep diff --git a/wallfacer/verify/enclave/host/.keep b/wallfacer/verify/enclave/host/.keep new file mode 100644 index 00000000..e69de29b -- Gitee From 02edb128bebc52b647c26632bfbbca13daad2580 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:09:34 +0000 Subject: [PATCH 7/9] =?UTF-8?q?#I591I6=20Wallfacer-1=EF=BC=9A=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E8=BA=AB=E4=BB=BD=E8=AE=A4=E8=AF=81=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AF=86=E9=92=A5=E6=95=B0=E6=8D=AE=E5=8D=8F?= =?UTF-8?q?=E5=95=86=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangxiaoxi1 --- wallfacer/verify/enclave/host/CMakeLists.txt | 88 ++++++++++++++++ wallfacer/verify/enclave/host/main.cpp | 101 +++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 wallfacer/verify/enclave/host/CMakeLists.txt create mode 100644 wallfacer/verify/enclave/host/main.cpp diff --git a/wallfacer/verify/enclave/host/CMakeLists.txt b/wallfacer/verify/enclave/host/CMakeLists.txt new file mode 100644 index 00000000..bc273397 --- /dev/null +++ b/wallfacer/verify/enclave/host/CMakeLists.txt @@ -0,0 +1,88 @@ +# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. +# secGear is licensed under the Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# http://license.coscl.org.cn/MulanPSL2 +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +# PURPOSE. +# See the Mulan PSL v2 for more details. + +#set auto code prefix +set(PREFIX enclave) +#set host exec name +set(OUTPUT secgear_enclave) +#set host src code +set(SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) + +set(CMAKE_CXX_STANDARD 11) + +#set auto code +if(CC_GP) + set(AUTO_FILES ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_u.h ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_u.c ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_args.h) + add_custom_command(OUTPUT ${AUTO_FILES} + DEPENDS ${CURRENT_ROOT_PATH}/${EDL_FILE} + COMMAND ${CODEGEN} --${CODETYPE} --untrusted ${CURRENT_ROOT_PATH}/${EDL_FILE} --search-path ${LOCAL_ROOT_PATH}/inc/host_inc/gp) +endif() + +if(CC_SGX) + set(AUTO_FILES ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_u.h ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_u.c) + add_custom_command(OUTPUT ${AUTO_FILES} + DEPENDS ${CURRENT_ROOT_PATH}/${EDL_FILE} + COMMAND ${CODEGEN} --${CODETYPE} --untrusted ${CURRENT_ROOT_PATH}/${EDL_FILE} --search-path ${LOCAL_ROOT_PATH}/inc/host_inc/sgx --search-path ${SGXSDK}/include) +endif() + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") +set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O2 -fPIE") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -s") + +if(CC_GP) + if(${CMAKE_VERSION} VERSION_LESS "3.13.0") + link_directories(${SECGEAR_INSTALL_PATH}) + endif() + add_executable(${OUTPUT} ${SOURCE_FILE} ${AUTO_FILES}) + target_include_directories(${OUTPUT} PRIVATE + ${LOCAL_ROOT_PATH}/inc/host_inc + ${LOCAL_ROOT_PATH}/inc/host_inc/gp + ${CMAKE_CURRENT_BINARY_DIR}) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0") + target_link_directories(${OUTPUT} PRIVATE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + endif() +endif() + +if(CC_SGX) + if(${CMAKE_VERSION} VERSION_LESS "3.13.0") + link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + endif() + add_executable(${OUTPUT} ${SOURCE_FILE} ${AUTO_FILES}) + target_include_directories(${OUTPUT} PRIVATE + ${LOCAL_ROOT_PATH}/inc/host_inc + ${LOCAL_ROOT_PATH}/inc/host_inc/sgx + ${CMAKE_CURRENT_BINARY_DIR}) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0") + target_link_directories(${OUTPUT} PRIVATE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + endif() +endif() + +if(CC_SIM) + target_link_libraries(${OUTPUT} secgearsim) +else() + target_link_libraries(${OUTPUT} secgear) +endif() +set_target_properties(${OUTPUT} PROPERTIES SKIP_BUILD_RPATH TRUE) + +if(CC_GP) + #itrustee install whitelist /vender/bin/teec_hello + install(TARGETS ${OUTPUT} + RUNTIME + DESTINATION /vendor/bin/ + PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ) +endif() + +if(CC_SGX) + install(TARGETS ${OUTPUT} + RUNTIME + DESTINATION ${CMAKE_BINARY_DIR}/bin/ + PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ) +endif() + diff --git a/wallfacer/verify/enclave/host/main.cpp b/wallfacer/verify/enclave/host/main.cpp new file mode 100644 index 00000000..a74a5ce6 --- /dev/null +++ b/wallfacer/verify/enclave/host/main.cpp @@ -0,0 +1,101 @@ +#include +#include"enclave.h" +#include +#include +#include"Enclave1_u.h" + +#define MAX_LEN 1024 + +using namespace std; + +const char hexChars[] = "0123456789abcdef"; +int dec(char ch) { + if ('0' <= ch && ch <= '9') { + return ch - '0'; + } + if ('a' <= ch && ch <= 'f') { + return ch - 'a' + 10; + } + if ('A' <= ch && ch <= 'F') { + return ch - 'A' + 10; + } + return -1; +} +uint32_t transferToU32(char* src,int base=10) { + uint32_t result = 0; + for (int i = 0; src[i]; i++) { + result = result * base + dec(src[i]); + } + return result; +} + +char tmpresult[512]; +char* transferFromString(string src) { + int siz = src.length(); + if (siz < 512) { + for (int i = 0; i <= siz; i++) { + tmpresult[i] = src[i]; + } + } + return tmpresult; +} + +int main(int argc, char* argv[]) { + cc_enclave_t *eid; + cc_enclave_result_t ret; + char *path = transferFromString(PATH); + + ret = cc_enclave_create(path, AUTO_ENCLAVE_TYPE, 0, SECGEAR_DEBUG_FLAG, NULL, 0, &eid); + if (ret != CC_SUCCESS) { + printf("ERR: %#x ,failed to create enclave.\n", ret); + return -1; + } + char buffer[MAX_LEN]; + uint32_t uints[2] = {}; + if (argc > 1) { + if(strcmp(argv[1],"initServer")==0){ + uints[0] = transferToU32(argv[4]); + initKeys(eid, uints); + setN(eid, argv[3], strlen(argv[3]) + 1); + setD(eid, argv[2], strlen(argv[2]) + 1); + getCD(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + getKeys(eid, uints); + printf("%u\n%u\n", uints[0], uints[1]); + } + else if(strcmp(argv[1], "passwordEncryption") == 0){ + setN(eid, argv[4], strlen(argv[4]) + 1); + setCD(eid, argv[3], strlen(argv[3]) + 1); + setRSAsource(eid, argv[2], strlen(argv[2]) + 1); + uints[0] = transferToU32(argv[5]); + setKeys(eid, uints); + getRSAresult(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + } + else if(strcmp(argv[1], "embedding") == 0){ + setN(eid, argv[5], strlen(argv[5]) + 1); + setCD(eid, argv[4], strlen(argv[4]) + 1); + setNPW(eid, argv[3], strlen(argv[3]) + 1); + setRSAsource(eid, argv[2], strlen(argv[2]) + 1); + uints[0] = transferToU32(argv[8]); + registerSeed(eid, uints); + uints[0] = transferToU32(argv[6]); + uints[1] = transferToU32(argv[7]); + setKeys(eid, uints); + calcEmbeddingResult(eid); + getX(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + getMu(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + getK(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + getNWID(eid, buffer, MAX_LEN); + printf("%s\n", buffer); + } + } + + if (CC_SUCCESS != cc_enclave_destroy(eid)) { + return -1; + } + return 0; +} -- Gitee From bfff71ca7f5462d5d3701631b8bc8e3e5ab245a1 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:09:40 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20wall?= =?UTF-8?q?facer/verify/enclave/host/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/enclave/host/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wallfacer/verify/enclave/host/.keep diff --git a/wallfacer/verify/enclave/host/.keep b/wallfacer/verify/enclave/host/.keep deleted file mode 100644 index e69de29b..00000000 -- Gitee From 91807be4b25c649168b51f18a41814454b482522 Mon Sep 17 00:00:00 2001 From: wangxiaoxi1 Date: Tue, 1 Nov 2022 13:09:47 +0000 Subject: [PATCH 9/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20wall?= =?UTF-8?q?facer/verify/enclave/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wallfacer/verify/enclave/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wallfacer/verify/enclave/.keep diff --git a/wallfacer/verify/enclave/.keep b/wallfacer/verify/enclave/.keep deleted file mode 100644 index e69de29b..00000000 -- Gitee