Skip to content

Commit 1115c19

Browse files
committed
Linux 1.8 Open Source Gold release
Signed-off-by: Li, Xun <[email protected]>
1 parent 2e379dc commit 1115c19

File tree

1,822 files changed

+455991
-6943
lines changed

Some content is hidden

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

1,822 files changed

+455991
-6943
lines changed

License.txt

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD License
22

3-
Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
3+
Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
44

55
Redistribution and use in source and binary forms, with or without
66
modification, are permitted provided that the following conditions
@@ -30,14 +30,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3030

3131
=================================================================
3232

33-
SGX Eclipse plug-in is licensed under Eclipse Public License-v1.0
33+
Intel(R) Software Guard Extensions (Intel(R) SGX) Eclipse plug-in is licensed under Eclipse Public License-v1.0
3434
http://www.eclipse.org/legal/epl-v10.html
3535

3636

3737

3838
==============================================================
3939

40-
libsgx_le.signed.so, libsgx_pce.signed.so, libsgx_pve.signed.so and libsgx_qe.signed.so are licensed as Intel redistributable binary firmware and other blobs.
40+
libsgx_le.signed.so, libsgx_pce.signed.so, libsgx_pve.signed.so, libsgx_qe.signed.so, libsgx_pse_pr.signed.so and libsgx_pse_op.signed.so are licensed as Intel redistributable binary firmware and other blobs.
4141

4242

4343
Copyright (c) Intel Corporation.
@@ -83,7 +83,7 @@ DAMAGE.
8383

8484
===========================================================================================================================================================
8585

86-
SGX software for Linux also uses third-party projects that may be distributed under different licenses. Please see below for details.
86+
Intel(R) SGX software for Linux also uses third-party projects that may be distributed under different licenses. Please see below for details.
8787

8888

8989
1. Android Open Source Project
@@ -1394,3 +1394,44 @@ All Recipient's rights under this Agreement shall terminate if it fails to compl
13941394
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
13951395

13961396
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
1397+
1398+
1399+
1400+
1401+
18. TCMALLOC
1402+
1403+
TCMALLOC is part of Google Perf Tools, which is distributed under the terms of the BSD license.
1404+
1405+
http://goog-perftools.sourceforge.net/
1406+
1407+
1408+
Copyright (c) 2005, Google Inc.
1409+
All rights reserved.
1410+
1411+
Redistribution and use in source and binary forms, with or without
1412+
modification, are permitted provided that the following conditions are
1413+
met:
1414+
1415+
* Redistributions of source code must retain the above copyright
1416+
notice, this list of conditions and the following disclaimer.
1417+
* Redistributions in binary form must reproduce the above
1418+
copyright notice, this list of conditions and the following disclaimer
1419+
in the documentation and/or other materials provided with the
1420+
distribution.
1421+
* Neither the name of Google Inc. nor the names of its
1422+
contributors may be used to endorse or promote products derived from
1423+
this software without specific prior written permission.
1424+
1425+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1426+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1427+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1428+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1429+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1430+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1431+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1432+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1433+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1434+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1435+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1436+
1437+

