Skip to content

Conversation

@bvavala
Copy link
Contributor

@bvavala bvavala commented Dec 17, 2024

This PR adds the implementation of the attestation API (extended from Hyperledger Fabric Private Chaincode), which was initially pushed in the PDO repo and integrated with the PDO build -- see hyperledger-labs/private-data-objects#501.

**Attestation generation.**
The library exposes the `init_attestation(params)` and `attestation_blob = get_attestation(statement)` APIs.
`params` is a json blob to initialize the internal state of the library for an attestation. The `statement` is a binary string which (in SGX) is hashed to generate the "report data" to be attested.
```jsonc

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: instead of runtime selection of the attestation method, can this just be compile time (or link time)? Make each method a separate library that can be linked. It seems unlikely that the attestation method would change for a particular application at run time.

"hex_spid": "<hex encoded spid>", // only for EPID
"sig_rl": "<sigrl>" // only for EPID
}
```

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that EPID has been EOL'd, is there a reason to continue to support it?


**Attestation verification.**
The attestation library exposes the `verify_evidence(evidence_blob, statement, code_id)` API. In SGX, the code identity refers to the `mrenclave` value. The verification result is simply `true` or `false`, depending on the outcome. The API mainly verifies: the chain of trust of the evidence (i.e., none for the `simulated` type; up to the IAS root CA for EPID; up to the SGX Root CA for the `dcap-direct-sgx` type; up to the ITA root CA for the `dcap-sgx` type. The respective root CA certificates are all retrieved at build time and compiled into the library.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one more request... can we differentiate between "integrity" of the evidence (meaning all the signature are valid) and "policy" for whether the evidence meets some set of requirements?

@mbrandenburger mbrandenburger self-requested a review March 7, 2025 11:18
Copy link

@mbrandenburger mbrandenburger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ryjones ryjones merged commit 508d500 into LF-Decentralized-Trust-labs:main Jan 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants