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 - &lt; 
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=&quot;00000000000000000000000000000000&quot;
+$ export AS_KEY=&quot;00000000000000000000000000000000&quot;
+$ export AS_ALGO=&quot;sgx_epid&quot;
+$ export AS_URL=&quot;https://api.trustedservices.intel.com:443&quot;
+
+$ 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 &quot;. /root/.cargo/env &amp;&amp; \
+     mkdir -p build &amp;&amp; cd build &amp;&amp; \
+     cmake -DTEST_MODE=ON .. &amp;&amp; \
+     make&quot;
+</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 &quot;SPID&quot; and &quot;Primary key&quot; 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=&quot;00000000000000000000000000000000&quot;  # SPID from IAS 
subscription
+$ export AS_KEY=&quot;00000000000000000000000000000000&quot;   # Primary 
key/Secondary key from IAS subscription
+$ export AS_ALGO=&quot;sgx_epid&quot;                          # Attestation 
algorithm, sgx_epid for IAS
+$ export AS_URL=&quot;https://api.trustedservices.intel.com:443&quot;    # 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 &amp;&amp; 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 &quot;. /root/.cargo/env &amp;&amp; \
+     mkdir -p build &amp;&amp; cd build &amp;&amp; \
+     cmake -DTEST_MODE=ON -DSGX_SIM_MODE=ON .. &amp;&amp; \
+     make&quot;
+</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=&quot;00000000000000000000000000000000&quot;
+$ export AS_KEY=&quot;00000000000000000000000000000000&quot;
+$ export AS_ALGO=&quot;sgx_epid&quot;
+$ export AS_URL=&quot;https://api.trustedservices.intel.com:443&quot;
+</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 &amp;&amp; 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 =&gt; 
authentication &lt;-+       +----&gt; storage &lt;----+
+                            |       |                   |
+clients =&gt; frontend ----------&gt; management            scheduler &lt;-- 
execution
+                                    |
+                                    +--&gt; access_control
+
+
+                                                  =&gt;      api endpoint 
connections
+                                                  -&gt; 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>&amp;[u8]</code>)
+are used. Owned memory is represented as <code>Vec&lt;u8&gt;</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]

Reply via email to