Linux_SGXEclipsePlugin/build_directory/features/com.intel.sgx.feature/feature.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ tools Plug-in to allow ISVs develop secure extensions in C or
2424
C++. The Plug-in also allows conversion of an Linux Application
2525
project into an Linux Application project with Software Guard
2626
Extensions.
27-
Using the Plug-in features and SGX Plug-in Menu options, a developer
27+
Using the Plug-in features and Intel(R) SGX Plug-in Menu options, a developer
2828
can modify the Signing keys and Enclave Configuration for an
2929
Enclave project and can add enclaves inside a project with SGX Nature.
3030
Once development is complete, the developer can build the Enclave
31-
and the Linux project using the SGX SDK for Linux with Release/Debug Configurations in Simulation/Hardware
31+
and the Linux project using the Intel(R) SGX SDK for Linux with Release/Debug Configurations in Simulation/Hardware
3232
mode and Hardware Prerelease mode.
3333
</description>
3434

Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/content.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ <h3>Adding SGX Nature to a non-SGX project</h3>
214214
<p class="figcap">Intel(R) SGX Tools</p>
215215
</li>
216216
<li>
217-
<p>New configurations specific to SGX technology. You may see the configurations for the project by clicking to the down arrow of button <img src="Resources/Images/Down_Arrow_Button.png" /> usually found at the top of the Eclipse window:</p>
217+
<p>New configurations specific to Intel(R) SGX technology. You may see the configurations for the project by clicking to the down arrow of button <img src="Resources/Images/Down_Arrow_Button.png" /> usually found at the top of the Eclipse window:</p>
218218
<p>
219219
<img src="Resources/Images/Configurations_Specific_to_Intel_SGX_Technology.png" />
220220
</p>

Linux_SGXEclipsePlugin/build_directory/sites/site.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<feature url="features/com.intel.sgx.feature_1.0.1.qualifier.jar" id="com.intel.sgx.feature" version="1.0.1.qualifier">
1818
<category name="com.intel.security.sgx"/>
1919
</feature>
20-
<category-def name="com.intel.security.sgx" label="SGX Eclipse Plugin">
21-
<description>SGX Eclipse Plugin 1.0.1.qualifier</description>
20+
<category-def name="com.intel.security.sgx" label="Intel(R) SGX Eclipse Plugin">
21+
<description>Intel(R) SGX Eclipse Plugin 1.0.1.qualifier</description>
2222
</category-def>
2323
</site>

Linux_SGXEclipsePlugin/readme.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The following plugins are pre-requisites to be installed in Eclipse before tryin
1212
run ./build.sh from command line under current directory.
1313
Once the build script is run, the folder build_directory/updatesite/sgx-eclipse-plugin contains the update site. This is the path that needs to be provided to the eclipse while doing installation.
1414

15-
If the sgx eclipse plugin is already installed to eclipse and to build and install a newer version, uninstall the old version and start eclipse with the -clean option.
15+
If the Intel(R) Software Guard Extensions (Intel(R) SGX) eclipse plugin is already installed to eclipse and to build and install a newer version, uninstall the old version and start eclipse with the -clean option.
1616
Then try to build the new version of the plugin and install it in eclipse.
1717

1818
http://wiki.eclipse.org/FAQ_How_do_I_remove_a_plug-in%3F

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
2+
# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
33
#
44
# Redistribution and use in source and binary forms, with or without
55
# modification, are permitted provided that the following conditions

README.md

Lines changed: 75 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ Introduction
77
------------
88
Intel(R) Software Guard Extensions (Intel(R) SGX) is an Intel technology for application developers seeking to protect select code and data from disclosure or modification.
99

