ego-mpc

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2024 License: MPL-2.0

README

EGo multi-party computing module

This module provides the base functionality for building confidential multi-party computing (MPC) apps in Intel SGX enclaves with EGo. MPC here refers to multiple users wanting to selectively share information through a shared host without revealing raw data. More specifically, the module provides a server with a relational database handling trusted ownership, encryption, authentication, and secure connections with the client through attested TLS (aTLS).

Architecture

An MPC server is implemented using the following packages:

  • server: The server serves a user-defined HTTP REST API and handles attestation.
  • db: The db package provides an encrypted SQLite database exposed via GORM.
  • seal: The seal package provides helper functions for sealing the database encryption key.

The client is implemented using the client package. The idea is to run the client as a local proxy server that handles all the confidential-computing-related complexities, such as attestation and secure connections. This allows to create user interfaces that can use standard HTTP connections to the local proxy.

Example

To see how you can use the module, refer to the example.

Directories

Path Synopsis
example module
internal
Package seal provides functions to seal and unseal data.
Package seal provides functions to seal and unseal data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL