This is an automated email from the ASF dual-hosted git repository.
mssun pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new ab7314b Update documentation
ab7314b is described below
commit ab7314b4010e546e5818740a83cf272da635ad18
Author: Mingshen Sun <[email protected]>
AuthorDate: Thu May 14 17:29:00 2020 -0700
Update documentation
---
404.html | 12 +--
assets/css/0.styles.3422333c.css | 1 +
assets/css/0.styles.81c1687c.css | 1 -
assets/js/10.f8dc39a8.js | 1 +
assets/js/11.e41faf7e.js | 1 +
assets/js/12.689783dd.js | 1 +
assets/js/13.deae78a5.js | 1 +
assets/js/14.8a646971.js | 1 +
assets/js/15.05b002ed.js | 1 +
assets/js/16.e99bbe6d.js | 1 +
assets/js/17.dd1e5b4a.js | 1 +
assets/js/18.0859b5f5.js | 1 +
assets/js/19.a2adc13d.js | 1 +
assets/js/2.44870f5a.js | 1 +
assets/js/2.846f171c.js | 1 -
assets/js/20.38d0477a.js | 1 +
assets/js/21.bcfb938d.js | 1 +
assets/js/22.dc5f62e0.js | 1 +
assets/js/23.cd0f929d.js | 1 +
assets/js/24.adb6fe1f.js | 1 +
assets/js/3.644f4383.js | 1 +
assets/js/3.e8071a00.js | 1 -
assets/js/{4.00ab8d50.js => 4.1683f840.js} | 0
assets/js/5.0a2a79d5.js | 1 +
assets/js/5.2152e131.js | 1 -
assets/js/6.51151a3e.js | 1 +
assets/js/7.699fd8ca.js | 1 +
assets/js/8.e04b58e8.js | 1 +
assets/js/9.1ba3d74d.js | 1 +
assets/js/{app.0e2a2d09.js => app.d28af496.js} | 8 +-
cli/index.html | 28 +++++++
config/index.html | 56 ++++++++++++++
dcap/index.html | 46 +++++++++++
docker/index.html | 68 ++++++++++++++++
docs/index.html | 25 ++++++
docs/mutual-attestation/index.html | 63 +++++++++++++++
docs/my-first-function/index.html | 103 +++++++++++++++++++++++++
docs/rust-guildeline/index.html | 58 ++++++++++++++
docs/threat-model/index.html | 65 ++++++++++++++++
index.html | 35 ++++++---
keys/index.html | 39 ++++++++++
services/index.html | 68 ++++++++++++++++
teaclave/CONTRIBUTORS.html | 29 +++++++
teaclave/common/protected_fs_rs/index.html | 30 +++++++
teaclave/common/rusty_leveldb_sgx/index.html | 40 ++++++++++
teaclave/examples/index.html | 25 ++++++
teaclave/index.html | 45 +++++++++++
teaclave/sdk/index.html | 25 ++++++
teaclave/tests/index.html | 44 +++++++++++
teaclave/third_party/index.html | 38 +++++++++
50 files changed, 953 insertions(+), 24 deletions(-)
diff --git a/404.html b/404.html
index 4bc2c6b..1262bc6 100644
--- a/404.html
+++ b/404.html
@@ -3,17 +3,17 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Apache Teaclave</title>
+ <title>Apache Teaclave (incubating)</title>
<meta name="generator" content="VuePress 1.5.0">
- <meta name="description" content="Teaclave is an open source universal
secure computing platform, making computation on privacy-sensitive data safe
and simple.">
- <link rel="preload" href="/assets/css/0.styles.81c1687c.css"
as="style"><link rel="preload" href="/assets/js/app.0e2a2d09.js"
as="script"><link rel="preload" href="/assets/js/4.00ab8d50.js"
as="script"><link rel="prefetch" href="/assets/js/2.846f171c.js"><link
rel="prefetch" href="/assets/js/3.e8071a00.js"><link rel="prefetch"
href="/assets/js/5.2152e131.js">
- <link rel="stylesheet" href="/assets/css/0.styles.81c1687c.css">
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/4.1683f840.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link rel="prefetch"
href="/assets/js/14.8a646971.js"><link rel="prefe [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
</head>
<body>
- <div id="app" data-server-rendered="true"><div
class="theme-container"><div class="theme-default-content"><h1>404</h1>
<blockquote>That's a Four-Oh-Four.</blockquote> <a href="/"
class="router-link-active">
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><div class="theme-default-content"><h1>404</h1>
<blockquote>Looks like we've got some broken links.</blockquote> <a href="/"
class="router-link-active">
Take me home.
</a></div></div><div class="global-ui"></div></div>
- <script src="/assets/js/app.0e2a2d09.js" defer></script><script
src="/assets/js/4.00ab8d50.js" defer></script>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/4.1683f840.js" defer></script>
</body>
</html>
diff --git a/assets/css/0.styles.3422333c.css b/assets/css/0.styles.3422333c.css
new file mode 100644
index 0000000..2dafdc3
--- /dev/null
+++ b/assets/css/0.styles.3422333c.css
@@ -0,0 +1 @@
+code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale
Mono,Ubuntu
Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em
0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>cod
[...]
\ No newline at end of file
diff --git a/assets/css/0.styles.81c1687c.css b/assets/css/0.styles.81c1687c.css
deleted file mode 100644
index a0fc8f9..0000000
--- a/assets/css/0.styles.81c1687c.css
+++ /dev/null
@@ -1 +0,0 @@
-code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale
Mono,Ubuntu
Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em
0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>cod
[...]
\ No newline at end of file
diff --git a/assets/js/10.f8dc39a8.js b/assets/js/10.f8dc39a8.js
new file mode 100644
index 0000000..a785975
--- /dev/null
+++ b/assets/js/10.f8dc39a8.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{356:function(e,t,s){"use
strict";s.r(t);var a=s(43),i=Object(a.a)({},(function(){var
e=this,t=e.$createElement,s=e._self._c||t;return
s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"leveldb-rs"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#leveldb-rs"}},[e._v("#")]),e._v("
leveldb-rs")]),e._v("
"),s("p",[s("a",{attrs:{href:"https://ci.mesalock-linux.org/mesalock-linux/rusty_leveldb_sgx"
[...]
\ No newline at end of file
diff --git a/assets/js/11.e41faf7e.js b/assets/js/11.e41faf7e.js
new file mode 100644
index 0000000..375348f
--- /dev/null
+++ b/assets/js/11.e41faf7e.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{357:function(e,t,i){"use
strict";i.r(t);var n=i(43),a=Object(n.a)({},(function(){var
e=this,t=e.$createElement,i=e._self._c||t;return
i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"configurations-in-teaclave"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#configurations-in-teaclave"}},[e._v("#")]),e._v("
Configurations in Teaclave")]),e._v(" "),i("p",[e._v("This Teaclave Config
describe [...]
\ No newline at end of file
diff --git a/assets/js/12.689783dd.js b/assets/js/12.689783dd.js
new file mode 100644
index 0000000..8edb30e
--- /dev/null
+++ b/assets/js/12.689783dd.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{358:function(e,t,n){"use
strict";n.r(t);var a=n(43),i=Object(a.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"data-center-attestation-service"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#data-center-attestation-service"}},[e._v("#")]),e._v("
Data Center Attestation Service")]),e._v(" "),n("p",[e._v("This directory [...]
\ No newline at end of file
diff --git a/assets/js/13.deae78a5.js b/assets/js/13.deae78a5.js
new file mode 100644
index 0000000..050f96d
--- /dev/null
+++ b/assets/js/13.deae78a5.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{359:function(e,t,a){"use
strict";a.r(t);var n=a(43),r=Object(n.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-docker"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-docker"}},[e._v("#")]),e._v("
Teaclave Docker")]),e._v(" "),a("p",[e._v("This directory contains the docker
infrastructure for build an [...]
\ No newline at end of file
diff --git a/assets/js/14.8a646971.js b/assets/js/14.8a646971.js
new file mode 100644
index 0000000..7d24613
--- /dev/null
+++ b/assets/js/14.8a646971.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{360:function(t,e,a){"use
strict";a.r(e);var o=a(43),n=Object(o.a)({},(function(){var
t=this,e=t.$createElement,a=t._self._c||e;return
a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-documentation"}},[t._v("#")]),t._v("
Teaclave Documentation")]),t._v("
"),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/teaclave/d [...]
\ No newline at end of file
diff --git a/assets/js/15.05b002ed.js b/assets/js/15.05b002ed.js
new file mode 100644
index 0000000..67e6846
--- /dev/null
+++ b/assets/js/15.05b002ed.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{361:function(e,t,a){"use
strict";a.r(t);var n=a(43),s=Object(n.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"mutual-attestation-why-and-how"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mutual-attestation-why-and-how"}},[e._v("#")]),e._v("
Mutual Attestation: Why and How")]),e._v(" "),a("p",[e._v("The standard pro
[...]
\ No newline at end of file
diff --git a/assets/js/16.e99bbe6d.js b/assets/js/16.e99bbe6d.js
new file mode 100644
index 0000000..a2ba155
--- /dev/null
+++ b/assets/js/16.e99bbe6d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{362:function(e,t,a){"use
strict";a.r(t);var n=a(43),s=Object(n.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"my-first-function"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#my-first-function"}},[e._v("#")]),e._v("
My First Function")]),e._v(" "),a("p",[e._v("This documentation will guide you
through executing your [...]
\ No newline at end of file
diff --git a/assets/js/17.dd1e5b4a.js b/assets/js/17.dd1e5b4a.js
new file mode 100644
index 0000000..e888b76
--- /dev/null
+++ b/assets/js/17.dd1e5b4a.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{363:function(e,t,a){"use
strict";a.r(t);var n=a(43),r=Object(n.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"rust-development-guideline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rust-development-guideline"}},[e._v("#")]),e._v("
Rust Development Guideline")]),e._v(" "),a("p",[e._v("This doc defines some
guideli [...]
\ No newline at end of file
diff --git a/assets/js/18.0859b5f5.js b/assets/js/18.0859b5f5.js
new file mode 100644
index 0000000..2e6cd7f
--- /dev/null
+++ b/assets/js/18.0859b5f5.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{364:function(e,t,n){"use
strict";n.r(t);var a=n(43),o=Object(a.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"threat-model"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#threat-model"}},[e._v("#")]),e._v("
Threat Model")]),e._v(" "),n("p",[e._v("With its strongest security setting
applied, Teaclave guarantees data\n [...]
\ No newline at end of file
diff --git a/assets/js/19.a2adc13d.js b/assets/js/19.a2adc13d.js
new file mode 100644
index 0000000..1404a83
--- /dev/null
+++ b/assets/js/19.a2adc13d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{365:function(t,e,s){"use
strict";s.r(e);var n=s(43),l=Object(n.a)({},(function(){var
t=this.$createElement,e=this._self._c||t;return
e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("p",[this._v("examples")])])}),[],!1,null,null,null);e.default=l.exports}}]);
\ No newline at end of file
diff --git a/assets/js/2.44870f5a.js b/assets/js/2.44870f5a.js
new file mode 100644
index 0000000..e4fc51b
--- /dev/null
+++ b/assets/js/2.44870f5a.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{301:function(t,e,n){"use
strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return
a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return
u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return
c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return
f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return
d})),n.d(e,"c",(function(){return g})),n.d(e,"j",(function(){return [...]
\ No newline at end of file
diff --git a/assets/js/2.846f171c.js b/assets/js/2.846f171c.js
deleted file mode 100644
index 6992462..0000000
--- a/assets/js/2.846f171c.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{301:function(t,e,n){"use
strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return
a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return
u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return
c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return
f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return
d})),n.d(e,"c",(function(){return g})),n.d(e,"j",(function(){return [...]
\ No newline at end of file
diff --git a/assets/js/20.38d0477a.js b/assets/js/20.38d0477a.js
new file mode 100644
index 0000000..ffddb19
--- /dev/null
+++ b/assets/js/20.38d0477a.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{366:function(e,t,a){"use
strict";a.r(t);var r=a(43),n=Object(r.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"keys-and-certificates-in-teaclave"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#keys-and-certificates-in-teaclave"}},[e._v("#")]),e._v("
Keys and Certificates in Teaclave")]),e._v(" "),a("p",[e._v("This dir [...]
\ No newline at end of file
diff --git a/assets/js/21.bcfb938d.js b/assets/js/21.bcfb938d.js
new file mode 100644
index 0000000..aaf2489
--- /dev/null
+++ b/assets/js/21.bcfb938d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{367:function(t,s,e){"use
strict";e.r(s);var n=e(43),l=Object(n.a)({},(function(){var
t=this.$createElement,s=this._self._c||t;return
s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("p",[this._v("sdk")])])}),[],!1,null,null,null);s.default=l.exports}}]);
\ No newline at end of file
diff --git a/assets/js/22.dc5f62e0.js b/assets/js/22.dc5f62e0.js
new file mode 100644
index 0000000..25c8486
--- /dev/null
+++ b/assets/js/22.dc5f62e0.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{368:function(e,t,n){"use
strict";n.r(t);var s=n(43),a=Object(s.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"teaclave-services"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-services"}},[e._v("#")]),e._v("
Teaclave Services")]),e._v(" "),n("p",[e._v("This directory contains protocol
definitions and impleme [...]
\ No newline at end of file
diff --git a/assets/js/23.cd0f929d.js b/assets/js/23.cd0f929d.js
new file mode 100644
index 0000000..91b7588
--- /dev/null
+++ b/assets/js/23.cd0f929d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{369:function(t,e,s){"use
strict";s.r(e);var n=s(43),a=Object(n.a)({},(function(){var
t=this,e=t.$createElement,s=t._self._c||e;return
s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"tests-in-teaclave"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tests-in-teaclave"}},[t._v("#")]),t._v("
Tests in Teaclave")]),t._v(" "),s("p",[t._v("This directory contains all tests
in Teaclave including [...]
\ No newline at end of file
diff --git a/assets/js/24.adb6fe1f.js b/assets/js/24.adb6fe1f.js
new file mode 100644
index 0000000..0b13a7c
--- /dev/null
+++ b/assets/js/24.adb6fe1f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{370:function(e,t,n){"use
strict";n.r(t);var a=n(43),r=Object(a.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"dependencies-and-rust-packages-crates-vendoring"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#dependencies-and-rust-packages-crates-vendoring"}},[e._v("#")]),e._v("
Dependencies and Rust Packages (Crates) V [...]
\ No newline at end of file
diff --git a/assets/js/3.644f4383.js b/assets/js/3.644f4383.js
new file mode 100644
index 0000000..d1db093
--- /dev/null
+++ b/assets/js/3.644f4383.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{317:function(t,e,n){},348:function(t,e,n){"use
strict";var i=n(317);n.n(i).a},371:function(t,e,n){"use strict";n.r(e);var
i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var
n=e.props,i=e.slots;return
t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(348),n(43)),a=Object(r.a)(i,void
0,void 0,!1,null,"385f24c3 [...]
\ No newline at end of file
diff --git a/assets/js/3.e8071a00.js b/assets/js/3.e8071a00.js
deleted file mode 100644
index 6806701..0000000
--- a/assets/js/3.e8071a00.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{317:function(t,e,n){},348:function(t,e,n){"use
strict";var a=n(317);n.n(a).a},352:function(t,e,n){"use strict";n.r(e);var
a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var
n=e.props,a=e.slots;return
t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||a().default)}},i=(n(348),n(43)),r=Object(i.a)(a,void
0,void 0,!1,null,"76a02c50 [...]
\ No newline at end of file
diff --git a/assets/js/4.00ab8d50.js b/assets/js/4.1683f840.js
similarity index 100%
rename from assets/js/4.00ab8d50.js
rename to assets/js/4.1683f840.js
diff --git a/assets/js/5.0a2a79d5.js b/assets/js/5.0a2a79d5.js
new file mode 100644
index 0000000..765fc03
--- /dev/null
+++ b/assets/js/5.0a2a79d5.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{351:function(e,t,n){"use
strict";n.r(t);var a=n(43),s=Object(a.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h2",{attrs:{id:"highlights"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#highlights"}},[e._v("#")]),e._v("
Highlights")]),e._v("
"),n("ul",[n("li",[n("strong",[e._v("Security")]),e._v(":\nTeaclave adopts
multiple security t [...]
\ No newline at end of file
diff --git a/assets/js/5.2152e131.js b/assets/js/5.2152e131.js
deleted file mode 100644
index ae0935a..0000000
--- a/assets/js/5.2152e131.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{351:function(e,t,n){"use
strict";n.r(t);var a=n(43),i=Object(a.a)({},(function(){var
e=this,t=e.$createElement,n=e._self._c||t;return
n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("p",[e._v("Teaclave
is an open source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.")]),e._v("
"),n("h2",{attrs:{id:"highlights"}},[n("a",{staticClass:"header-anchor",attrs:{href
[...]
\ No newline at end of file
diff --git a/assets/js/6.51151a3e.js b/assets/js/6.51151a3e.js
new file mode 100644
index 0000000..131cda1
--- /dev/null
+++ b/assets/js/6.51151a3e.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{352:function(e,t,r){"use
strict";r.r(t);var n=r(43),a=Object(n.a)({},(function(){var
e=this,t=e.$createElement,r=e._self._c||t;return
r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"contributors-of-apache-teaclave-incubating"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#contributors-of-apache-teaclave-incubating"}},[e._v("#")]),e._v("
Contributors of Apache Teaclave (incubating)")]),e._ [...]
\ No newline at end of file
diff --git a/assets/js/7.699fd8ca.js b/assets/js/7.699fd8ca.js
new file mode 100644
index 0000000..7c96e72
--- /dev/null
+++ b/assets/js/7.699fd8ca.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{353:function(e,t,a){"use
strict";a.r(t);var n=a(43),s=Object(n.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-a-universal-secure-computing-platform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-a-universal-secure-computing-platform"}},[e._v("#")]),e._v("
Teaclave: A Universal Secure Computing Platf [...]
\ No newline at end of file
diff --git a/assets/js/8.e04b58e8.js b/assets/js/8.e04b58e8.js
new file mode 100644
index 0000000..d9717e1
--- /dev/null
+++ b/assets/js/8.e04b58e8.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{354:function(e,t,a){"use
strict";a.r(t);var o=a(43),n=Object(o.a)({},(function(){var
e=this,t=e.$createElement,a=e._self._c||t;return
a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-command-line-tool"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-command-line-tool"}},[e._v("#")]),e._v("
Teaclave Command Line Tool")]),e._v(" "),a("p",[e._v("The Teaclave command
line tool [...]
\ No newline at end of file
diff --git a/assets/js/9.1ba3d74d.js b/assets/js/9.1ba3d74d.js
new file mode 100644
index 0000000..6bf04a6
--- /dev/null
+++ b/assets/js/9.1ba3d74d.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{355:function(e,t,r){"use
strict";r.r(t);var n=r(43),o=Object(n.a)({},(function(){var
e=this,t=e.$createElement,r=e._self._c||t;return
r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"rust-bindings-for-protectedfs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rust-bindings-for-protectedfs"}},[e._v("#")]),e._v("
Rust bindings for ProtectedFS")]),e._v(" "),r("p",[r("code",[e._v("protected_f
[...]
\ No newline at end of file
diff --git a/assets/js/app.0e2a2d09.js b/assets/js/app.d28af496.js
similarity index 66%
rename from assets/js/app.0e2a2d09.js
rename to assets/js/app.d28af496.js
index c255b92..0b2b232 100644
--- a/assets/js/app.0e2a2d09.js
+++ b/assets/js/app.d28af496.js
@@ -1,13 +1,13 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function
e(e){for(var
r,a,c=e[0],u=e[1],s=e[2],l=0,p=[];l<c.length;l++)a=c[l],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(r
in
u)Object.prototype.hasOwnProperty.call(u,r)&&(t[r]=u[r]);for(f&&f(e);p.length;)p.shift()();return
i.push.apply(i,s||[]),n()}function n(){for(var t,e=0;e<i.length;e++){for(var
n=i[e],r=!0,c=1;c<n.length;c++){var
u=n[c];0!==o[u]&&(r=!1)}r&&(i.splice(e--,1),t=a( [...]
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function
e(e){for(var
r,a,c=e[0],u=e[1],s=e[2],l=0,p=[];l<c.length;l++)a=c[l],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(r
in
u)Object.prototype.hasOwnProperty.call(u,r)&&(t[r]=u[r]);for(f&&f(e);p.length;)p.shift()();return
i.push.apply(i,s||[]),n()}function n(){for(var t,e=0;e<i.length;e++){for(var
n=i[e],r=!0,c=1;c<n.length;c++){var
u=n[c];0!==o[u]&&(r=!1)}r&&(i.splice(e--,1),t=a( [...]
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
- * @license MIT */void 0===(o="function"==typeof(r=function(){var
t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div
class="bar" role="bar"><div class="peg"></div></div><div class="spinner"
role="spinner"><div class="spinner-icon"></div></div>'};function
o(t,e,n){return t<e?e:t>n?n:t}function i(t){ret [...]
+ * @license MIT */void 0===(o="function"==typeof(r=function(){var
t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div
class="bar" role="bar"><div class="peg"></div></div><div class="spinner"
role="spinner"><div class="spinner-icon"></div></div>'};function
o(t,e,n){return t<e?e:t>n?n:t}function i(t){ret [...]
/*!
* Vue.js v2.6.11
* (c) 2014-2019 Evan You
* Released under the MIT License.
- */var i=Object.freeze({});function a(t){return null==t}function c(t){return
null!=t}function u(t){return!0===t}function s(t){return"string"==typeof
t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function
f(t){return null!==t&&"object"==typeof t}var
l=Object.prototype.toString;function p(t){return"[object
Object]"===l.call(t)}function h(t){return"[object RegExp]"===l.call(t)}function
v(t){var e=parseFloat(String(t));return
e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t [...]
+ */var i=Object.freeze({});function a(t){return null==t}function c(t){return
null!=t}function u(t){return!0===t}function s(t){return"string"==typeof
t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function
f(t){return null!==t&&"object"==typeof t}var
l=Object.prototype.toString;function p(t){return"[object
Object]"===l.call(t)}function d(t){return"[object RegExp]"===l.call(t)}function
v(t){var e=parseFloat(String(t));return
e>=0&&Math.floor(e)===e&&isFinite(t)}function h(t [...]
/*!
* vue-router v3.1.6
* (c) 2020 Evan You
* @license MIT
- */function Io(t){return
Object.prototype.toString.call(t).indexOf("Error")>-1}function Mo(t,e){return e
instanceof t||e&&(e.name===t.name||e._name===t._name)}function Do(t,e){for(var
n in e)t[n]=e[n];return t}var
No={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var
n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var
a=o.$createElement,c=n.name,u=o.$route,s=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._rout
[...]
\ No newline at end of file
+ */function Io(t){return
Object.prototype.toString.call(t).indexOf("Error")>-1}function Mo(t,e){return e
instanceof t||e&&(e.name===t.name||e._name===t._name)}function Do(t,e){for(var
n in e)t[n]=e[n];return t}var
No={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var
n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var
a=o.$createElement,c=n.name,u=o.$route,s=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._rout
[...]
\ No newline at end of file
diff --git a/cli/index.html b/cli/index.html
new file mode 100644
index 0000000..83422db
--- /dev/null
+++ b/cli/index.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Teaclave Command Line Tool | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/8.e04b58e8.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+interactive with the platform. The command line tool has several
subcommands:</p> <ul><li>encrypt/decrypt: These two subcommands are to
encrypt/decrypt data used on the
+platform. Supported algorithms include AES-GCM (128bit and 256 bit), and
+Teaclave File (128bit).</li></ul></div> <footer class="page-edit"><!---->
<!----></footer> <!----> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/8.e04b58e8.js" defer></script>
+ </body>
+</html>
diff --git a/config/index.html b/config/index.html
new file mode 100644
index 0000000..40541ad
--- /dev/null
+++ b/config/index.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Configurations in Teaclave | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/11.e41faf7e.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link rel="prefetch"
href="/assets/js/14.8a646971.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+configurations are defined in the TOML file format. Basically, there are two
types
+of configurations in Teaclave: <em>build config</em> and <em>runtime
config</em>.</p> <h2 id="build-config"><a href="#build-config"
class="header-anchor">#</a> Build Config</h2> <p>The build config defines
configurations which are provided at compilation time.
+That is, this type of configurations will be compiled as the part of the
+Teaclave platform and are hard-coded in the services. For example, the root CA
+certificate of attestation service used for verifying attestation report,
+auditors' public keys for verification of enclave information, and topological
+graph of connections between services for mutual attestation. More detailed
+explanation of configurations can be seen in the
+<a href="build.config.toml"><code>build.config.toml</code></a> file.</p>
<p>Note that it is very <em>important</em> to define these configurations in
build time,
+because they are part of Teaclave's <em>trusted computing base</em> (TCB) and
will be
+<em>remotely attested</em>. In Teaclave's <a
href="/teaclave/docs/threat-model.html">threat model</a>,
+operating system could be compromised. If this configurations is not in TCB
+(i.e., cannot be remotely attested), the security and integrity of the platform
+may be affected.</p> <h2 id="runtime-config"><a href="#runtime-config"
class="header-anchor">#</a> Runtime Config</h2> <p>The runtime config defines
some configurations which will be used at execution
+runtime. It includes listening and advertised addresses of service endpoints in
+Teaclave, the enclave information and auditor's signatures files loaded at
+runtime, algorithm/id/key used for connecting attestation services, etc.
+Some configurations can be overridden by environment variables. Detailed
+explanation of configurations can be found in the
+<a href="runtime.config.toml"><code>runtime.config.toml</code></a> file.</p>
<p>Note that the runtime config will be loaded when launching the services. We
+<em>should not</em> trust the content and make sure maliciously crafted config
from
+this file will not break any data confidentiality/integrity. Otherwise, the
+configuration must be defined as a build config.</p></div> <footer
class="page-edit"><!----> <!----></footer> <div class="page-nav"><p
class="inner"><span class="prev">
+ ←
+ <a href="/services/" class="prev">
+ Teaclave Services
+ </a></span> <span class="next"><a href="/dcap/">
+ Data Center Attestation Service
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/11.e41faf7e.js" defer></script>
+ </body>
+</html>
diff --git a/dcap/index.html b/dcap/index.html
new file mode 100644
index 0000000..95d93d3
--- /dev/null
+++ b/dcap/index.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Data Center Attestation Service | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/12.689783dd.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link rel="prefetch"
href="/assets/js/14.8a646971.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+service using
+<a
href="https://software.intel.com/en-us/blogs/2019/05/21/intel-sgx-datacenter-attestation-primitives"
target="_blank" rel="noopener noreferrer">Intel SGX Data Center Attestation
Primitives<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px"
y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon
outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<poly [...]
+which allows third-parties to create their own attestation infrastructure for
+the datacenter and cloud. Compared to Intel Attestation Service (IAS), DCAP
+Attestation Service is for environment where internet services is not
accessible
+and entities who are unwilling to outsource trust decisions to third-parties
+(like Intel's IAS).</p> <p>By default, Intel Attestation Service (IAS) will be
used for attestation in
+Teaclave. To use DCAP instead of IAS, you have to first build Teaclave with
DCAP
+enabled (by appending <code>-DDCAP=ON</code> option to <code>cmake</code>) and
deploy in
+infrastructure with DCAP supported.</p> <p>The Intel's <a
href="https://download.01.org/intel-sgx/sgx-dcap/1.3.1/linux/docs/Intel_SGX_DCAP_Linux_SW_Installation_Guide.pdf"
target="_blank" rel="noopener noreferrer">DCAP Installation Guide<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v5
[...]
+contains instructions to install essential dependencies for developers. Also,
+you need to prepare environment in your infrastructure before deploying a
+DCAP-enabled application.</p></div> <footer class="page-edit"><!---->
<!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/config/" class="prev">
+ Configurations in Teaclave
+ </a></span> <span class="next"><a href="/keys/">
+ Keys and Certificates in Teaclave
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/12.689783dd.js" defer></script>
+ </body>
+</html>
diff --git a/docker/index.html b/docker/index.html
new file mode 100644
index 0000000..e46cf81
--- /dev/null
+++ b/docker/index.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Teaclave Docker | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/13.deae78a5.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/14.8a646971.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+environment. Note that you must mount SGX device and ASEM domain socket into
the
+container environment to use SGX feature.</p> <h2 id="build"><a href="#build"
class="header-anchor">#</a> Build</h2> <p>The build dockerfile
(<code>build.*.Dockerfile</code>) only contains minimal dependencies
+to build and test the project. To use them, you can directly use pre-built
+docker images from Docker Hub with:</p> <div class="language-
extra-class"><pre class="language-text"><code>$ docker run --rm \
+ --device=/dev/isgx \
+ -v/var/run/aesmd/aesm.socket:/var/run/aesmd/aesm.socket \
+ -v`pwd`:/teaclave \
+ -w /teaclave \
+ -it teaclave/teaclave-build-ubuntu-1804-sgx-2.9:latest \
+ /bin/bash
+</code></pre></div><p>or you can also build the image by yourself with
<code>docker build</code>:</p> <div class="language- extra-class"><pre
class="language-text"><code>$ docker build -t teaclave-build - <
build.*.Dockerfile
+</code></pre></div><p>and run:</p> <div class="language- extra-class"><pre
class="language-text"><code>$ docker run --rm \
+ --device=/dev/isgx \
+ -v/var/run/aesmd/aesm.socket:/var/run/aesmd/aesm.socket \
+ -v`pwd`:/teaclave \
+ -w /teaclave \
+ -it teaclave/teaclave-build \
+ /bin/bash
+</code></pre></div><h2 id="runtime"><a href="#runtime"
class="header-anchor">#</a> Runtime</h2> <p>Teaclave contains many services, we
put services, config and related
+resources into one docker image
+(<code>teaclave-rt.ubuntu-1804.Dockerfile</code>). To make the deployment
+simpler, we recommend to use <a href="https://docs.docker.com/compose/"
target="_blank" rel="noopener noreferrer">docker-compose<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 [...]
+to manage all services. Since the remote attestation is required for all
+services, you should setup the attestation service configurations
+before start the services. You can use env vars or set them in the
+<code>docker-compose-ubuntu-1804.yml</code> file.</p> <p>Here is an example to
start all services.</p> <div class="language- extra-class"><pre
class="language-text"><code>$ export
AS_SPID="00000000000000000000000000000000"
+$ export AS_KEY="00000000000000000000000000000000"
+$ export AS_ALGO="sgx_epid"
+$ export AS_URL="https://api.trustedservices.intel.com:443"
+
+$ docker-compose -f docker-compose-ubuntu-1804.yml up
+Starting teaclave-authentication-service ... done
+Starting teaclave-access-control-service ... done
+Starting teaclave-scheduler-service ... done
+Starting teaclave-management-service ... done
+Starting teaclave-execution-service ... done
+Starting teaclave-frontend-service ... done
+Attaching to ...
+</code></pre></div></div> <footer class="page-edit"><!----> <!----></footer>
<div class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/keys/" class="prev">
+ Keys and Certificates in Teaclave
+ </a></span> <!----></p></div> </main></div><div
class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/13.deae78a5.js" defer></script>
+ </body>
+</html>
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..72d704e
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Teaclave Documentation | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/14.8a646971.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/14.8a646971.js" defer></script>
+ </body>
+</html>
diff --git a/docs/mutual-attestation/index.html
b/docs/mutual-attestation/index.html
new file mode 100644
index 0000000..9c5ed8f
--- /dev/null
+++ b/docs/mutual-attestation/index.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Mutual Attestation: Why and How | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/15.05b002ed.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+from a client to an enclave is through remote attestation. However, when the
+client itself is also an enclave and <em>mutual</em> trust between two
enclaves is
+required, we need additional design and implementation effort. The Teaclave
+platform consists of multiple enclave services and most of the
+enclave-to-enclave RPC communications need bidirectional authentication. This
+document entails the methodology and process of Teaclave's mutual enclave
remote
+attestation.</p> <h2 id="problem"><a href="#problem"
class="header-anchor">#</a> Problem</h2> <p>The identity of an enclave is
defined through a pair of cryptographically secure
+hash values, i.e., MRSIGNER and MRENCLAVE. MRSIGNER indicates the builder of
the
+enclave, thus shared by enclaves signed by the same party. MRENCLAVE is unique
+to each individual enclave. Teaclave assumes that users do not trust the
+software builder, so verifying MRSIGNER is not enough. For each enclave service
+in Teaclave, it must strictly check the unique identity of the other enclaves
it
+communicates to through MRENCLAVE.</p> <p>Since the SGX enclave trusts no
outside input, the MRENCLAVE should be
+hard-coded into source files used for identity verification logic. Therefore,
+changing the MRENCLAVE value an enclave tries to match against will change the
+MRENCLAVE of the enclave itself. When two enclaves want to remotely attest each
+other, it is impossible to decide which enclave is to be built first.</p> <h2
id="solution"><a href="#solution" class="header-anchor">#</a> Solution</h2>
<p>Teaclave resolves this problem by replying on third-party auditors. We assume
+that there will be several parties trusted by all participants of Teaclave's
+computation tasks (could platforms, data providers, and customers, etc). The
+source code and binaries of Teaclave are audited by these trusted parties. Once
+the auditors decided that Teaclave is secure, they sign and publish the
+identities of audited enclaves. The <em>public keys</em> of the auditors are
+hard-coded in Teaclave enclave source via build time configuration, while the
+enclave measures and their signatures are loaded from outside at runtime. Each
+enclave will verify that the enclave measures are indeed signed by the auditors
+before serving any requests.</p> <h2 id="in-the-repository"><a
href="#in-the-repository" class="header-anchor">#</a> In the Repository</h2>
<p>The <a href="../keys">keys/auditors</a> directory in the source tree contain
the key pairs
+of three fake auditing parties for PoC purposes. Private keys are also included
+to deliver a smooth build and test process. In production, builders of Teaclave
+should obtain the public keys, enclave identities, and the signatures directly
+from the auditors.</p></div> <footer class="page-edit"><!---->
<!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/docs/rust-guildeline/" class="prev">
+ Rust Development Guideline
+ </a></span> <span class="next"><a href="/services/">
+ Teaclave Services
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/15.05b002ed.js" defer></script>
+ </body>
+</html>
diff --git a/docs/my-first-function/index.html
b/docs/my-first-function/index.html
new file mode 100644
index 0000000..0106d0c
--- /dev/null
+++ b/docs/my-first-function/index.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>My First Function | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/16.e99bbe6d.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+Teaclave platform.</p> <h2 id="prerequisites"><a href="#prerequisites"
class="header-anchor">#</a> Prerequisites</h2> <p>To run Teacalve, a hardware
with Intel SGX support is needed. You can
+check with this list of <a href="https://github.com/ayeks/SGX-hardware"
target="_blank" rel="noopener noreferrer">supported hardware<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,2 [...]
+Note that you need to configure BIOS to enable SGX sometime. Additionally, you
+need to install driver and platform software to run SGX applications. Details
+can found in
+<a
href="https://download.01.org/intel-sgx/sgx-linux/2.9/docs/Intel_SGX_Installation_Guide_Linux_2.9_Open_Source.pdf"
target="_blank" rel="noopener noreferrer">Intel SGX Installation Guide<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygo [...]
+simulation mode. However some functions like remote attestation will be disable
+at this mode. Please start from <a href="#simulation-mode">here</a> if you
plan to try in
+simulation mode.</p> <h2 id="clone-and-build-teaclave"><a
href="#clone-and-build-teaclave" class="header-anchor">#</a> Clone and Build
Teaclave</h2> <p>Clone the Teaclave repository:</p> <div class="language-
extra-class"><pre class="language-text"><code>$ git clone
https://github.com/apache/incubator-teaclave.git
+</code></pre></div><p>Since the building dependencies is a bit complicated, we
suggest to build the
+Teaclave platform with our docker images. You can learn more details about the
+building environment from <code>Dockerfile</code> under the <a
href="../docker"><code>docker</code></a>
+directory.</p> <p>Build the Teaclave platform using docker:</p> <div
class="language- extra-class"><pre class="language-text"><code>$ cd
incubator-teaclave
+$ docker run --rm -v $(pwd):/teaclave -w /teaclave \
+ -it teaclave/teaclave-build-ubuntu-1804-sgx-2.9:latest \
+ bash -c ". /root/.cargo/env && \
+ mkdir -p build && cd build && \
+ cmake -DTEST_MODE=ON .. && \
+ make"
+</code></pre></div><h2 id="setup-attestation-service"><a
href="#setup-attestation-service" class="header-anchor">#</a> Setup Attestation
Service</h2> <p>For simplicity, we use Intel Attestation Service (IAS) in this
tutorial. To get
+started, you need to enroll in Intel SGX Attestation Service in
+Intel's <a
href="https://api.portal.trustedservices.intel.com/EPID-attestation"
target="_blank" rel="noopener noreferrer">attestation service portal<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 [...]
+by subscribing the attestation service for development (linkable is preferred).
+Then, you can find "SPID" and "Primary key" in the
subscription details for
+later usage.</p> <p>There is one more setup if you are using linkable
attestation service subscription.
+Edit the <code>/etc/aesmd.conf</code> file and uncomment
+the <code>default quoting type = epid_linkable</code> line to enable linkable
quotes for EPID-based attestation service
+(i.e., Intel Attestation Service). At last, the AESM service need to be
restarted by
+<code>sudo systemctl restart aesmd</code>.</p> <h2
id="launch-teaclave-services"><a href="#launch-teaclave-services"
class="header-anchor">#</a> Launch Teaclave Services</h2> <p>Teaclave contains
multiple services. To ease the deployment, you can use
+<a href="https://docs.docker.com/compose/" target="_blank" rel="noopener
noreferrer">docker-compose<svg xmlns="http://www.w3.org/2000/svg"
aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"
class="icon outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 [...]
+containerized environment.</p> <p>Setup environment variables:</p> <div
class="language- extra-class"><pre class="language-text"><code>$ export
AS_SPID="00000000000000000000000000000000" # SPID from IAS
subscription
+$ export AS_KEY="00000000000000000000000000000000" # Primary
key/Secondary key from IAS subscription
+$ export AS_ALGO="sgx_epid" # Attestation
algorithm, sgx_epid for IAS
+$ export AS_URL="https://api.trustedservices.intel.com:443" # IAS
URL
+</code></pre></div><p>Launch all services with
<code>docker-compose</code>:</p> <div class="language- extra-class"><pre
class="language-text"><code>$ (cd docker && docker-compose -f
docker-compose-ubuntu-1804.yml up --build)
+Starting teaclave-authentication-service ... done
+Starting teaclave-access-control-service ... done
+Starting teaclave-scheduler-service ... done
+Starting teaclave-management-service ... done
+Starting teaclave-execution-service ... done
+Starting teaclave-frontend-service ... done
+Attaching to ...
+</code></pre></div><h2 id="invoke-function"><a href="#invoke-function"
class="header-anchor">#</a> Invoke Function</h2> <p>We provide several examples
to demonstrating the platform. Let's get started
+with invoking a built-in function: echo, which is a simple function takes one
+input message and return it.</p> <p>This example is written in Python, and
some dependencies are needed for the
+remote attestation. They can be installed with <code>pip</code>:</p> <div
class="language- extra-class"><pre class="language-text"><code>$ pip3 install
pyopenssl toml cryptography
+</code></pre></div><p>Then, run the echo example:</p> <div class="language-
extra-class"><pre class="language-text"><code>$ cd examples/python
+$ python3 builtin_echo.py 'Hello, Teaclave!'
+[+] registering user
+[+] login
+[+] registering function
+[+] creating task
+[+] approving task
+[+] invoking task
+[+] getting result
+[+] done
+[+] function return: b'Hello, Teaclave!'
+</code></pre></div><p>If you see above log, this means that the function is
successfully invoked in
+Teaclave.</p> <h2 id="simulation-mode"><a href="#simulation-mode"
class="header-anchor">#</a> Simulation Mode</h2> <p>To try Teaclave in SGX
simulation mode, please install Intel SGX SDK first with instructions in
+<a
href="https://download.01.org/intel-sgx/sgx-linux/2.9/docs/Intel_SGX_Installation_Guide_Linux_2.9_Open_Source.pdf"
target="_blank" rel="noopener noreferrer">Intel SGX Installation Guide<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygo [...]
+$ cd incubator-teaclave
+$ docker run --rm -v $(pwd):/teaclave -w /teaclave \
+ -it teaclave/teaclave-build-ubuntu-1804-sgx-2.9:latest \
+ bash -c ". /root/.cargo/env && \
+ mkdir -p build && cd build && \
+ cmake -DTEST_MODE=ON -DSGX_SIM_MODE=ON .. && \
+ make"
+</code></pre></div><p>Since the attestation is disabled in the simulation
mode, related environment
+variables can be set to any values.</p> <div class="language-
extra-class"><pre class="language-text"><code>$ export
AS_SPID="00000000000000000000000000000000"
+$ export AS_KEY="00000000000000000000000000000000"
+$ export AS_ALGO="sgx_epid"
+$ export AS_URL="https://api.trustedservices.intel.com:443"
+</code></pre></div><p>At last, launch all services with
<code>docker-compose</code>:</p> <div class="language- extra-class"><pre
class="language-text"><code>$ (cd docker && docker-compose -f
docker-compose-ubuntu-1804.yml up --build)
+</code></pre></div></div> <footer class="page-edit"><!----> <!----></footer>
<div class="page-nav"><p class="inner"><!----> <span class="next"><a
href="/docs/threat-model/">
+ Threat Model
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/16.e99bbe6d.js" defer></script>
+ </body>
+</html>
diff --git a/docs/rust-guildeline/index.html b/docs/rust-guildeline/index.html
new file mode 100644
index 0000000..f445a36
--- /dev/null
+++ b/docs/rust-guildeline/index.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Rust Development Guideline | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/17.dd1e5b4a.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+the default configurations, but there are a couple of custom settings and lint
+exceptions. The exceptions should be defined along with the code. Our CI will
+check the format/lint issues and deny all warnings by default. Simply run
<code>make format</code> to format all code and <code>make CLP=1</code> to lint
code before submitting a PR.
+If you still have some doubts of the <code>clippy</code> error, feel free to
point out and
+add an exception.</p> <h2 id="elegant-apis"><a href="#elegant-apis"
class="header-anchor">#</a> Elegant APIs</h2> <p>Elegantly designed functions
and APIs will make the project readable and
+user-friendly. Basically, we follow naming conventions and API design patterns
+of Rust standard library. There's no official guideline, but here are several
+articles or docs for reference:</p> <ul><li><a
href="https://rust-lang.github.io/api-guidelines/" target="_blank"
rel="noopener noreferrer">Rust API guidelines<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points= [...]
+memory-safety guarantees. Therefore, we want to keep unsafe Rust as minimal as
+possible. Sometime (very rare) using unsafe Rust can significant improve
+performance, the unsafe code should <em>well documented</em> and <em>explain
the
+rationales</em>. For contributors and reviewers, pay attention to the unsafe
code
+and carefully check whether the pre-conditions and post-conditions are still
+hold.</p> <h2 id="error-handling"><a href="#error-handling"
class="header-anchor">#</a> Error Handling</h2> <p>Using <code>unwrap</code> or
<code>expect</code> to get a value from an optional type may introduce
+runtime panic. Therefore, properly using the error handling mechanism provided
+by Rust can make the system robust and clean. In some cases, optional value can
+never be <code>None</code> internally, <code>unwrap</code> can be used with a
comment explaining the
+assumptions and reasons. The same rule also applies to <code>panic</code> and
similar
+functions which may cause runtime panic. One exception is to use
<code>unwrap</code> and
+<code>expect</code> in tests, while <code>expect</code> is better because it
will show a message to
+help debugging.</p> <h2 id="third-party-crates"><a href="#third-party-crates"
class="header-anchor">#</a> Third-Party Crates</h2> <p>To ensure the security,
stability and compatibility of upstream crates, all
+third-party crates (especially for ported SGX-compatible crates) used in
+Teaclave are vendored in the <code>third_party</code> directory. Please refer
to the
+<code>crates-sgx</code> and <code>crates-io</code> repo and choose specific
versions of vendored
+crates.</p></div> <footer class="page-edit"><!----> <!----></footer> <div
class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/docs/threat-model/" class="prev">
+ Threat Model
+ </a></span> <span class="next"><a href="/docs/mutual-attestation/">
+ Mutual Attestation: Why and How
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/17.dd1e5b4a.js" defer></script>
+ </body>
+</html>
diff --git a/docs/threat-model/index.html b/docs/threat-model/index.html
new file mode 100644
index 0000000..0e057be
--- /dev/null
+++ b/docs/threat-model/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Threat Model | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/18.0859b5f5.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+confidentiality even if all parties along the computation path, privileged or
+not, are untrusted. This includes:</p> <ul><li>Internet service provider</li>
<li>Cloud provider</li> <li>Function provider</li> <li>Other data
providers</li></ul> <p>Specifically, most hardware (memory, disk, motherboard,
etc.), operating system
+(both kernel and software in userland), network channels, and provider
employees
+are untrusted.</p> <p>Consider the following scenario. A small business needs
to employ image
+classification techniques in its daily production. However, the business does
+not have the capabilities to train a high-quality machine learning model, nor
+does it have the hardware resources to host the machine learning
+infrastructures. Under such circumstances, the only solution is to subscribe to
+some cloud computing service and run the needed image classification tasks
+remotely. However, this solution requires the small business to upload its
+private data to the cloud, which may deeply concerns the business owner and
+hinders the deployment of such techniques.</p> <p>With Teaclave, privacy
concerns above are no more. The small business can
+subscribe to the cloud service from company A, rent the machine learning model
+from company B, and use the deep learning inference engine provided by company
+C. None of these parties need to trust another, yet the computation can
commence
+with everyone's privacy respected.</p> <p>In the settings above, the root of
trust converges to the enclave manufactures
+(i.e., Intel) and its SGX-enabled CPU chips. Before the computation starts,
+Teaclave is booted as a secure SGX enclave on one of these CPUs owned by the
+cloud service provider. After that, each party can <em>remotely</em> attest the
+authenticity of the hardware and the integrity of Teaclave platform through
+attestation service (e.g., Intel Attestation Service). Private data are
securely
+provisioned to the Teaclave enclave only if the attestation passes. After the
+provision, no privileged software is able to access the memory content owned by
+the enclave from outside.</p> <p>The remote attestation functionality
implemented by Teaclave is augmented from
+the method described by a <a href="https://arxiv.org/abs/1801.05863"
target="_blank" rel="noopener noreferrer">white paper<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,3 [...]
+nutshell, enclaves in Teaclave will establish trusted channel on attested TLS
+for communication. The complicated structure of Teaclave requires additional
+work for remote attestation, which is explained in details via a separate
+<a href="/teaclave/docs/mutual_attestation.html">documentation</a>.</p>
<p>Side channels are out of scope for current Teaclave's implementation. While
we
+acknowledge that existing enclaves may be vulnerable to various kinds of side
+channel attacks, we will try our best to mitigate existing attacks by adopting
+software hardening.</p></div> <footer class="page-edit"><!---->
<!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/docs/my-first-function/" class="prev">
+ My First Function
+ </a></span> <span class="next"><a href="/docs/rust-guildeline/">
+ Rust Development Guideline
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/18.0859b5f5.js" defer></script>
+ </body>
+</html>
diff --git a/index.html b/index.html
index bb48ba5..8ce3010 100644
--- a/index.html
+++ b/index.html
@@ -3,23 +3,27 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Apache Teaclave</title>
+ <title>Apache Teaclave (incubating)</title>
<meta name="generator" content="VuePress 1.5.0">
- <meta name="description" content="Teaclave is an open source universal
secure computing platform, making computation on privacy-sensitive data safe
and simple.">
- <link rel="preload" href="/assets/css/0.styles.81c1687c.css"
as="style"><link rel="preload" href="/assets/js/app.0e2a2d09.js"
as="script"><link rel="preload" href="/assets/js/2.846f171c.js"
as="script"><link rel="preload" href="/assets/js/5.2152e131.js"
as="script"><link rel="prefetch" href="/assets/js/3.e8071a00.js"><link
rel="prefetch" href="/assets/js/4.00ab8d50.js">
- <link rel="stylesheet" href="/assets/css/0.styles.81c1687c.css">
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/5.0a2a79d5.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
</head>
<body>
- <div id="app" data-server-rendered="true"><div class="theme-container
no-sidebar"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
+ <div id="app" data-server-rendered="true"><div class="theme-container
no-sidebar"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
GitHub
- <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
GitHub
- <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <!----> </aside> <main [...]
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
Apache Teaclave (incubating)
</h1> <p class="description">
an open source universal secure computing platform, making computation
on privacy-sensitive data safe and simple
- </p> <!----></header> <!----> <div class="theme-default-content custom
content__default"><p>Teaclave is an open source universal secure computing
platform, making computation on privacy-sensitive data safe and simple.</p> <h2
id="highlights"><a href="#highlights" class="header-anchor">#</a>
Highlights</h2> <ul><li><strong>Security</strong>:
+ </p> <!----></header> <!----> <div class="theme-default-content custom
content__default"><h2 id="highlights"><a href="#highlights"
class="header-anchor">#</a> Highlights</h2> <ul><li><strong>Security</strong>:
Teaclave adopts multiple security technologies to enable secure computing, in
particular, Teaclave uses Intel SGX to serve the most security-sensitive tasks
with <em>hardware-based isolation</em>, <em>memory encryption</em> and
<em>attestation</em>.
@@ -37,8 +41,19 @@ Components in Teaclave are designed in modular, and some
like remote
attestation can be easily embedded in other projects. In addition, Teaclave
SGX SDK can also be used separately to write standalone SGX enclaves for other
purposes.</li></ul></div> <div class="footer">
- Apache Teaclave is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of
all newly accepted projects until a further review indicates that the
infrastructure, communications, and decision making process have stabilized in
a manner consistent with other successful ASF projects. While incubation status
is not necessarily a reflection of the completeness or stability of the code,
it does indicate that the pr [...]
+ Apache Teaclave is an effort undergoing incubation at The Apache Software
+ Foundation (ASF), sponsored by the Apache Incubator. Incubation is required
+ of all newly accepted projects until a further review indicates that the
+ infrastructure, communications, and decision making process have stabilized
+ in a manner consistent with other successful ASF projects. While incubation
+ status is not necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to be fully endorsed by
+ the ASF. Copyright © 2020 The Apache Software Foundation. Apache Teaclave,
+ Apache, the Apache feather, and the Apache Teaclave project logo are either
+ trademarks or registered trademarks of the Apache Software Foundation. See
+ also other useful ASF links: Apache Homepage, License Sponsorship, Security
+ Thanks, Current Event
</div></main></div><div class="global-ui"></div></div>
- <script src="/assets/js/app.0e2a2d09.js" defer></script><script
src="/assets/js/2.846f171c.js" defer></script><script
src="/assets/js/5.2152e131.js" defer></script>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/5.0a2a79d5.js" defer></script>
</body>
</html>
diff --git a/keys/index.html b/keys/index.html
new file mode 100644
index 0000000..0089d8b
--- /dev/null
+++ b/keys/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Keys and Certificates in Teaclave | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/20.38d0477a.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+Note that these are only for demonstration. <em>DO NOT use them in
production.</em></p> <ul><li><code>enclave_signing_key.pem</code>: private key
to sign SGX enclaves</li> <li><code>ias_root_ca_cert.pem</code>: attestation
report root CA certificate for Intel SGX
+Attestation Service, obtained from the
+<a href="https://api.portal.trustedservices.intel.com/EPID-attestation"
target="_blank" rel="noopener noreferrer">service website<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 [...]
+reference DCAP attestation server and verifying ECDSA attestation
reports.</li> <li><code>dcap_server_cert.pem</code> and
<code>dcap_server_key.pem</code>: DCAP attestation server
+end-entity certificate and private key. Certificate is signed by DCAP root
CA.</li> <li><code>auditors</code>: contains auditors' keys to sign the
<em>enclave info</em> for mutual
+attestation</li></ul></div> <footer class="page-edit"><!----> <!----></footer>
<div class="page-nav"><p class="inner"><span class="prev">
+ ←
+ <a href="/dcap/" class="prev">
+ Data Center Attestation Service
+ </a></span> <span class="next"><a href="/docker/">
+ Teaclave Docker
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/20.38d0477a.js" defer></script>
+ </body>
+</html>
diff --git a/services/index.html b/services/index.html
new file mode 100644
index 0000000..763caab
--- /dev/null
+++ b/services/index.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Teaclave Services | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/22.dc5f62e0.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+the Teaclave platform.</p> <h2 id="services"><a href="#services"
class="header-anchor">#</a> Services</h2> <p>The platform includes several
services (or subsystem) running inside TEE, and
+communicated with <em>mutual-attested channels</em>. They coordinate together
to provide
+a safe and secure FaaS platform.</p> <ul><li><strong>Authentication
Service</strong>: A reference implementation of user authentication
+infrastructure. Here, we use JSON Web Token (JWT), a simple and widely-used
+authentication standard, to provide a secure authentication mechanism in the
+platform. Clients need to get valid token before interacting with the
platform.</li> <li><strong>Frontend Service</strong>: This is the entry point
of all requests from users. It will
+validate user's identity/token and forward requests to appropriate
services.</li> <li><strong>Management Service</strong>: This service plays an
important role in the whole services.
+It handles almost all requests, such as registering functions/data, creating
+tasks, and invoking tasks. Also, the management service will contact the
+access control service to authorize operations when needed. In addition, task
+and function information will be persistent into the storage services.</li>
<li><strong>Storage Service</strong>: Basically, the storage service stores
persistent data like
+function, execution data, and task information in the platform. Here, we
+deploy a key-value database (an implementation of LevelDB) in TEE and use
+protected file system (secured by the enclave) for data persistence.</li>
<li><strong>Access Control Service</strong>: Provides a flexible access control
configurations
+to support access control rules for multi-party secure computation.</li>
<li><strong>Scheduler Service</strong>: Schedules staged task ready for
execution to a proper
+execution node with desirable capabilities.</li> <li><strong>Execution
Service</strong>: A host of different executors interacting with the
+scheduler service to complete tasks. There could be many execution service
+instances (or nodes) with different capabilities deployed in a cloud
+infrastructure.</li></ul> <h2 id="protocols"><a href="#protocols"
class="header-anchor">#</a> Protocols</h2> <p>We use ProtoBuf to define
messages and RPC interfaces of the Teaclave services.
+Utility functions, traits, and structures will be automatically generated to
+help implementing services to handle requests and send responses. You can find
+detailed protocol definitions in the <a
href="./proto/src/proto"><code>proto</code> files</a>.</p> <h2 id="topology"><a
href="#topology" class="header-anchor">#</a> Topology</h2> <p>These services
are communicating through RPC with remote attestation.
+This topological graph illustrates connections between services.</p> <div
class="language- extra-class"><pre class="language-text"><code>clients =>
authentication <-+ +----> storage <----+
+ | | |
+clients => frontend ----------> management scheduler <--
execution
+ |
+ +--> access_control
+
+
+ => api endpoint
connections
+ -> internal endpoint
connections
+</code></pre></div><p>Internal endpoint connections will be established and
verified with mutual
+remote attestation to ensure the integrity and confidentiality of whole system.
+Therefore, clients can trust the whole platform and safely interacting with the
+system through the attested authentication and frontend services.</p></div>
<footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p
class="inner"><span class="prev">
+ ←
+ <a href="/docs/mutual-attestation/" class="prev">
+ Mutual Attestation: Why and How
+ </a></span> <span class="next"><a href="/config/">
+ Configurations in Teaclave
+ </a>
+ →
+ </span></p></div> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/22.dc5f62e0.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/CONTRIBUTORS.html b/teaclave/CONTRIBUTORS.html
new file mode 100644
index 0000000..f42f8a6
--- /dev/null
+++ b/teaclave/CONTRIBUTORS.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Contributors of Apache Teaclave (incubating) | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/6.51151a3e.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+Everyone is more than welcome to contribute and make the project better.</p>
<h2 id="mentors"><a href="#mentors" class="header-anchor">#</a> Mentors</h2>
<p>Teaclave is now part of the Apache Incubator. We are fortunate to have the
+following mentors.</p> <ul><li>Felix Cheung</li> <li>Furkan Kamaci</li>
<li>Jianyong Dai</li> <li>Luciano Resende</li> <li>Matt Sicker</li> <li>Zhijie
Shen</li></ul> <h2 id="committers"><a href="#committers"
class="header-anchor">#</a> Committers</h2> <p>Committers are people who have
made substantial contribution to the project and
+being active. Podling Project Management Committee (PPMC) helps to govern the
+project and is directly responsible for the oversight of Teaclave.</p>
<ul><li><a href="https://github.com/mssun" target="_blank" rel="noopener
noreferrer">Mingshen Sun<svg xmlns="http://www.w3.org/2000/svg"
aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"
class="icon outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor [...]
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/6.51151a3e.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/common/protected_fs_rs/index.html
b/teaclave/common/protected_fs_rs/index.html
new file mode 100644
index 0000000..82e3de9
--- /dev/null
+++ b/teaclave/common/protected_fs_rs/index.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Rust bindings for ProtectedFS | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/9.1ba3d74d.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+<a href="https://github.com/intel/linux-sgx/tree/master/sdk/protected_fs"
target="_blank" rel="noopener noreferrer">protected_fs<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 [...]
+from the Intel SGX Linux SDK.</p> <p>Beyond the original SGX-only
implementations, <code>protected_fs_rs</code> now supports
+<em><strong>running in both SGX and Non-SGX environment</strong></em>. We
ported the <a
href="https://github.com/intel/linux-sgx/tree/master/sdk/protected_fs"
target="_blank" rel="noopener noreferrer">original C
+implementations<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon
outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> in
<code>protected_fs_c</code> [...]
+CMake. Please refer to <code>build.rs</code> for more information.</p></div>
<footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div
class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/9.1ba3d74d.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/common/rusty_leveldb_sgx/index.html
b/teaclave/common/rusty_leveldb_sgx/index.html
new file mode 100644
index 0000000..5038d12
--- /dev/null
+++ b/teaclave/common/rusty_leveldb_sgx/index.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>leveldb-rs | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/10.f8dc39a8.js"
as="script"><link rel="prefetch" href="/assets/js/11.e41faf7e.js"><link
rel="prefetch" href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link rel="prefetch"
href="/assets/js/14.8a646971.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+bug!)</p> <p>The implementation is very close to the original; often, you can
see the same
+algorithm translated 1:1, and class (struct) and method names are similar or
+the same.</p> <p><strong>NOTE: I do not endorse using this library for any
data that you care about.</strong>
+I do care, however, about bug reports.</p> <h2 id="status"><a href="#status"
class="header-anchor">#</a> Status</h2> <ul><li>User-facing methods exist:
Read/Write/Delete; snapshots; iteration</li> <li>Compaction is supported,
including manual ones.</li> <li>Fully synchronous: Efficiency gains by using
non-atomic types, but writes may
+occasionally block during a compaction. In --release mode, an average
compaction
+takes 0.2-0.5 seconds.</li> <li>Compatibility with the original: Compression
is not implemented so far; this works
+as long as compression is disabled in the original.</li> <li>Performance is
decent; while usually not par with the original, due to multi-threading
+in the original and language-inherent overhead (we are doing things the right
way),
+it will be enough for most use cases.</li> <li>Safe: While using many shared
pointers, the implementation is generally safe. Many
+places use asserts though, so you may see a crash -- in which case you should
file a bug.</li></ul> <h2 id="goals"><a href="#goals"
class="header-anchor">#</a> Goals</h2> <p>Some of the goals of this
implementation are</p> <ul><li>As few copies of data as possible; most of the
time, slices of bytes (<code>&[u8]</code>)
+are used. Owned memory is represented as <code>Vec<u8></code> (and then
possibly borrowed
+as slice).</li> <li>Correctness -- self-checking implementation, good test
coverage, etc. Just
+like the original implementation.</li> <li>Clarity; commented code, clear
structure (hopefully doing a better job than
+the original implementation).</li> <li>Coming close-ish to the original
implementation; clarifying the translation of
+typical C++ constructs to Rust.</li></ul></div> <footer
class="page-edit"><!----> <!----></footer> <!----> </main></div><div
class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/10.f8dc39a8.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/examples/index.html b/teaclave/examples/index.html
new file mode 100644
index 0000000..3b109af
--- /dev/null
+++ b/teaclave/examples/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/19.a2adc13d.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/19.a2adc13d.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/index.html b/teaclave/index.html
new file mode 100644
index 0000000..0bf5975
--- /dev/null
+++ b/teaclave/index.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Teaclave: A Universal Secure Computing Platform | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/7.699fd8ca.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+platform, making computation on privacy-sensitive data safe and simple.</p>
<h2 id="highlights"><a href="#highlights" class="header-anchor">#</a>
Highlights</h2> <ul><li><strong>Security</strong>:
+Teaclave adopts multiple security technologies to enable secure computing, in
+particular, Teaclave uses Intel SGX to serve the most security-sensitive tasks
+with <em>hardware-based isolation</em>, <em>memory encryption</em> and
<em>attestation</em>.
+Also, Teaclave is written in Rust to prevent <em>memory-safety</em>
issues.</li> <li><strong>Functionality</strong>:
+Teaclave is provided as a <em>function-as-a-service platform</em>. With many
built-in
+functions, it supports tasks like machine learning, private set intersection,
+crypto computation, etc. In addition, developers can also deploy and execute
+Python scripts in Teaclave. More importantly, unlike traditional FaaS,
+Teaclave supports both general secure computing tasks and <em>flexible
+single- and multi-party secure computation</em>.</li>
<li><strong>Usability</strong>:
+Teaclave builds its components in containers, therefore, it supports
+deployment both locally and within cloud infrastructures. Teaclave also
+provides convenient endpoint APIs, client SDKs and command line tools.</li>
<li><strong>Modularity</strong>:
+Components in Teaclave are designed in modular, and some like remote
+attestation can be easily embedded in other projects. In addition, Teaclave
+SGX SDK can also be used separately to write standalone SGX enclaves for other
+purposes.</li></ul> <h2 id="getting-started"><a href="#getting-started"
class="header-anchor">#</a> Getting Started</h2> <h3 id="try-teaclave"><a
href="#try-teaclave" class="header-anchor">#</a> Try Teaclave</h3> <ul><li><a
href="/teaclave/docs/my-first-function.html">My First Function</a></li></ul>
<h3 id="design"><a href="#design" class="header-anchor">#</a> Design</h3>
<ul><li><a href="/teaclave/docs/threat-model.html">Threat Model</a></li> <li><a
href="/teaclave/docs/mutual-attestati [...]
+we aim to create a project that is maintained and owned by the community. All
+kinds of contributions are welcome.</p> <h2 id="community"><a
href="#community" class="header-anchor">#</a> Community</h2> <ul><li>Join us on
our <a href="https://lists.apache.org/[email protected]"
target="_blank" rel="noopener noreferrer">mailing list<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h
[...]
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/7.699fd8ca.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/sdk/index.html b/teaclave/sdk/index.html
new file mode 100644
index 0000000..a83af18
--- /dev/null
+++ b/teaclave/sdk/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/21.bcfb938d.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/21.bcfb938d.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/tests/index.html b/teaclave/tests/index.html
new file mode 100644
index 0000000..e8d2ff1
--- /dev/null
+++ b/teaclave/tests/index.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Tests in Teaclave | Apache Teaclave (incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/23.cd0f929d.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+tests, functional tests and some test fixtures.</p> <h2 id="run-tests"><a
href="#run-tests" class="header-anchor">#</a> Run Tests</h2> <p>To run all
tests with our build system:</p> <div class="language- extra-class"><pre
class="language-text"><code>$ make run-tests
+</code></pre></div><p>You can also run tests separately:</p> <div
class="language- extra-class"><pre class="language-text"><code>$ make
run-unit-tests
+$ make run-integration-tests
+$ make run-functional-tests # this will start all services in the
background automatically
+</code></pre></div><h2 id="directory-structure"><a href="#directory-structure"
class="header-anchor">#</a> Directory Structure</h2> <ul><li><code>unit</code>:
+Unit tests are small and more focused, testing one module in isolation at a
+time, and can test private interfaces. This directory contains test driver to
+test individual units/components or private interfaces. Test cases of unit
+tests are placed along with source code.</li> <li><code>integration</code>:
+Integration tests are entirely external to libraries, using only the public
+interface and potentially exercising multiple modules per test. This directory
+contains test driver and tests cases to test public interfaces in common
+libraries.</li> <li><code>functional</code>:
+Functional testing is a type of black-box testing. In Teaclave, the test cases
+are usually sent through RPC channel.
+This directory contains test driver and tests cases for Teaclave services. To
+run these tests, services need to be launched.</li> <li><code>fixtures</code>:
+Testing fixtures are some files and sample inputs/outputs for testing
only.</li> <li><code>utils</code>:
+Common utilities for test drivers.</li></ul></div> <footer
class="page-edit"><!----> <!----></footer> <!----> </main></div><div
class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/23.cd0f929d.js" defer></script>
+ </body>
+</html>
diff --git a/teaclave/third_party/index.html b/teaclave/third_party/index.html
new file mode 100644
index 0000000..6a040b9
--- /dev/null
+++ b/teaclave/third_party/index.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>Dependencies and Rust Packages (Crates) Vendoring | Apache Teaclave
(incubating)</title>
+ <meta name="generator" content="VuePress 1.5.0">
+
+ <meta name="description" content="Apache Teaclave (incubating) is an open
source universal secure computing platform, making computation on
privacy-sensitive data safe and simple.">
+ <link rel="preload" href="/assets/css/0.styles.3422333c.css"
as="style"><link rel="preload" href="/assets/js/app.d28af496.js"
as="script"><link rel="preload" href="/assets/js/2.44870f5a.js"
as="script"><link rel="preload" href="/assets/js/24.adb6fe1f.js"
as="script"><link rel="prefetch" href="/assets/js/10.f8dc39a8.js"><link
rel="prefetch" href="/assets/js/11.e41faf7e.js"><link rel="prefetch"
href="/assets/js/12.689783dd.js"><link rel="prefetch"
href="/assets/js/13.deae78a5.js"><link [...]
+ <link rel="stylesheet" href="/assets/css/0.styles.3422333c.css">
+ </head>
+ <body>
+ <div id="app" data-server-rendered="true"><div
class="theme-container"><header class="navbar"><div class="sidebar-button"><svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0
448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627
0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0
6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12
12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav></div></header> <div clas [...]
+ Documentation
+</a></div><div class="nav-item"><a
href="https://github.com/apache/incubator-teaclave" target="_blank"
rel="noopener noreferrer" class="nav-link external">
+ GitHub
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div>
<!----></nav> <ul class="sidebar-link [...]
+possibility of the <a href="https://en.wikipedia.org/wiki/Supply_chain_attack"
target="_blank" rel="noopener noreferrer">supply chain
+attack<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px"
y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon
outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>, we
vendored all TEE
+dependencies here. During the build process, the trusted components will only
+consumes packages from this designated repository and will not download any
code
+from external sources such as <a href="https://crates.io" target="_blank"
rel="noopener noreferrer">crates.io<svg xmlns="http://www.w3.org/2000/svg"
aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"
class="icon outbound"><path fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2
85.2,37.2 [...]
+the following steps:</p> <ol><li>Add the crates you need in the corresponding
Cargo.toml (e.g.
+<a href="https://github.com/mesalock-linux/crates-sgx/blob/master/Cargo.toml"
target="_blank" rel="noopener noreferrer">crates-sgx/Cargo.toml<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54 [...]
+and update the crate list in the README.txt (e.g.
+<a href="https://github.com/mesalock-linux/crates-sgx/blob/master/README.txt"
target="_blank" rel="noopener noreferrer">crates-sgx/README.txt<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54 [...]
+You may also utilize
+<a href="https://github.com/mesalock-linux/crates-sgx/blob/master/Makefile"
target="_blank" rel="noopener noreferrer">crates-sgx/Makefile<svg
xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px"
viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path
fill="currentColor"
d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 7 [...]
+for automation.</li> <li><code>git add/commit</code> the changes of
+Cargo.toml/Cargo.lock/config/README.txt/vendor and submit a pull
request.</li></ol></div> <footer class="page-edit"><!----> <!----></footer>
<!----> </main></div><div class="global-ui"></div></div>
+ <script src="/assets/js/app.d28af496.js" defer></script><script
src="/assets/js/2.44870f5a.js" defer></script><script
src="/assets/js/24.adb6fe1f.js" defer></script>
+ </body>
+</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]