10-
The Linux SGX software stack is comprised of the SGX driver, the SGX SDK, and the SGX Platform Software. The SGX SDK and SGX PSW are hosted in the [linux-sgx](https://github.com/01org/linux-sgx) project.
10+
The Linux Intel SGX software stack is comprised of the Intel SGX driver, the Intel SGX SDK, and the Intel SGX Platform Software. The Intel SGX SDK and Intel SGX PSW are hosted in the [linux-sgx](https://github.com/01org/linux-sgx) project.
1111

12-
The [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project hosts the out-of-tree driver for the Linux SGX software stack, which will be used until the driver upstreaming process is complete.
12+
The [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project hosts the out-of-tree driver for the Linux Intel SGX software stack, which will be used until the driver upstreaming process is complete.
1313

14-
**Note** This repository includes a subset of the Intel(R) IPP Cryptography library under [external/crypto_px](https://github.com/01org/linux-sgx/external/crypto_px). It is provided as reference implementation for the cryptographic primitives used in SDK and PSW. They are written in pure C and are not optimized for performance. Instructions are provided below for building the SDK and PSW with both precompiled optimized IPP binaries and the non-optimized source code version.
14+
**Note** This repository includes a subset of the Intel(R) IPP Cryptography library under [external/crypto_px](https://github.com/01org/linux-sgx/external/crypto_px). It is provided as reference implementation for the cryptographic primitives used in SDK and PSW. They are written in pure C and are not optimized for performance. Instructions are provided below for building the SDK and PSW with both precompiled optimized IPP binaries and the non-optimized source code version.
1515

1616
License
1717
-------
@@ -30,21 +30,35 @@ Documentation
3030

3131
Build and Install the Intel(R) SGX Driver
3232
-----------------------------------------
33-
Follow the instructions in the [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project to build and install the SGX driver.
33+
Follow the instructions in the [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project to build and install the Intel SGX driver.
3434

3535
Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
3636
-------------------------------------------------------
3737
###Prerequisites:
3838
- Ensure that you have the following required operating systems:
39-
Ubuntu\* Desktop-14.04-LTS 64bits
40-
- Use the following command to install the required tools to build Intel(R) SGX SDK:
41-
```
42-
$ sudo apt-get install build-essential ocaml automake autoconf libtool wget python
43-
```
39+
* Ubuntu\* Desktop-16.04-LTS 64bits
40+
* Red Hat Enterprise Linux Server release 7.2 64bits
41+
* CentOS 7.3.1611 64bits
42+
43+
- Use the following command(s) to install the required tools to build Intel(R) SGX SDK:
44+
* On Ubuntu 16.04:
45+
```
46+
$ sudo apt-get install build-essential ocaml automake autoconf libtool wget python
47+
```
48+
* On Red Hat Enterprise Linux 7.2 and CentOS 7.3:
49+
```
50+
$ sudo yum groupinstall 'Development Tools'
51+
$ sudo yum install ocaml wget python
52+
```
4453
- Use the following command to install additional required tools to build Intel(R) SGX PSW:
45-
```
46-
$ sudo apt-get install libcurl4-openssl-dev protobuf-compiler protobuf-c-compiler libprotobuf-dev libprotobuf-c0-dev
47-
```
54+
* On Ubuntu 16.04:
55+
```
56+
$ sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev
57+
```
58+
* On Red Hat Enterprise Linux 7.2 and CentOS 7.3:
59+
```
60+
$ sudo yum install openssl-devel libcurl-devel protobuf-compiler protobuf-devel
61+
```
4862
- Use the script ``download_prebuilt.sh`` inside source code package to download prebuilt binaries to prebuilt folder
4963
You may need set https proxy for wget tool used by the script (such as ``export https_proxy=http://test-proxy:test-port``)
5064
```
@@ -74,8 +88,8 @@ The following steps describe how to build the Intel SGX SDK and PSW. You can bui
7488
$ make clean
7589
```
7690

77-
- The build above uses prebuilt Intel(R) Architecture Enclaves(LE/PvE/QE/PCE) - the files ``psw/ae/data/prebuilt/libsgx_*.signed.so``, which have been signed by Intel in advance.
78-
To build those binaries by yourself (without a signature), first you need to build both Intel SGX SDK and PSW with the default configuration. After that, you can build each Architecture Enclave by using the `make` command from the corresponding folder:
91+
- The build above uses prebuilt Intel(R) Architecture Enclaves(LE/PvE/QE/PCE/PSE-OP/PSE-PR) and applet(PSDA) - the files ``psw/ae/data/prebuilt/libsgx_*.signed.so`` and ``psw/ae/data/prebuilt/PSDA.dalp``, which have been signed by Intel in advance.
92+
To build those enclaves by yourself (without a signature), first you need to build both Intel SGX SDK and PSW with the default configuration. After that, you can build each Architecture Enclave by using the `make` command from the corresponding folder:
7993
```
8094
$ cd psw/ae/le
8195
$ make
@@ -87,30 +101,31 @@ To build Intel(R) SGX SDK installer, enter the following command:
87101
$ make sdk_install_pkg
88102
```
89103
You can find the generated Intel SGX SDK installer ``sgx_linux_x64_sdk_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
90-
You could also make an SGX SDK installer with non-optimized source code for crypto library by
91-
```
92-
$ make sdk_install_pkg USE_OPT_LIBS=0
93-
```
94104

95105
###Build Intel(R) SGX PSW Installer
96106
To build Intel(R) SGX PSW installer, enter the following command:
97107
```
98108
$ make psw_install_pkg
99109
```
100110
You can find the generated Intel SGX PSW installer ``sgx_linux_x64_psw_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
101-
You could also make an SGX PSW intaller with non-optimized source code for crypto library by
102-
```
103-
$ make psw_install_pkg USE_OPT_LIBS=0
104-
```
111+
105112
Install Intel(R) SGX SDK
106113
------------------------
107114
###Prerequisites
108115
- Ensure that you have the following required operating systems:
109-
Ubuntu\* Desktop-14.04-LTS 64bits
116+
* Ubuntu\* Desktop-16.04-LTS 64bits
117+
* Red Hat Enterprise Linux Server release 7.2 64bits
118+
* CentOS 7.3.1611 64bits
110119
- Use the following command to install the required tool to use Intel(R) SGX SDK:
111-
```
112-
$ sudo apt-get install build-essential
113-
```
120+
* On Ubuntu 16.04:
121+
```
122+
$ sudo apt-get install build-essential python
123+
```
124+
* On Red Hat Enterprise Linux 7.2 and CentOS 7.3:
125+
```
126+
$ sudo yum groupinstall 'Development Tools'
127+
$ sudo yum install python
128+
```
114129

115130
###Install Intel(R) SGX SDK
116131
To install Intel(R) SGX SDK, execute the installer with root privilege:
@@ -119,46 +134,65 @@ $ cd linux/installer/bin
119134
$ sudo ./sgx_linux_x64_sdk_${version}.bin
120135
```
121136
###Test Intel(R) SGX SDK Package with the Sample Codes
122-
- Copy the sample codes installed by Intel(R) SGX SDK package into your work folder, such as
137+
- Copy the sample codes installed by Intel(R) SGX SDK package into your work folder, such as:
123138
```
124139
$ cp -r /opt/intel/sgxsdk/SampleCode ~
125140
```
126-
- Compile and run each sample codes in the simulation mode to make sure the package works well.
141+
- Compile and run each sample codes in the simulation mode to make sure the package works well:
127142
```
128143
$ cd SampleCode/LocalAttestation
129-
$ make
144+
$ make SGX_MODE=SIM
130145
$ ./app
131146
```
132147
Use similar commands for other sample codes.
133-
134148
###Compile and Run the Sample Codes in the Hardware Mode
135-
If you use an SGX hardware enabled machine, you need to run the sample codes in the hardware mode.
136-
Ensure that you install SGX driver and Intel(R) SGX PSW installer on the machine.
149+
If you use an Intel SGX hardware enabled machine, you can run the sample codes in the hardware mode.
150+
Ensure that you install Intel(R) SGX driver and Intel(R) SGX PSW installer on the machine.
151+
See the topic, Build and Install the Intel(R) SGX Driver, on how to install the Intel(R) SGX driver.
137152
See the topic, Install Intel(R) SGX PSW, on how to install the PSW package.
138-
- Copy the sample codes installed by the Intel(R) SGX SDK package into your work folder, such as
153+
- Copy the sample codes installed by the Intel(R) SGX SDK package into your work folder, such as:
139154
```
140155
$ cp -r /opt/intel/sgxsdk/SampleCode ~
141156
```
142-
- Compile and run each sample codes in the debug mode.
157+
- Compile and run each sample codes in the hardware mode, debug build:
143158
```
144159
$ cd SampleCode/LocalAttestation
145-
$ make SGX_MODE=HW SGX_DEBUG=1
160+
$ make
146161
$ ./app
147162
```
148163
Use similar commands for other sample codes.
149-
150164
Install Intel(R) SGX PSW
151165
------------------------
152166
###Prerequisites
153167
- Ensure that you have the following required operating systems:
154-
Ubuntu\* Desktop-14.04-LTS 64bits
168+
* Ubuntu\* Desktop-16.04-LTS 64bits
169+
* Red Hat Enterprise Linux Server release 7.2 64bits
170+
* CentOS 7.3.1611 64bits
155171
- Ensure that you have the following required hardware:
156172
6th Generation Intel(R) Core(TM) Processor (code named Skylake)
157-
- Configure the system with the **SGX hardware enabled** option and install SGX driver in advance.
158-
See the topic, Build and Install the Intel(R) SGX Driver, on how to install the SGX driver.
173+
- Configure the system with the **Intel SGX hardware enabled** option and install Intel SGX driver in advance.
174+
See the topic, Build and Install the Intel(R) SGX Driver, on how to install the Intel SGX driver.
159175
- Install the library using the following command:
160-
```
161-
$ sudo apt-get install libcurl4-openssl-dev libprotobuf-dev libprotobuf-c0-dev
176+
* On Ubuntu 16.04:
177+
```
178+
$ sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev
179+
```
180+
* On Red Hat Enterprise Linux 7.2 and CentOS 7.3:
181+
```
182+
$ sudo yum install openssl-devel libcurl-devel protobuf-devel
183+
```
184+
- To use trusted platform service on Ubuntu 16.04
185+
Ensure mei_me driver is enabled and /dev/mei0 exists.
186+
[Download iclsClient](https://software.intel.com/en-us/sgx-sdk/download) and install it using the following commands:
187+
```
188+
$ sudo apt-get install alien
189+
$ sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm
190+
$ sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb
191+
```
192+
Download source code from [dynamic-application-loader-host-interface](https://github.com/01org/dynamic-application-loader-host-interface) project. In the source code folder build and install JHI service using the following commands:
193+
```
194+
$ sudo apt-get install uuid-dev libxml2-dev
195+
$ cmake .;make;sudo make install;sudo systemclt enable jhi
162196
```
163197

164198
###Install Intel(R) SGX PSW

SampleCode/LocalAttestation/App/App.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
2+
* Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
33
*
44
* Redistribution and use in source and binary forms, with or without
55
* modification, are permitted provided that the following conditions
Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
<EnclaveConfiguration>
2-
<ProdID>0</ProdID>
3-
<ISVSVN>0</ISVSVN>
4-
<StackMaxSize>0x40000</StackMaxSize>
5-
<HeapMaxSize>0x100000</HeapMaxSize>
6-
<TCSNum>1</TCSNum>
7-
<TCSPolicy>1</TCSPolicy>
8-
<DisableDebug>0</DisableDebug>
9-
<MiscSelect>0</MiscSelect>
10-
<MiscMask>0xFFFFFFFF</MiscMask>
11-
</EnclaveConfiguration>
1+
<EnclaveConfiguration>
2+
<ProdID>0</ProdID>
3+
<ISVSVN>0</ISVSVN>
4+
<StackMaxSize>0x40000</StackMaxSize>
5+
<HeapMaxSize>0x100000</HeapMaxSize>
6+
<TCSNum>1</TCSNum>
7+
<TCSPolicy>1</TCSPolicy>
8+
<!-- Recommend changing 'DisableDebug' to 1 to make the enclave undebuggable for enclave release -->
9+
<DisableDebug>0</DisableDebug>
10+
<MiscSelect>0</MiscSelect>
11+
<MiscMask>0xFFFFFFFF</MiscMask>
12+
</EnclaveConfiguration>

0 commit comments

Comments
 (0)