#attestation #enclaves #aws #generated-bindings #evervault #nitro-enclaves

attestation-doc-validation

A Rust library for attesting enclaves according to the Evervault Attestation scheme. This crate is used to generate ffi bindings.

15 unstable releases (5 breaking)

0.9.0 Aug 16, 2024
0.8.0 Apr 29, 2024
0.7.4 Feb 8, 2024
0.7.3 Oct 13, 2023
0.5.0-beta Feb 7, 2023

#284 in FFI

Download history 610/week @ 2024-07-03 389/week @ 2024-07-10 621/week @ 2024-07-17 876/week @ 2024-07-24 607/week @ 2024-07-31 642/week @ 2024-08-07 1139/week @ 2024-08-14 824/week @ 2024-08-21 736/week @ 2024-08-28 1041/week @ 2024-09-04 341/week @ 2024-09-11 514/week @ 2024-09-18 804/week @ 2024-09-25 565/week @ 2024-10-02 370/week @ 2024-10-09 686/week @ 2024-10-16

2,551 downloads per month

Apache-2.0

59KB
1K SLoC

Attestation Doc Validation

This library exposes the high level functions required by Evervault Clients to attest an Enclave per the defined Attestation Protocol.

The library has been design to allow for bindings to be generated for multiple languages on top of the Rust crate, and should also expose enough logic to be composable for alternative Nitro Enclaves Attestation protocols.

The project makes use of cargo make to provide high level workflows, which can be found in the Makefile.toml.

Structure

The project is split into 2 core modules:

  • attestation_doc.rs covers all validation and parsing relating to Nitro Enclaves attestation documents.
  • cert.rs covers all validation and parsing of X509 certs. This is to allow clients to pass off the raw pem or der encoded certs from their enclave connection to be attested.

Two high level helpers are exposed from lib.rs:

  • attestation_doc_validation::parse_cert — This is a helper for parsing bytes into an X509 instance and is reasonably generic.
  • attestation_doc_validation::validate_attestation_doc_in_cert — This drives the entire Evervault Attestation Protocol.

The underlying API is exposed through submodules. You can read more about the APIs exposed in our docs.

Dependencies

~16–24MB
~461K SLoC