您好,登錄后才能下訂單哦!
1、SGX SDK
SGX SDK給開發者提供了一個精簡版的C標準函數庫?因為enclave里面是一個和Windows操作系統隔離的運行環境,這個環境并不能直接訪問電腦的顯卡和硬盤文件系統,所以SDK提供的C標準函數庫并不包含我們常用的printf()或者fread(),fopen()之類的I/O函數?
2、實現OpenSGX應用
實現一個OpenSGX程序類似于正常的C程序。由于對SGX程序的操作系統支持,OpenSGX支持系統調用接口和用戶級的API,用戶只需用他們建立并執行OpenSGX二進制文件。唯一的區別在于,使用enclave_main()而不是主main(),使用sgx_exit(null)代替return。在OpenSGX程序中,在編譯OpenSGX程序時,有可能使用現有的libc庫函數或通過將存檔文件加密的庫函數如polarssl。由于OpenSGX提供它自己的定制鏈接腳本和加載器,所以通過修改,它們用到其他庫中的enclave二進制文件。
編寫代碼之前,我們需要定義可信和不可信的函數,我們首先建立一個文件夾,在文件夾中為了編譯方便(仿照上一節的makefile寫我們自己的makefie)也仿照sdk給的例子中的文件夾布局建立新的文件夾文件夾的布局如下:
1.App:
外部程序,在enclave外部運行的代碼
外部應用程序源碼
2.Enclave:
Enclave.config.xml:enclave 配置文件,配置enclave的堆棧大小,鏈接數
Enclave_private.pem:用來給動態鏈接庫簽名的私鑰
Enclave.lds:encalve link script
Enclave.edl:
用來聲明enclave內部的trusted函數和app中的untrusted函數
如果app中要調用enclave中的函數,那么該函數必須在edl的trusted 中聲明;
如果enclave中要調用app中的函數,那么該函數必須在edl的untrusted中聲明;
其他:enclave 內部程序源碼
3.Include:
外部應用程序和enclave程序共享的頭文件,大多是公用的數據類型的定義
4.Makefile
構建項目
關注:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。