Coder Social home page Coder Social logo

boudo / ego Goto Github PK

View Code? Open in Web Editor NEW

This project forked from edgelesssys/ego

0.0 1.0 0.0 1.42 MB

EGo lets you build, debug und run Go apps on Intel SGX - as simple as conventional Go programming!

Home Page: https://ego.dev

License: Mozilla Public License 2.0

CMake 4.06% Go 75.44% C++ 6.76% Shell 2.32% C 10.72% Dockerfile 0.70%

ego's Introduction

EGo

EGo logo

GitHub Actions Status GitHub license Go Report Card PkgGoDev Discord Chat

EGo is a framework for building confidential apps in Go. Confidential apps run in always-encrypted and verifiable enclaves on Intel SGX-enabled hardware. EGo simplifies enclave development by providing two user-friendly tools:

  • ego-go, an adapted Go compiler that builds enclave-compatible executables from a given Go project - while providing the same CLI as the original Go compiler.
  • ego, a CLI tool that handles all enclave-related tasks such as signing and enclave creation.

Building and running a confidential Go app is as easy as:

ego-go build hello.go
ego sign hello
ego run hello

Install

From Release

If you are on Ubuntu 18.04 or above and do not want to build EGo from source, you can install the binary release:

wget -qO- https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add
sudo add-apt-repository 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu bionic main'
wget https://github.com/edgelesssys/ego/releases/download/v0.2.0/ego_0.2.0_amd64.deb
sudo apt install ./ego_0.2.0_amd64.deb build-essential

Build from Source

Prerequisite: Edgeless RT is installed and sourced.

mkdir build
cd build
cmake ..
make
make install

Getting Started

Now you are ready to build applications with EGo! To start, check out the following samples.

Samples

  • helloworld is a minimal example of an enclave application.
  • remote_attestation shows how to use the basic remote attestation API of EGo.
  • attested_tls is similar to the above, but uses a higher level API to establish an attested TLS connection.
  • vault demonstrates how to port a Go application exemplified by Hashicorp Vault.
  • cgo demonstrates the experimental cgo support.
  • azure_attestation shows how to use Microsoft Azure Attestation for remote attestation.

Documentation

ego's People

Contributors

thomasten avatar nirusu avatar m1ghtym0 avatar 3u13r avatar flxflx avatar katexochen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.