attester/
— GPU runtime attestation logic and pluginverifier/
— Evidence verification pluginplugin/
— Cross-vendor plugin registrationutils/
— Utility functions (e.g., logging)
- GCC or Clang
- Git
- Clone the repository
- Initialize submodules if any
- Install dependencies (see above)
To build and run unit tests:
# Build and run attester test
cd attester && gcc test_attester.c -o test_attester && ./test_attester
# Build and run verifier test
cd ../verifier && gcc test_verifier.c -o test_verifier && ./test_verifier
# Build and run logging test
cd ../utils && gcc test_logging.c -o test_logging && ./test_logging
# Build and run cross-vendor attestation demo
cd ../plugin && gcc demo_cross_vendor_attestation.c -o demo_cross_vendor_attestation && ./demo_cross_vendor_attestation
GitHub Actions workflow is provided in .github/workflows/c-build-test.yml
for automated build and test.
- Security events are logged with timestamps (see
utils/logging.c
). - Review and extend tests for production use.
MIT
- Cross-vendor attestation (Intel, AMD, NVIDIA)
- Pluggable attester/verifier architecture
- Simple policy engine
- Audit logging
- Easy integration and extension
This MVP simulates TEE (Trusted Execution Environment) attestation by cryptographically signing evidence in each attester plugin using HMAC-SHA256. Each verifier plugin checks the signature to ensure evidence integrity and authenticity, mimicking real TEE sealing/unsealing.
- Crypto is implemented in
core/crypto.c
using OpenSSL. - Each vendor plugin uses a unique key for HMAC.
- GCC or Clang
- Git
- OpenSSL development libraries (
libssl-dev
on Linux,brew install openssl
on Mac)
mkdir -p logs
# On Mac, you may need to add OpenSSL flags:
gcc demo/demo_main.c core/attestation_api.c core/policy_engine.c core/audit_log.c core/crypto.c \
plugins/intel/attester.c plugins/intel/verifier.c \
plugins/amd/attester.c plugins/amd/verifier.c \
plugins/nvidia/attester.c plugins/nvidia/verifier.c \
-o chimera_demo -lssl -lcrypto -I/usr/local/include -L/usr/local/lib
./chimera_demo
cat logs/audit.log
To run all tests:
cd tests
chmod +x run_all_tests.sh
./run_all_tests.sh
- To add a new plugin, copy an existing plugin and update the logic.
- To add a new policy, edit
core/policy_engine.c
. - Please log feedback and suggestions in
docs/FEEDBACK.md
.
We value your feedback! Please use docs/FEEDBACK.md
to log issues, suggestions, and integration notes.
- The demo registers both simulated (HMAC) and real (Intel SGX/Open Enclave) plugins.
- Use
"IntelSGX"
as the vendor name for real TEE attestation.
docker build -t chimera-demo .
docker run --rm chimera-demo
docker build -t chimera-sgx-demo -f Dockerfile.openenclave .
docker run --rm chimera-sgx-demo
- For real SGX hardware, you may need to pass through SGX devices (see Open Enclave docs).
- In simulation mode, no special hardware is required.