Skip to content

Commit 103be22

Browse files
Merge pull request #129 from NVIDIA/release/v2.6.5
Protected PCIE Verifier for SDK CPP
2 parents 58752f1 + 8aad118 commit 103be22

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+8893
-10
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "host_tools/python"]
22
path = host_tools/python
33
url = https://github.com/nvidia/gpu-admin-tools
4+
[submodule "guest_tools/attestation_sdk_cpp"]
5+
path = guest_tools/attestation_sdk_cpp
6+
url = https://github.com/NVIDIA/attestation-sdk.git

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# nvTrust: Ancillary Software for NVIDIA Trusted Computing Solutions
22

3+
[![License](https://img.shields.io/badge/License-Apache_2.0-brightgreen.svg)](LICENSE)
4+
[![Docs](https://img.shields.io/badge/docs-latest-blue)](https://docs.nvidia.com/attestation/attestation-client-tools-sdk/latest/sdk_introduction.html)
5+
[![Release](https://img.shields.io/github/v/release/NVIDIA/nvtrust)](https://github.com/NVIDIA/nvtrust/releases)
6+
[![PyPI](https://img.shields.io/pypi/v/nv-attestation-sdk.svg)](https://pypi.org/project/nv-attestation-sdk/)
7+
[![Python](https://img.shields.io/badge/python-3.7%20and%20above-orange)](https://pypi.org/project/nv-attestation-sdk/)
8+
[![Issues](https://img.shields.io/github/issues/NVIDIA/nvtrust)](https://github.com/NVIDIA/nvtrust/issues)
9+
[![Pull Requests](https://img.shields.io/github/issues-pr/NVIDIA/nvtrust)](https://github.com/NVIDIA/nvtrust/pulls)
10+
[![Stars](https://img.shields.io/github/stars/NVIDIA/nvtrust?style=social)](https://github.com/NVIDIA/nvtrust/stargazers)
11+
[![Forks](https://img.shields.io/github/forks/NVIDIA/nvtrust?style=social)](https://github.com/NVIDIA/nvtrust/network/members)
12+
313
This repository provides essential resources for implementing and validating Trusted Computing Solutions on NVIDIA hardware. It focuses on attestation, a crucial aspect of ensuring the integrity and security of confidential computing environments.
414

515
## Tools and Components
@@ -12,6 +22,8 @@ This repository includes the following attestation tools and utilities:
1222

1323
- **[Local GPU Verifier](guest_tools/gpu_verifiers/local_gpu_verifier/README.md)** - A standalone tool for local GPU attestation verification. *Note: This tool is now integrated into the Attestation SDK. Please use the Attestation SDK for GPU attestation workflows.*
1424

25+
> **Deprecation Notice:** The Python SDK and the Local GPU Verifier is deprecated. Users are encouraged to use the new [C++ SDK](https://docs.nvidia.com/attestation/nv-attestation-sdk-cpp/latest/sdk-c/introduction.html) and the [CLI](https://docs.nvidia.com/attestation/nv-attestation-sdk-cpp/latest/sdk-cli/introduction.html).
26+
1527
- **[PPCIE Verifier](guest_tools/ppcie-verifier/README.md)** - Protected PCIe verifier for multi-GPU confidential computing setups where all GPUs are in PPCIE mode, enabling plain-text NVLink traffic while preserving confidential VM security.
1628

1729
### Host Tools
@@ -30,8 +42,7 @@ To get started and learn more about NVIDIA Attestation, refer to the [NVIDIA Att
3042
### SDK and CLI Documentation
3143

3244
- **[Attestation SDK (Python) Documentation](https://docs.nvidia.com/attestation/attestation-client-tools-sdk/latest/sdk_introduction.html)** - Complete documentation for the Python SDK
33-
- **[Attestation SDK (C++) Documentation](https://docs.nvidia.com/attestation/nv-attestation-sdk-cpp/latest/sdk-c/introduction.html)** - Complete documentation for the C++ SDK
34-
- **[Attestation CLI Documentation](https://docs.nvidia.com/attestation/nv-attestation-sdk-cpp/latest/sdk-cli/introduction.html)** - Command-line interface documentation
45+
3546
- **[PPCIE Verifier Documentation](https://docs.nvidia.com/attestation/attestation-client-tools-ppcie/latest/ppcie_introduction.html)** - Documentation for Protected PCIe attestation
3647

3748
## Contributing

guest_tools/attestation_sdk/src/nv_attestation_sdk/gpu/attest_gpu_remote.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ def attest(nonce: str, gpu_evidence_list, attestation_options):
7171
response = requests.request(
7272
"POST", verifier_url, headers=headers, data=payload, timeout=timeout
7373
)
74-
response_json = response.json()
74+
try:
75+
response_json = response.json()
76+
except ValueError:
77+
response_json = response.text
7578
logger.debug(
7679
"Response received from NRAS for GPU Attestation: %s", response_json
7780
)

guest_tools/attestation_sdk/src/nv_attestation_sdk/nvswitch/attest_nvswitch_remote.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ def attest(nonce: str, nvswitch_evidence_list, attestation_options):
7070
response = requests.request(
7171
"POST", verifier_url, headers=headers, data=payload, timeout=timeout
7272
)
73-
response_json = response.json()
73+
try:
74+
response_json = response.json()
75+
except ValueError:
76+
response_json = response.text
7477
logger.debug(
7578
"Response received from NRAS for Nvswitch Attestation: %s", response_json
7679
)

guest_tools/attestation_sdk/tests/end_to_end/hardware/test_local_gpu.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ def attestation_policy_3_0():
2525
json_data = json.load(json_file)
2626
return json.dumps(json_data)
2727

28+
@pytest.fixture
29+
def attestation_policy_4_0():
30+
"""Fixture to load the policy file"""
31+
file = "../../policies/local/NVGPULocalv4PolicyExample.json"
32+
with open(os.path.join(os.path.dirname(__file__), file)) as json_file:
33+
json_data = json.load(json_file)
34+
return json.dumps(json_data)
35+
2836
@pytest.mark.gpu_hardware
2937
def test_successful_gpu_attestation_without_a_service_key(attestation_policy, ocsp_url, rim_url):
3038
invoke_attestation(attestation_policy, None, ocsp_url, rim_url)
@@ -35,9 +43,9 @@ def test_successful_gpu_attestation_with_a_service_key(attestation_policy, servi
3543
invoke_attestation(attestation_policy, service_key, ocsp_url, rim_url)
3644

3745
@pytest.mark.gpu_hardware
38-
def test_successful_gpu_attestation_with_claims_version_3_0(attestation_policy_3_0, service_key, rim_url, ocsp_url):
46+
def test_successful_gpu_attestation_with_claims_version_3_0(attestation_policy_4_0, service_key, rim_url, ocsp_url):
3947
assert service_key is not None, "Obtain a valid service key which has NVIDIA Attestation Service access from https://org.ngc.nvidia.com/service-keys"
40-
invoke_attestation(attestation_policy, service_key, ocsp_url, rim_url, claims_version="3.0")
48+
invoke_attestation(attestation_policy_4_0, service_key, ocsp_url, rim_url, claims_version="3.0")
4149

4250
@pytest.mark.gpu_hardware
4351
def test_fail_gpu_attestation_with_invalid_service_key(attestation_policy, ocsp_url, rim_url):

guest_tools/attestation_sdk_cpp

Submodule attestation_sdk_cpp added at ce46325
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dist

0 commit comments

Comments
 (0)