You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@teaclave.apache.org by Mingshen Sun <no...@github.com> on 2020/04/17 21:15:38 UTC

[apache/incubator-teaclave] Merge the develop branch into master (#266)

Now it&#39;s time to merge the develop branch into master and PR to the master.

Since last December, we have refactoring the whole project:

- The whole project has been refactored to be more functional, modularized, as well as readable and approachable for new contributors. Therefore, people who may interested in our specific component like attestation can easily reuse the existing logic.
- We have rewrote the framework for implementing enclave services. Also, we have redesigned current services into seven core services including access control, authentication, execution, frontend, management, scheduler, and storage service. Communication protocols between services are defined in protobuf.
- RPC between services has been redesigned to supported TLS-based attestation.
- We have added DCAP attestation algorithm in the platform so that people can deploy the system in environments without Intel&#39;s attestation service.
- Communication between app and enclave has been also redesigned with better APIs
- Existing components like attestation, binder, and config are all re-implemented or polished.
- Endpoint and internal APIs are also redesign, meaning that the function invocation workflow is a bit different.
- Testing framework is also redesign with unit, integration, functional tests.

 Currently, the project structure is becoming stable. We still have a lot work to do for the first public release (#121). However, it&#39;s time to merge our progress into the master branch so that people can start to get involve in the latest design and implementation. In the following weeks, we will mainly focus on the new design and polish code and documentation.

Once this PR is merge, please create PR based on the `master` branch. The `develop` branch will be deleted.

You can view, comment on, or merge this pull request online at:

  https://github.com/apache/incubator-teaclave/pull/266

-- Commit Summary --

  * Add placeholder dir for cli, docs, examples and sdk
  * [github] Update pull request template
  * [community] Ack all contributors in CONTRIBUTORS.md
  * [third-party] add threadpool-sgx and follow up fix on sgx lock (#202)
  * [rpc] Add SgxTrustedTlsServerConfig struct to new server config
  * [services] Use snake_case for proto serialization/deserialization
  * [services] Use jinja2 template for proto_gen
  * [services] Add ServiceEnclaveBuilder and ServiceEnclave for init/finalize handling
  * Change authors in Cargo.toml to Teaclave Contributors
  * [rpc] Support serving multiple connections with a threadpool
  * [rpc] Add TeaclaveServiceError to handle service errors and return back to clients
  * Tidy Cargo.toml
  * [services] Use single proto project to manage all services protocols
  * [services] Rename teaclave_frontend to teaclave_frontend_service and simplify directory names
  * [rpc] Remove Read/Write trait of transport
  * [services] Remove unneccessary code and dependencies
  * [testsuite] Add enclave unit test
  * [testsuite] Fix coverage issues, enable when COV=1
  * [testsuite] Only use enclave_unit_test to guard the tests module
  * [services] Introduce authorization service
  * [services] Add functional test to testsuite and fix RPC reponse result issue
  * [ci] Only deny warnings for the lint pipeline
  * [lint] Fix linting issues
  * [services] Rename service from authorization to authentication
  * [keys] Use pem instead of der format for auditors&#39; keys
  * [rpc] Use TCS number as n_workers for threadpool
  * [rpc] Handle client disconnect error
  * [attestation] Remove commented useless code
  * [attestation] Polish quote error handling logic
  * [services] Fix proto_gen template
  * [services] Add user_authorize rpc in authentication service
  * [rpc] Introduce &amp;self to RPC functions in a service
  * [attestation] Use percent-encoding to replace the current hand-written covert functions
  * [rpc] SgxTrustedTlsChannel&#39;s new now takes a &amp;str address
  * [testsuite] Add leveldb_tests
  * [testsuite] Add protected_fs_tests
  * [ci] Enable basic testing
  * [tests] Add protected_fs tests (untrusted part) in the test script
  * [rpc] Add Endpoint for client connection
  * [services] Implement database service (#204)
  * [attestation] Polishing remote attestation and TLS-RA
  * [lint] Fix linting issues
  * [tests] Reorganize tests
  * [attestation] Code polishing
  * [attestation] Close SgxEccHandle after use it
  * [config] Use the jinja2 template for build time config generator
  * Polishing error handling code
  * [third-party] Update crates-sgx to add jsonwebtoken
  * [attestation] Supporting passing root_cert and verifier when constructing AttestaionReportVerifier
  * [attestation] Re-organize visibility of structures
  * [services] Polish/simplify database codebase
  * [services] Init execution service (#203)
  * [services] Update proto mod positions (#205)
  * [config] Refactor runtime config handling
  * [services] Allow clippy is not longer needed for proto
  * [utils] Deprecate service_config and start to redesign measurements configuration
  * [rpc] Remove MPSC channel (test only) and add integration tests
  * [tests] Add integration tests for teaclave-config
  * [worker] Split worker as top-level crate (#207)
  * [config] Fix ias_spid/key config issue for sgx_sim
  * Remove unnecessary lifetime arguments in cert parsing code (#208)
  * [binder] Simplify binder implementation and reduce dependency of service_app_utils
  * [tests] Add description for each directory
  * [binder] Polish naming
  * [services] Implement JWT authentication (#206)
  * [config] Separate runtime/build config into two modules
  * [worker] Add function tests (#209)
  * [services] Polish authentication service
  * [config] Set inbound services in internal endpoint config
  * [services] Fix struct/funcs visibility issues
  * [proto] Change tag name for request/response in se/de
  * [attestation] Refactor EnclaveAttr
  * Make usages of serde derive consistent
  * [ipc] Reexport struct/funcs in the ecall module
  * [services] Start to implement frontend service
  * [config] Better error handling with context
  * [ipc] Merge protos into the proto module and update StartServiceInput
  * [services] Provide both api/internal endpoints for teaclave authentication service
  * [worker] Support encrypted/raw input with tests (#210)
  * [build] Fix building issue introduced by prep.sh
  * [config] Move config validation into a function
  * [proto] Improve client function types and request.into() is no longer needed
  * [tests] Start to use teaclave_test_utils
  * [frontend] Partially implement authentication mechansim to handle requests
  * [worker] Support encrypted output with test (#211)
  * [tests] Introduce check_all_passed macro (#212)
  * [rpc] Implement metadata in RPC request
  * [authentication] Split authentication service into api and internal services (#213)
  * [docker] Change to teaclave images in dockerhub
  * [rpc] Handle ProtocolError::SerdeError and send error message to clients
  * [build] Temporary comment unused crates in toml to avoid warnings
  * [proto] Polish proto implementations
  * [services] Bind listen address in sgx enclave
  * [ipc] DeserializeOwned =&gt; Dersialize
  * [proto] Provide constructor (new) for simple messages
  * [proto] Replace generic to simpler sytax: impl Trait
  * [proto] Rename try_new to new, follow Rust naming convention
  * [services] Add constructor to services
  * [attestation] Generalize RA data structures to unify IAS and DCAP (#214)
  * [keys] Use PKCS#1 instead of PKCS#8 for public keys
  * Implement mutual attestation
  * [services] Add constructor to database service
  * [workers] Bridging mesapy with tests (#215)
  * [services] Start to implement management service
  * [third-party] Update crates-io vendoring crates
  * [services] Rename database/dbs service to storage service
  * [services] Add access control service (#216)
  * [types] Remove ser/de for worker structs with polished tests (#217)
  * [protected_fs_rs] Make protected_fs compatible with sgx 2.8. (#218)
  * [proto] Add new/constructor for small request/response structure
  * [rpc] Default max frame length is 8MB
  * Implement better error propagation mechanism for binder/ipc
  * [storage] Polish error handling
  * [rpc] TcpStream set_nodelay to true by default
  * [binder] Merge ipc into binder
  * [management] Implement register_input_file and register_output_file (#219)
  * [config] Specify inbound services in build config
  * [config] Draw topology of services in build config
  * [config] Drop deprecated service_config
  * [attestation] Support DCAP
  * [ci] Enable dcap
  * [build] Cleanup the libunwind directory before build to avoid cargo rerun
  * [config] Remove inbound from runtime config and update tests to use config to get addresses
  * [attestation] Polishing error handling
  * [dcap] Fix versions of dependencies
  * [dcap] der-format files are no longer needed
  * [keys] Update readme
  * [management] Implement file related requests in management service (#220)
  * [services] Use config with verifier for services to enable mutual attestation
  * [build] Add make run-tests and make run-{unit|integration|functional}-tests
  * [build] Update cmake to support DCAP attestation service
  * [attestation] Use TcpStream::connect directly to replace ocall
  * [build] Format cmake files with cmake-format
  * [thid_party] Update structopt from 0.2.8 to 0.3.9 in crates-io
  * [management] Handle function in management service (#221)
  * [attestation] Exclude dcap cert when not enalbing the DCAP flag
  * [attestation] Add unit test for SgxQuote::parse_from()
  * [dcap] Check collateral_expiration_status
  * [management] Implement create/get task (#222)
  * [worker] Implement MesaPy IO and FFI (#223)
  * [worker] Add gbdt_prediction function (#224)
  * [attestation] Handle errors from attestation service
  * [tests] Reorganize test directory
  * [build] Fix issue of ln directory
  * [rpc] Add APIs to get/set metadata of request
  * [rpc] Introduce IntoRequest trait to ease the request handling
  * [attestation] Add unit test for AttestationReport::from_cert()
  * [common] Fix read/write buffer check with leveldb test case (#225)
  * [frontend] Support passing message to management service
  * [services] Support gracefully shutdown services
  * [management] Implement AssignData/ApproveTask/InvokeTask (#226)
  * [frontend] Foward requests to managemet service (#227)
  * [tests] Fix coverage issue
  * [config] Add debug log
  * [config] Update service topo graph
  * [services] Polish and cleanup
  * [services] Add retry 3 time/second to connect other internal services
  * [services] Polish and cleanup
  * [binder] Polish and cleanup
  * [types/services] Move in/out file structure to types (#228)
  * [services] Polish and cleanup
  * Update copyright year
  * [rpc] Update third-party to enalbe builder pattern for SgxTrustedTlsServerConfig
  * [attestation] Introduce AttestedTlsConfig to simplify attestation
  * [build] Use mktemp dir for symlinks of building dirs
  * [build] MesaTEE =&gt; Teaclave
  * [build] Rewrite the init-submodule function
  * [third_party] Update sgx sdk submodule git url
  * [legacy] Delete the legacy directory
  * [types] Split TeaclveWorkerFile into Input and Output (#229)
  * [services] Support refresh attested server config based on validity
  * [attestation] Use Arc for AttestationConfig
  * [attestation] Polish AttestationAlgorithm
  * [rpc] Update visibility of SgxTrustedTlsServerConfig fields
  * [services] Unify Fusion Data and InputFile/OutputFile (#230)
  * [services] Partially implement scheduler service (#231)
  * [attestation] Minor polish
  * [scheduler] Redesign scheduler service APIs in the pub/sub model
  * [build] Fix non TEST_MODE build issue (#232)
  * [scheduler] Polish Task related struct for preparing to implement scheduler APIs
  * [types] Add constructors to FunctionInput/FunctionOutput
  * [attestation]: Fix a typo and add some doc (#233)
  * [scheduler] Implement pull_task
  * [fmt] rustfmt config to edition 2018 (#234)
  * [proto] Add new/constructor for small request/response structure of frontend/management services
  * [agent] Introduce file agent (#237)
  * [agent] Add more tests for file agent (#238)
  * [services] Rewrite and coordinate scheduler and execution serivces
  * [attestation] Add SwHardeningNeeded to SgxQuoteStatus
  * [ci] Temporary disable the dcap pipeline
  * [worker] Add Echo function (#240)
  * [execution] Have a simple flow of function invocation
  * [worker] Fix typo
  * [file_agent] Provide ocall interface to execution service (#241)
  * [services] Move handle_file_request to the ocall module
  * [execution] A preliminary working implementation to execute staged task
  * [types] Common types refactoring
  * [types] Common types refactoring
  * [edl] Rename edls to edl
  * [types] Common types refactoring
  * [rustfmt] Set use_field_init_shorthand to true
  * [types] Use FunctionArguments in other proto definitions
  * Add Apache License in header
  * [common] Make leveldb sgx only and enable unit test (#243)
  * [common] Enable all unit_test for rusty_leveldb_sgx (#244)
  * [tests] Make invoke task/pull task as a pair
  * [tests] Rename filename teaclave_*_service.rs to *_service.rs
  * [tests] Add functional test for execution service
  * Use the bail macro to replace return Err(anyhow!())
  * [attestation] Add documentation for remote attestation (#246)
  * [utils] Introduce macros to simplify fn impl
  * [services] Use create_trusted_*_endpoint utility functions to simply creating an trusted service endpoint
  * [types] Impl Function in builder pattern
  * [types] Polish and refactor file crypto info
  * [types] Simplify StagedFiles structures (#247)
  * [services] Introduce ensure/bail macro in service to handle err
  * [worker] Separate worker into worker/function/runtime crates
  * [types] Optimize StagedFiles usages (#248)
  * [function] Add native logistic regression training (#249)
  * [function] Add native logistic regression prediction (#250)
  * [build] Optimize prep process logic for multiple edl files (#252)
  * [tests] Add End-to-End echo function test (#253)
  * [tests] End-to-End test with helper functions (#254)
  * [config] Introduce the build_config feature to disable build config
  * [services] Fix the end_to_end functional test issues
  * [tests] Support End-to-End executor selector, including MesaPy Echo tests (#255)
  * Migrate to Teaclave SGX SDK 1.1.1 (#256)
  * [dcap] Enable SGX DCAP 1.5 (#258)
  * [docker] Add runtime docker, update docker-compose and README.md
  * [services] Optimize Management Service logic and data structures (#257)
  * [config] Provide commonly used build configurations in constants
  * [executor] Use Executor to replace native function String (#259)
  * [attestation] Polish/updates attesation report types
  * [tests] Unify functional tests requests logic (#260)
  * [attestation] Documenting attesation report
  * [function] Better function argument handling
  * [attestation] Add a helper function to create AttestationConfig from Teaclave&#39;s RuntimeConfig
  * [attestation] API polishing
  * [cli] Implement decrypt subcommand for teaclave_fiel_128 algorithm
  * [Execution] Add FileManager, TaskStatus and TaskResult (#261)
  * [tests] Support attest endpoint in TLS in Python script
  * [docker] Update docker file for building teaclave
  * [tests] Fix Python attestation function under DCAP and SW
  * [utils] Move to the services directory since it contains utilities only for services
  * [crypto] Separate crypto related struct/functions from types in teaclave_crypto
  * [docker] Update git to newer version in dockerfile for building
  * [task] Unify task result field with TaskResult (#262)
  * [cli] Complete decrypt/encrypt for all supported algorithms
  * [types] Add FileAuthTag type (#263)
  * [cmac] Read/Prep input files with cmac validation (#264)

-- File Changes --

    M .drone.yml (621)
    M .github/PULL_REQUEST_TEMPLATE.md (6)
    M .gitmodules (2)
    A .rustfmt.toml (2)
    M CMakeLists.txt (217)
    M CONTRIBUTORS.md (13)
    M NOTICE (2)
    A attestation/Cargo.toml (48)
    A attestation/src/attestation.rs (149)
    R attestation/src/cert.rs (166)
    R attestation/src/key.rs (16)
    A attestation/src/lib.rs (176)
    A attestation/src/platform.rs (181)
    A attestation/src/report.rs (692)
    A attestation/src/service.rs (251)
    R attestation/src/verifier.rs (120)
    A binder/Cargo.toml (34)
    R binder/attribute/Cargo.toml (2)
    R binder/attribute/src/lib.rs (0)
    R binder/build.rs (1)
    R binder/src/binder.rs (95)
    R binder/src/ipc/app.rs (51)
    R binder/src/ipc/enclave.rs (30)
    R binder/src/ipc/mod.rs (43)
    R binder/src/lib.rs (23)
    R binder/src/macros.rs (61)
    A binder/src/ocall.rs (114)
    R binder/src/proto.rs (55)
    A cli/Cargo.toml (13)
    A cli/README.md (1)
    A cli/src/main.rs (139)
    D cmake/MesaTEEGenVars.cmake (140)
    D cmake/MesaTEEUtils.cmake (294)
    A cmake/TeaclaveGenVars.cmake (152)
    A cmake/TeaclaveUtils.cmake (344)
    M cmake/UtilTargets.cmake (112)
    M cmake/scripts/cc_wrapper.sh (4)
    M cmake/scripts/gen_cov.sh (62)
    M cmake/scripts/gen_enclave_sig.sh (20)
    A cmake/scripts/lcov_realpath.py (10)
    M cmake/scripts/parse_cargo_packages.py (40)
    M cmake/scripts/prep.sh (99)
    M cmake/scripts/rustc_wrapper.sh (4)
    M cmake/scripts/sgx_link_sign.sh (27)
    D cmake/scripts/sgx_test.sh (19)
    A cmake/scripts/test.sh (133)
    M cmake/tomls/Cargo.sgx_trusted_lib.toml (101)
    M cmake/tomls/Cargo.sgx_untrusted_app.toml (27)
    M cmake/tomls/Cargo.unix_app.toml (37)
    R common/mayfail/Cargo.toml (4)
    R common/mayfail/src/lib.rs (0)
    R common/protected_fs_rs/Cargo.toml (8)
    R common/protected_fs_rs/README.md (0)
    R common/protected_fs_rs/build.rs (0)
    R common/protected_fs_rs/protected_fs_c/CMakeLists.txt (0)
    R common/protected_fs_rs/protected_fs_c/build.sh (0)
    R common/protected_fs_rs/protected_fs_c/example/example.c (0)
    R common/protected_fs_rs/protected_fs_c/inc/non_sgx_protected_fs.h (9)
    R common/protected_fs_rs/protected_fs_c/inc/sgx_error.h (0)
    R common/protected_fs_rs/protected_fs_c/inc/sgx_tprotected_fs_u.h (0)
    R common/protected_fs_rs/protected_fs_c/inc/tseal_migration_attr.h (0)
    R common/protected_fs_rs/protected_fs_c/protected_fs_config.h.in (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs.edl (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/CMakeLists.txt (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_crypto.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_flush.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_init.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_other.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_read_write.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/file_version.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/lru_cache.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/lru_cache.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/non_sgx_protected_fs.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/protected_fs_file.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/protected_fs_nodes.h (5)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/se_version.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/sgx_tprotected_fs.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/sgx_tprotected_fs_t.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_tprotected_fs/tprotected_fs.h (0)
    R common/protected_fs_rs/protected_fs_c/sgx_uprotected_fs/CMakeLists.txt (0)
    R common/protected_fs_rs/protected_fs_c/sgx_uprotected_fs/sgx_uprotected_fs.cpp (0)
    R common/protected_fs_rs/protected_fs_c/sgx_uprotected_fs/uprotected_fs.h (0)
    R common/protected_fs_rs/src/deps.rs (2)
    R common/protected_fs_rs/src/lib.rs (0)
    R common/protected_fs_rs/src/protected_fs.rs (9)
    R common/protected_fs_rs/src/sgx_fs_inner.rs (1)
    R common/protected_fs_rs/src/sgx_tprotected_fs.rs (5)
    R common/protected_fs_rs/tests/large_file.rs (32)
    R common/protected_fs_rs/tests/rename.rs (11)
    R common/rusty_leveldb_sgx/Cargo.toml (14)
    R common/rusty_leveldb_sgx/LICENSE (0)
    R common/rusty_leveldb_sgx/README.md (0)
    R common/rusty_leveldb_sgx/src/block.rs (36)
    R common/rusty_leveldb_sgx/src/block_builder.rs (22)
    R common/rusty_leveldb_sgx/src/blockhandle.rs (16)
    R common/rusty_leveldb_sgx/src/cache.rs (24)
    R common/rusty_leveldb_sgx/src/cmp.rs (29)
    R common/rusty_leveldb_sgx/src/db_impl.rs (104)
    R common/rusty_leveldb_sgx/src/db_iter.rs (52)
    A common/rusty_leveldb_sgx/src/disk_env.rs (286)
    A common/rusty_leveldb_sgx/src/env.rs (72)
    R common/rusty_leveldb_sgx/src/env_common.rs (0)
    R common/rusty_leveldb_sgx/src/error.rs (5)
    R common/rusty_leveldb_sgx/src/filter.rs (23)
    R common/rusty_leveldb_sgx/src/filter_block.rs (22)
    R common/rusty_leveldb_sgx/src/infolog.rs (0)
    R common/rusty_leveldb_sgx/src/key_types.rs (19)
    A common/rusty_leveldb_sgx/src/lib.rs (125)
    R common/rusty_leveldb_sgx/src/log.rs (28)
    R common/rusty_leveldb_sgx/src/mem_env.rs (44)
    R common/rusty_leveldb_sgx/src/memtable.rs (46)
    R common/rusty_leveldb_sgx/src/merging_iter.rs (41)
    A common/rusty_leveldb_sgx/src/options.rs (121)
    R common/rusty_leveldb_sgx/src/skipmap.rs (51)
    R common/rusty_leveldb_sgx/src/snapshot.rs (15)
    R common/rusty_leveldb_sgx/src/table_block.rs (18)
    R common/rusty_leveldb_sgx/src/table_builder.rs (42)
    R common/rusty_leveldb_sgx/src/table_cache.rs (35)
    R common/rusty_leveldb_sgx/src/table_reader.rs (82)
    R common/rusty_leveldb_sgx/src/test_util.rs (17)
    R common/rusty_leveldb_sgx/src/types.rs (12)
    R common/rusty_leveldb_sgx/src/version.rs (82)
    R common/rusty_leveldb_sgx/src/version_edit.rs (37)
    R common/rusty_leveldb_sgx/src/version_set.rs (66)
    R common/rusty_leveldb_sgx/src/write_batch.rs (16)
    A config/Cargo.toml (21)
    A config/build.config.toml (37)
    A config/build.rs (64)
    A config/config_gen/Cargo.toml (18)
    A config/config_gen/main.rs (116)
    A config/config_gen/templates/config.j2 (55)
    A config/runtime.config.toml (31)
    A config/src/build.rs (46)
    R config/src/lib.rs (22)
    A config/src/runtime.rs (159)
    A crypto/Cargo.toml (30)
    A crypto/src/lib.rs (276)
    A dcap/Cargo.toml (26)
    A dcap/Rocket.toml (7)
    A dcap/src/main.rs (232)
    M docker/README.md (62)
    D docker/build.ubuntu-1604.Dockerfile (84)
    D docker/build.ubuntu-1804.Dockerfile (83)
    A docker/build.ubuntu-1804.sgx-2.9.Dockerfile (86)
    A docker/build.ubuntu-1804.sgx-dcap-1.5.Dockerfile (88)
    D docker/docker-compose-ubuntu-1604.yml (120)
    M docker/docker-compose-ubuntu-1804.yml (199)
    D docker/fns-rt.ubuntu-1604.Dockerfile (21)
    D docker/fns-rt.ubuntu-1804.Dockerfile (22)
    D docker/kms-rt.ubuntu-1604.Dockerfile (21)
    D docker/kms-rt.ubuntu-1804.Dockerfile (22)
    M docker/runtime.config.toml (44)
    D docker/tdfs-rt.ubuntu-1604.Dockerfile (21)
    D docker/tdfs-rt.ubuntu-1804.Dockerfile (22)
    A docker/teaclave-rt.ubuntu-1804.Dockerfile (43)
    D docker/tms-rt.ubuntu-1604.Dockerfile (21)
    D docker/tms-rt.ubuntu-1804.Dockerfile (22)
    A docs/README.md (1)
    D docs/api.md (1116)
    D docs/case_study.md (135)
    D docs/design.md (67)
    D docs/faq.md (13)
    D docs/hms_and_nbsp.md (74)
    D docs/how_to_add_your_function.md (214)
    D docs/how_to_build.md (99)
    D docs/how_to_run.md (35)
    D docs/images/ai_demo_snapshot.png (0)
    D docs/images/basic-task-workflow.png (0)
    D docs/images/blockchain.png (0)
    D docs/images/client-read-workflow.png (0)
    D docs/images/client-write-workflow.png (0)
    D docs/images/faas_cloud.png (0)
    D docs/images/five_levels.png (0)
    D docs/images/logo.png (0)
    D docs/images/multiparty-task-workflow.png (0)
    D docs/images/overview.png (0)
    D docs/images/pai.png (0)
    D docs/images/performance_ai.png (0)
    D docs/images/performance_psi.png (0)
    D docs/images/performance_spark.png (0)
    D docs/images/platforms.png (0)
    D docs/images/psi.png (0)
    D docs/images/raft.png (0)
    D docs/images/task-rw-workflow.png (0)
    D docs/images/worker-read-workflow.png (0)
    D docs/images/worker-write-workflow.png (0)
    D docs/mutual_attestation.md (43)
    D docs/repo_structure.md (35)
    D docs/rust_guideline.md (42)
    D docs/threat_model.md (40)
    D docs/workflow.md (28)
    R edl/Enclave_common.edl (35)
    R edl/Enclave_fa.edl (9)
    M examples/README.md (75)
    D examples/dbscan/Cargo.toml (12)
    D examples/dbscan/dbscan_demo.sh (31)
    D examples/dbscan/expected_result.txt (7)
    D examples/dbscan/input.txt (6)
    D examples/dbscan/src/main.rs (101)
    D examples/gaussian_mixture_model/Cargo.toml (12)
    D examples/gaussian_mixture_model/expected_result.txt (7)
    D examples/gaussian_mixture_model/gaussian_mixture_model_demo.sh (32)
    D examples/gaussian_mixture_model/input.txt (4)
    D examples/gaussian_mixture_model/src/main.rs (110)
    D examples/gaussian_mixture_model/test.txt (3)
    D examples/gaussian_processes/Cargo.toml (12)
    D examples/gaussian_processes/expected_result.txt (6)
    D examples/gaussian_processes/gaussian_processes_demo.sh (31)
    D examples/gaussian_processes/input.txt (10)
    D examples/gaussian_processes/src/main.rs (117)
    D examples/gaussian_processes/target.txt (10)
    D examples/gaussian_processes/test.txt (5)
    D examples/gbdt/Cargo.toml (14)
    D examples/gbdt/gbdt_demo.sh (53)
    D examples/gbdt/src/main.rs (229)
    D examples/gen_linear_model/Cargo.toml (12)
    D examples/gen_linear_model/expected_result.txt (2)
    D examples/gen_linear_model/gen_linear_model_demo.sh (32)
    D examples/gen_linear_model/input.txt (4)
    D examples/gen_linear_model/src/main.rs (117)
    D examples/gen_linear_model/target.txt (4)
    D examples/gen_linear_model/test.txt (1)
    D examples/image_resizing/Cargo.toml (15)
    D examples/image_resizing/expected_result.txt (1)
    D examples/image_resizing/image_resize_demo.sh (37)
    D examples/image_resizing/logo.png (0)
    D examples/image_resizing/src/main.rs (110)
    D examples/kmeans/Cargo.toml (13)
    D examples/kmeans/expected_result.txt (3)
    D examples/kmeans/kmeans_demo.sh (33)
    D examples/kmeans/src/main.rs (103)
    D examples/kmeans/test_data.txt (9)
    D examples/lin_reg/Cargo.toml (12)
    D examples/lin_reg/expected_result.txt (2)
    D examples/lin_reg/input.txt (270)
    D examples/lin_reg/lin_reg_demo.sh (31)
    D examples/lin_reg/src/main.rs (117)
    D examples/lin_reg/target.txt (270)
    D examples/lin_reg/test.txt (1)
    D examples/logistic_reg/Cargo.toml (12)
    D examples/logistic_reg/expected_result.txt (1)
    D examples/logistic_reg/logistic_reg_demo.sh (42)
    D examples/logistic_reg/src/main.rs (194)
    D examples/logistic_reg/target.txt (270)
    D examples/logistic_reg/test.txt (1)
    D examples/logistic_reg/train.txt (270)
    D examples/naive_bayes/Cargo.toml (12)
    D examples/naive_bayes/expected_result.txt (6)
    D examples/naive_bayes/input.txt (7)
    D examples/naive_bayes/naive_bayes_demo.sh (31)
    D examples/naive_bayes/src/main.rs (109)
    D examples/naive_bayes/target.txt (6)
    D examples/neural_net/Cargo.toml (12)
    D examples/neural_net/input.txt (5)
    D examples/neural_net/neural_net_demo.sh (31)
    D examples/neural_net/src/main.rs (116)
    D examples/neural_net/target.txt (5)
    D examples/neural_net/test.txt (2)
    D examples/online_decrypt/Cargo.toml (16)
    D examples/online_decrypt/online_decrypt_demo.sh (37)
    D examples/online_decrypt/src/main.rs (197)
    D examples/online_decrypt/test.txt (1)
    D examples/private_join_and_compute/Cargo.toml (11)
    D examples/private_join_and_compute/data.csv (20002)
    D examples/private_join_and_compute/four_party_bench.sh (56)
    D examples/private_join_and_compute/four_party_data/bank_a.txt (0)
    D examples/private_join_and_compute/four_party_data/bank_b.txt (0)
    D examples/private_join_and_compute/four_party_data/bank_c.txt (0)
    D examples/private_join_and_compute/four_party_data/bank_d.txt (0)
    D examples/private_join_and_compute/four_party_demo.sh (0)
    D examples/private_join_and_compute/four_party_results/result1.txt (0)
    D examples/private_join_and_compute/four_party_results/result2.txt (0)
    D examples/private_join_and_compute/four_party_results/result3.txt (0)
    D examples/private_join_and_compute/four_party_results/result4.txt (0)
    D examples/private_join_and_compute/src/main.rs (0)
    D examples/private_join_and_compute/three_party_data/bank_a.txt (0)
    D examples/private_join_and_compute/three_party_data/bank_b.txt (0)
    D examples/private_join_and_compute/three_party_data/bank_c.txt (0)
    D examples/private_join_and_compute/three_party_demo.sh (0)
    D examples/private_join_and_compute/three_party_results/result1.txt (0)
    D examples/private_join_and_compute/three_party_results/result2.txt (0)
    D examples/private_join_and_compute/three_party_results/result3.txt (0)
    D examples/py_file/Cargo.toml (0)
    D examples/py_file/data/1.txt (0)
    D examples/py_file/payload.py (0)
    D examples/py_file/py_file.sh (0)
    D examples/py_file/py_result.txt (0)
    D examples/py_file/src/main.rs (0)
    D examples/py_logistic_reg/Cargo.toml (0)
    D examples/py_logistic_reg/payload.py (0)
    D examples/py_logistic_reg/py_logistic_reg.sh (0)
    D examples/py_logistic_reg/py_result.txt (0)
    D examples/py_logistic_reg/src/main.rs (0)
    D examples/py_matrix_multiply/Cargo.toml (0)
    D examples/py_matrix_multiply/payload.py (0)
    D examples/py_matrix_multiply/py_matrix_multiply.sh (0)
    D examples/py_matrix_multiply/py_result.txt (0)
    D examples/py_matrix_multiply/src/main.rs (0)
    D examples/quickstart/Cargo.toml (0)

-- Patch Links --

https://github.com/apache/incubator-teaclave/pull/266.patch
https://github.com/apache/incubator-teaclave/pull/266.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-teaclave/pull/266

Re: [apache/incubator-teaclave] Merge the develop branch into master (#266)

Posted by Mingshen Sun <no...@github.com>.
Merged #266 into master.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-teaclave/pull/266#event-3246015057