# Generate a Report

## Create the report

Generate the report for the nonce of the workload.

**Example**

```
vhsm nitride attestation -provider=azure-sev-snp-vtpm generate E5a8XdpQhg7f9ET0VMXIJT6HftUrvMWCob2Ki4B5EyEKn_MrekFjYRO_NzKc_ppUcSIXGSptY0bVrrI1tAQt_g==
```

The example generates for an Azure cVM with AMD SEV-SNP and vTPM support and the nonce that you generated in the previous `E5a8XdpQhg7f9...` a remote attestation.

**Output:**

```json
{
  "Version": 1,
  "Provider": "azure-sev-snp-vtpm",
  "Attestation": {
    "Version": 1,
    "Product": "Milan",
    "Report": "SENMQQEAAAArCQAAAgAAAAAAAAAA... (trimmed)",
    "Data": {
      "Value": "eyJOb25jZSI6IkU1YThYZHBRaGc3... (trimmed)",
      "Signature": "kPBnswf+ZLv407QBRxoPegFOeF4T... (trimmed)"
    },
    "Runtime": {
      "keys": [
        {
          "kid": "HCLAkPub",
          "key_ops": ["sign"],
          "kty": "RSA",
          "e": "AQAB",
          "n": "lT_uuAA... (trimmed)"
        },
        {
          "kid": "HCLEkPub",
          "key_ops": ["encrypt"],
          "kty": "RSA",
          "e": "AQAB",
          "n": "2MEUwAA... (trimmed)"
        }
      ],
      "vm-configuration": {
        "console-enabled": true,
        "secure-boot": false,
        "tpm-enabled": true,
        "vmUniqueId": "20B18860-699D-456B-9E59-E7F7E69A2CAA"
      },
      "user-data": "0000000000000000000000000000... (trimmed)"
    },
    "EventLog": "AAAAAAMAAAAAAAAAAAAAAAAAAAAA... (trimmed)",
    "Quote": {
      "quote": "/1RDR4AYACIAC5eEpZ0mR6zrYo6UB... (trimmed)",
      "raw_sig": "ABQACwEABaNegGLkc5GHZobvMEpn... (trimmed)",
      "pcrs": {
        "hash": 11,
        "pcrs": {
          "0": "4VxEeWvqv0arzsfFflkJQgQeR0l+... (trimmed)",
          "1": "PUWM/lXMA+ofRD8VYr7sjfUcdeFK... (trimmed)",
          "2": "...",
          "3": "...",
          "4": "...",
          "5": "...",
          "6": "...",
          "7": "...",
          "8": "...",
          "9": "...",
          "10": "...",
          "11": "...",
          "12": "...",
          "13": "...",
          "14": "...",
          "15": "...",
          "16": "...",
          "17": "...",
          "18": "...",
          "19": "...",
          "20": "...",
          "21": "...",
          "22": "...",
          "23": "..."
        }
      }
    }
  }
}
```

## Convert base64 encoding

{% hint style="info" %}
**Note**: When you generate an attestation report on the attester, you may need to transfer it to the verifier. Encoding in base64 ensures the report is not altered during transfer and can be easily embedded in other data structures or sent over the network. The verifier can then decode and process the report reliably.
{% endhint %}

Copy the contents of the report and save it as `verify.json`  in your local system. To convert a JSON  file to a base64-encoded file, use the following command:

```
base64 -i verify.json -o verify.base64
```

* -i verify.json specifies the input file.
* -o verify.base64 specifies the output file.

Alternatively, you can use:&#x20;

```shellscript
cat verify.json | base64 > verify.base64
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enclaive.cloud/nitride/documentation/getting-started/remote-attestation/generate-a-report.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
