GithubHelp home page GithubHelp logo

isabella232 / seam-loader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from qizhangz/seam-loader

0.0 0.0 0.0 2.67 MB

License: Other

C++ 0.24% Python 1.85% C 87.76% Assembly 4.13% CSS 0.23% Makefile 3.97% HTML 1.20% Batchfile 0.63%

seam-loader's Introduction

SEAM-Loader

Build Instructions

Secure Arbitration Mode (SEAM) is an extension to Virtual Machines Extension (VMX) architecture to define a new VMX root mode called SEAM root. This SEAM root mode is used to host a CPU-attested module to create virtual machine (VM) guests called Trust Domains (TD).

Software that executes in SEAM root mode, defined by SEAM range registers (SEAMRR). The SEAM range is partitioned into two sub-ranges: MODULE_RANGE and P_SEAMLDR_RANGE.

The NP-SEAMLDR ACM helps with the initialization of the SEAM range, establishes the P-SEAMLDR range, sets up the SEAM transfer VMCS structure for transfers to the Intel P-SEAMLDR module, and loads the embedded Intel P-SEAMLDR module's image into the P_SEAMLDR_RANGE

The TDX module, which provides functions to build and manage TDs, is loaded to and runs from MODULE_RANGE. The persistent SEAM loader (P-SEAMLDR), which provides function to load and update the TDX module, runs from P_SEAMLDR_RANGE.

P-SEAMLDR is a special SEAM module, loaded into P_SEAMLDR_RANGE by NP-SEAMLDR, and invoked by VMM using the SEAMCALL instruction. It is designed to follow the steps below to load or update an Intel TDX module into the MODULE_RANGE:

  1. Verify input parameters, including the Intel TDX module's signature structure.
  2. Load the Intel TDX module image into the MODULE_RANGE, measure it and verify the measurement matches with the signature structure.
  3. Set up all the relevant regions and SEAM transfer VMCSs for all logical processors.
  4. Record the Intel TDX module identity into CPU measurement registers and update its load status.
  5. Return to VMM using the SEAMRET instruction.

For more details, refer - https://www.intel.com/content/dam/develop/external/us/en/documents-tps/intel-tdx-seamldr-interface-specification.pdf

To contact us - use the issues section to report and we'll respond as soon as possible.

This is pre-production version source code.

seam-loader's People

Contributors

avivdaga avatar rabiaasa avatar smagnuss89 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.