-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Labels
Description
🔹 Overview
Intel Unique Platform Identifier (UPID) provides a way to uniquely identify a platform for attestation and verification. We want to integrate UPID support into rpc-go, ensuring that this information is accessible through the amtinfo command.
This will involve:
- Communicating with the Intel UPID driver via HECI (Host Embedded Controller Interface).
- Implementing UPID retrieval logic for both Windows and Linux.
- Exposing the retrieved UPID in
amtinfo.
🎯 Task Scope
1️⃣ Windows & Linux HECI Implementation
- Identify and add the correct GUID for the UPID driver in:
pkg/heci/windows.gopkg/heci/linux.go
- Implement UPID retrieval by sending the correct MEI commands to the driver.
2️⃣ New UPID Package
- Create a new package (
pkg/upid/) to encapsulate UPID logic. - Implement a UPID retrieval function that abstracts OS-specific logic.
- Ensure it returns the UPID in a structured format.
3️⃣ Integrate UPID into amtinfo Command
- Modify
amtinfoto include the UPID in its output. - Ensure JSON and human-readable formats both display UPID correctly.
4️⃣ Testing & Validation
- Test on real Intel platforms to confirm UPID retrieval works.
- Implement unit tests for UPID logic where possible.
- Add error handling for cases where UPID is not available.
📂 Relevant Files
pkg/heci/windows.go(HECI driver interaction for Windows)pkg/heci/linux.go(HECI driver interaction for Linux)pkg/upid/(new package for UPID retrieval)cmd/amtinfo.go(amtinfo command implementation)go.mod(if additional dependencies are required)
💻 Technical Details
- Follow the Intel UPID Attestation SDK guide:
Intel UPID SDK - Ensure communication via HECI/MEI, using the correct GUIDs for:
- Windows: Likely uses
DeviceIoControlwith a relevant GUID. - Linux: Likely interacts with
/dev/meior similar.
- Windows: Likely uses
- Ensure error handling for platforms that do not support UPID.
✅ Acceptance Criteria
- The correct GUIDs are added for Windows/Linux.
- UPID retrieval works on both platforms.
- A new
pkg/upid/package is implemented for UPID management. -
amtinfodisplays the UPID in both human-readable and JSON outputs. - The feature is tested on real Intel hardware.
- A Pull Request (PR) is submitted summarizing the work.
📎 Additional Notes
- If a platform does not support UPID, ensure the code fails gracefully.
- Follow existing patterns in
pkg/heci/to keep the implementation consistent. - If Intel updates their UPID SDK, check for latest documentation.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Q1 2026