Skip to content

Self-hosting Aleo Oracle verifier#

Verification backend

At this moment the Aleo blockchain cannot natively verify our TEE reports. To allow for a transparent verification of the attested data we are making a backend available for everyone to run and verify that each oracle update actually carries a valid TEE report. This does not require the user to have a TEE themselves. As soon as Aleo is able to verify e.g. ECDSA signatures natively this will become superfluous.

Prerequisites#

Or

Hosting your own PCCS

If you choose to host your own PCCS, make sure that it uses at least DCAP 1.19.

Running in Docker#

In the repository you will find a docker-compose.yml file. Set API_KEY environment variable for pccs service.

Get an API key for PCCS

To get your free API key, go to IntelĀ® Provisioning Certification Service for ECDSA Attestation, create an account and click on "Subscribe".

You can optionally also set ADMINPASS environment variable if you're planning to use administrative endpoints or IntelĀ® SGX Pccs Admin Tool.

Adjust the configuration in config.json (See the Configuration section below) before building the containers

docker compose build

then start them with

docker compose up -d

You can also change the config after you build the images, you just need to mount config.json to /app/config.json in the verification-backend service.

Configuration#

The program looks for config.json in the working directory.

Key Description Required
port The port to bind to for the HTTP server yes
useTls Enable HTTPS for the server. Makes tlsKey and tlsCert required. no
tlsKey Path to the PEM certificate key for HTTPS. depends on useTls
tlsCert Path to the PEM certificate for HTTPS. depends on useTls
uniqueIdTarget Target SGX enclave unique ID as returned by get-enclave.id.sh - 32-byte hex or base64 string no
pcrValuesTarget Target Nitro enclave PCR values as returned by get-enclave.id.sh - an array of 3 48-byte hex or base64 strings no
liveCheck Configuration object for querying a live Aleo program's unique ID assertion yes

liveCheck configuration object:

Key Description
skip If true, then will use the enclave measurements from the reproducible build or the configuration, and will not query the deployed program
apiBaseUrl Base URL for Aleo node API
contractName Aleo program that has sgx_unique_id and nitro_pcr_values mappings with the enclave measurements stored at keys 0u8.

Setting up the target enclave measurements#

When decoding and verifying enclave reports, this backend will compare the report's enclave measurements with the configured target measurements. This means that this backend will be asserting the source code and configuration of the enclave that produced the report, thus verifying the code running in the Oracle backend enclave.

The target enclave measurements are cross-checked using two sources: the reproducible build of the Oracle backend and the configured measurements in an Aleo program that will be using the reports.

Reproducing a build of the Oracle backend ensures that the report-producing enclave is running the exact source code version this backend expects.

Aleo programs that utilize attestations from the Oracle need to perform certain assertions on an attestation and its report. One of the assertions verifies the measurements of the enclave. By querying the enclave measurements from the program, this backend ensures that the program is aware of the Oracle backend's current source code version and that it will be able to accept a report from it, given that all other assertions pass.

Query the notarizers for their enclave measurements#

You can choose to verify the currently running default notarization backend. You can query https://sgx.aleooracle.xyz/info to get an SGX enclave measurement (unique ID):

{
  "reportType": "sgx",
  "info": {
    "securityVersion": 1,
    "debug": false,
    "uniqueId": "RGpRmz/zATF9erKm0HQFGHjCPDRbP4XnbbxpFBMJq/w=",
    "signerId": "9H4s7YPOeZFug8XZRRRlc+Z7Vfit98IfkZsrDpb+Dxs=",
    "productId": "AQAAAAAAAAAAAAAAAAAAAA==",
    "aleoProductId": "1u128",
    "aleo": {
      "uniqueId": "{ chunk_1: 31929802673692760512905395015836068420u128, chunk_2: 335853521753947303372057454886636012152u128 }",
      "signerId": "{ chunk_1: 153386052680309655679396867527014121204u128, chunk_2: 35972203959719964238382729092704599014u128 }",
      "productId": "1u128",
    },
    "tcbStatus": 5
  },
  "signerPubKey": "aleo1skjdmt9s743jlgf378n38hud4jdnmf4tafsymsj8ta2hqmcc5qxqeuersv"
}

or query https://nitro.aleooracle.xyz/info to get the Nitro enclave measurements (PCR values):

{
  "reportType": "nitro",
  "info": {
    "document": {
      "moduleID": "i-02dd0abe215ecea89-enc0191d5d43e5aa019",
      "timestamp": 1725869343469,
      "digest": "SHA384",
      "pcrs": {
        "0": "ifZLGoqBQ0TW/ngrKDUr19ax+HWFDb44GlIkKBuvcczPfBLO6bkhrTlOD3owImfg",
        "1": "A0OwVs2Ehcp4kN3YM0dteEYK7SqhYVSOTia+3zIXJmliV9Yj6IBfP2BZRrPYsMaq",
        "10": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "11": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "12": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "13": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "14": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "15": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "2": "EeFmnkqglQNR4pz7vla+0hDxl8AV3Hlb+ZyAVhkIloavkDQQxB5cJWJRbxdaixyl",
        "3": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "4": "aWOA5bTYYZ2R/C3qV+cV8017AqJAoCCxEGDeDXi9E7WozprebberstZz1d6ylbIA",
        "5": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "6": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "7": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "8": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "9": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      },
      "certificate": "MIICfDCCAgOgAwIBAgIQAZHV1D5aoBkAAAAAZt6tHzAKBggqhkjOPQQDAzCBjzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjEMMAoGA1UECwwDQVdTMTowOAYDVQQDDDFpLTAyZGQwYWJlMjE1ZWNlYTg5LmFwLXNvdXRoLTIuYXdzLm5pdHJvLWVuY2xhdmVzMB4XDTI0MDkwOTA4MDkwMFoXDTI0MDkwOTExMDkwM1owgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDDAKBgNVBAsMA0FXUzE/MD0GA1UEAww2aS0wMmRkMGFiZTIxNWVjZWE4OS1lbmMwMTkxZDVkNDNlNWFhMDE5LmFwLXNvdXRoLTIuYXdzMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE6LkkDc1D0GRa/nuEIoQT4UqAzJUKGTUl9edj6s/MrpbjI5QeQJMbk4TV1Fmg9JssMpMB8qIKM2VNhpT9nXxqN8OLQTIynNoRZO32poYiYRQfjQ1ubqja/aRZTuS4MBSHox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDAKBggqhkjOPQQDAwNnADBkAjADNBy1odTkagfiiXi0pTcHkntzcFxyD/kFR4sGrMBp9AvBymz+xNzqdZ5Ng8NZGPMCMBfdRYLQoKGgmSWNB2LPa9M3PwQMq9Pv56KIEGy3bsW3vmjiEck6K/Iiora7Ty61qw==",
      "cabundle": [
        "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"
      ],
      "userData": "AAAAAAAAAAAAAAAAAAAAAA==",
      "nonce": "4UIy4LD0MRgF3RHuvzHQSr7du7kDvNLHwe9d95joyO4="
    },
    "protectedCose": "oQE4Ig==",
    "signature": "Z3a7keF4QSwfvejH6zfe4UJ8R6ediSAH2fnEe0DCrBmwajHHPi9eGfmLDDm0hlK6OtYLqqjbVrWUKnjlAEfJNUaRMxiZFs596hEWjV0OijnMrzgjbKENrfV6nkG+tCwL",
    "aleo": {
      "pcrs": "{ pcr_0_chunk_1: 286008366008963534325731694016530740873u128, pcr_0_chunk_2: 271752792258401609961977483182250439126u128, pcr_0_chunk_3: 298282571074904242111697892033804008655u128, pcr_1_chunk_1: 160074764010604965432569395010350367491u128, pcr_1_chunk_2: 139766717364114533801335576914874403398u128, pcr_1_chunk_3: 227000420934281803670652481542768973666u128, pcr_2_chunk_1: 280126174936401140955388060905840763153u128, pcr_2_chunk_2: 178895560230711037821910043922200523024u128, pcr_2_chunk_3: 219470830009272358382732583518915039407u128 }",
      "userData": "0u128"
    }
  },
  "signerPubKey": "aleo1l4xyshuw6mvpxdx35cws7djlnemwranp4s8acgdm9k8ev5u9ugzsfklmqq"
}

Use the info.uniqueId and info.document.pcrs 0-2 in the configuration file.

curl -s https://sgx.aleooracle.xyz/info -q | jq -r '.info.uniqueId'
curl -s https://nitro.aleooracle.xyz/info -q | jq -r '.info.document.pcrs["0"], .info.document.pcrs["1"], .info.document.pcrs["2"]'

Reproducible build#

You can get the reproducible enclave measurements of the Oracle backend by running get-enclave-id.sh. Use ./get-enclave-id.sh -h to get help.

The script will download the root CA certificate bundle and Oracle backend source code, then build an enclave (see script's help message for requirements).

The script can be configured with the following environment variables:

Variable Description Default value
TEMP_WD A temporary working directory, where the script will be downloading files. It will be deleted automatically. A random directory in the current working directory.
CA_CERT_DATE CA file revisions per date of appearance as found at https://curl.se/docs/caextract.html 2024-07-02
ORACLE_REVISION Git branch, or commit hash, or tag of Oracle backend to use for reproducible build main

The produced output is:

...
Oracle SGX unique ID:
<unique ID>
...
Oracle Nitro PCR:
<PCR0>
<PCR1>
<PCR2>

Use these values in config.json to configure the target unique ID and the target PCR values. If the configuration file doesn't have either the target unique ID or the PCR values configured, this backend will itself run the script. The same environment variables can be passed to the backend; the script will inherit the environment.

Aleo program's configured enclave measurements#

If the live check in the configuration is not skipped, this backend will query an Aleo node for the configured Aleo program and get the unique ID and PCR values that the program uses for enclave measurements assertions on the enclave reports.

The querying is done once at startup. If the obtained unique ID doesn't match the unique ID from the reproducible build, the backend will exit with an error. If the obtained PCR values don't match the PCR values from the reproducible build, the backend will exit with an error.

Use the configuration liveCheck.skip to skip comparing the report enclave measurements with the ones stored in the Oracle program.

Building and running#

If EGo is installed with snap, run with:

EGOPATH=/snap/ego-dev/current/opt/ego CGO_CFLAGS=-I$EGOPATH/include CGO_LDFLAGS=-L$EGOPATH/lib go run main.go

If EGo is installed from a deb package, run with:

CGO_CFLAGS=-I/opt/ego/include CGO_LDFLAGS=-L/opt/ego/lib go run main.go

Each update on the blockchain carries also the report attesting to the data. Therefore, all data that is required to check the origin and security of the oracle data can be obtained via the blockchain. E.g. from https://explorer.aleo.org/transaction/<transactionId>

Backend information#

/info#

Returns some basic information about the backend configuration. Includes the target enclave unique ID for verification (in different encoding), the name of the Aleo program to query for the unique ID, and the time and date of the backend launch.

Method: GET

Response headers:

  • Content-Type: application/json

Response body:

{
  "targetUniqueId": {
    "hexEncoded": "",
    "base64Encoded": "",
    "aleoEncoded": ""
  },
  "targetPcrValues": {
    "hexEncoded": ["", "", ""],
    "base64Encoded": ["", "", ""],
    "aleoEncoded": ""
  },
  "liveCheckProgram": "",
  "startTimeUTC": ""
}
Example response
{
  "targetUniqueId": {
    "hexEncoded": "446a519b3ff301317d7ab2a6d074051878c23c345b3f85e76dbc69141309abfc",
    "base64Encoded": "RGpRmz/zATF9erKm0HQFGHjCPDRbP4XnbbxpFBMJq/w=",
    "aleoEncoded": "{ chunk_1: 31929802673692760512905395015836068420u128, chunk_2: 335853521753947303372057454886636012152u128 }"
  },
  "targetPcrValues": {
    "hexEncoded": [
      "89f64b1a8a814344d6fe782b28352bd7d6b1f875850dbe381a5224281baf71cccf7c12cee9b921ad394e0f7a302267e0",
      "0343b056cd8485ca7890ddd833476d78460aed2aa161548e4e26bedf321726696257d623e8805f3f605946b3d8b0c6aa",
      "11e1669e4aa0950351e29cfbbe56bed210f197c015dc795bf99c805619089686af903410c41e5c2562516f175a8b1ca5"
    ],
    "base64Encoded": [
      "ifZLGoqBQ0TW/ngrKDUr19ax+HWFDb44GlIkKBuvcczPfBLO6bkhrTlOD3owImfg",
      "A0OwVs2Ehcp4kN3YM0dteEYK7SqhYVSOTia+3zIXJmliV9Yj6IBfP2BZRrPYsMaq",
      "EeFmnkqglQNR4pz7vla+0hDxl8AV3Hlb+ZyAVhkIloavkDQQxB5cJWJRbxdaixyl"
    ],
    "aleoEncoded": "{ pcr_0_chunk_1: 286008366008963534325731694016530740873u128, pcr_0_chunk_2: 271752792258401609961977483182250439126u128, pcr_0_chunk_3: 298282571074904242111697892033804008655u128, pcr_1_chunk_1: 160074764010604965432569395010350367491u128, pcr_1_chunk_2: 139766717364114533801335576914874403398u128, pcr_1_chunk_3: 227000420934281803670652481542768973666u128, pcr_2_chunk_1: 280126174936401140955388060905840763153u128, pcr_2_chunk_2: 178895560230711037821910043922200523024u128, pcr_2_chunk_3: 219470830009272358382732583518915039407u128 }"
  },
  "liveCheckProgram": "official_oracle.aleo",
  "startTimeUTC": "2024-04-23 18:35:21"
}

Decoding report data from Leo contracts#

/decode#

Method: POST

Request headers: - Content-Type: application/json

Request body:

{
  "userData": "struct ReportData Leo value",
}
Example request
{
  "userData": "{  c0: {    f0: 83078175999433947992440321595670532u128,    f1: 4194512u128,    f2: 0u128,    f3: 1703169427u128,    f4: 200u128,    f5: 146741781957618190040822128409835696737u128,    f6: 152036601506766190083586533414400257325u128,    f7: 68109414375938033788076837889450272867u128,    f8: 134773639525141431732596543682390863416u128,    f9: 133418429601737771259984878976133183293u128,    f10: 134450312385956222643437753982911870049u128,    f11: 60070679775571722300437058720291054702u128,    f12: 156118725222190617104317614334339854642u128,    f13: 109u128,    f14: 121200813359967904192723595955179970916u128,    f15: 23856u128,    f16: 0u128,    f17: 5522759u128,    f18: 36893488147419103234u128,    f19: 221360928884514619396u128,    f20: 13055389343712134841237569546u128,    f21: 13856407623565317u128,    f22: 156035770564570580066107481452631621659u128,    f23: 3900269670161044694030315513202u128,    f24: 162743726813863731210145153184655802480u128,    f25: 101188681738744639914108759155086748777u128,    f26: 149456393680743922584091041160660086377u128,    f27: 42816717959947032433996830433837802860u128,    f28: 132119436183189587630719372684727700264u128,    f29: 64042929165508395635299690384626118507u128,    f30: 61431102749981217983499061483759611950u128,    f31: 13875u128  },  c1: {    f0: 55340232221128654848u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c2: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c3: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c4: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c5: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c6: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c7: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  }}"
}

Response headers:

  • Content-Type: application/json

Response body:

Note: depending on the success value, either decodedData or errorString exist.

In decodedData, properties htmlResultType, requestBody, and requestContentType are optional strings.

For more information on decodedData properties, see documentation for AttestationResponse in the Aleo Oracle documentation.

{
  "decodedData": {
    "url": "",
    "requestMethod": "",
    "selector": "",
    "responseFormat": "",
    "requestHeaders": {
      "Header name": ""
    },
    "encodingOptions": {
      "value": "",
      "precision": 0
    },
    "htmlResultType": null,
    "requestBody": null,
    "requestContentType": null,
    "attestationData": "",
    "responseStatusCode": 200,
    "timestamp": 0
  },
  "success": true,
  "errorString": ""
}
Example response
{
  "decodedData": {
    "url": "archive-api.open-meteo.com/v1/archive?latitude=38.9072&longitude=77.0369&start_date=2023-11-20&end_date=2023-11-21&daily=rain_sum",
    "requestMethod": "GET",
    "selector": "daily.rain_sum.[0]",
    "responseFormat": "json",
    "requestHeaders": {
      "Accept": "*/*",
      "DNT": "1",
      "Upgrade-Insecure-Requests": "1",
      "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
    },
    "encodingOptions": {
      "value": "float",
      "precision": 2
    },
    "attestationData": "0.00",
    "responseStatusCode": 200,
    "timestamp": 1703169427
  },
  "success": true
}

Decoding and verifying report from Leo contracts#

/decodeReport#

Method: POST

Request headers: - Content-Type: application/json

Request body:

{
  "userData": "struct ReportData Leo value",
  "report": "struct Report Leo value"
}
Example request SGX
{
  "userData": "{  c0: {    f0: 83078175999433947992440321595670532u128,    f1: 4194512u128,    f2: 0u128,    f3: 1703169427u128,    f4: 200u128,    f5: 146741781957618190040822128409835696737u128,    f6: 152036601506766190083586533414400257325u128,    f7: 68109414375938033788076837889450272867u128,    f8: 134773639525141431732596543682390863416u128,    f9: 133418429601737771259984878976133183293u128,    f10: 134450312385956222643437753982911870049u128,    f11: 60070679775571722300437058720291054702u128,    f12: 156118725222190617104317614334339854642u128,    f13: 109u128,    f14: 121200813359967904192723595955179970916u128,    f15: 23856u128,    f16: 0u128,    f17: 5522759u128,    f18: 36893488147419103234u128,    f19: 221360928884514619396u128,    f20: 13055389343712134841237569546u128,    f21: 13856407623565317u128,    f22: 156035770564570580066107481452631621659u128,    f23: 3900269670161044694030315513202u128,    f24: 162743726813863731210145153184655802480u128,    f25: 101188681738744639914108759155086748777u128,    f26: 149456393680743922584091041160660086377u128,    f27: 42816717959947032433996830433837802860u128,    f28: 132119436183189587630719372684727700264u128,    f29: 64042929165508395635299690384626118507u128,    f30: 61431102749981217983499061483759611950u128,    f31: 13875u128  },  c1: {    f0: 55340232221128654848u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c2: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c3: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c4: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c5: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c6: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c7: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  }}",
  "report": "{  c0: {    f0: 84855022739072527368193u128,    f1: 68385684764540665893611210958203650051u128,    f2: 242957950407643292263866366603922545911u128,    f3: 54648694067525505081604253854u128,    f4: 4082482497131797u128,    f5: 0u128,    f6: 0u128,    f7: 129127208515966861317u128,    f8: 67815920917700628759894811536473776728u128,    f9: 296690334406880757170225743286084577448u128,    f10: 0u128,    f11: 0u128,    f12: 153386052680309655679396867527014121204u128,    f13: 35972203959719964238382729092704599014u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 65537u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 194013037706606810471497707607567229514u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 293945546687975317560007689180664565828u128,    f29: 101319798806644299615994827200106732599u128,    f30: 288683837040491329007131885304923575713u128,    f31: 238936716134995001169573561693266943356u128  },  c1: {    f0: 117891055671150134937207207400070557u128,    f1: 327718390601232644976585669983462482511u128,    f2: 24330412716767774705623998119162324926u128,    f3: 138829435947332207818351983315511379419u128,    f4: 17534128811673485667330409u128,    f5: 0u128,    f6: 0u128,    f7: 554597137599850363245001965568u128,    f8: 51321760518872024617203618802506399744u128,    f9: 67728825339782400665172072549140061414u128,    f10: 3840007777u128,    f11: 0u128,    f12: 158837950468731255509735392413912924160u128,    f13: 90434782647414738426891946114991426246u128,    f14: 4286301584u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 2814754062073856u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 324754746029249963345795058866300387328u128,    f25: 262713569315817736053191240715644376071u128,    f26: 396987308u128,    f27: 0u128,    f28: 78783906986389290480429594716028272640u128,    f29: 47301204985573259198668388599829551565u128,    f30: 251573817981916842221204028300955393688u128,    f31: 60931249114056217298477870875766339282u128  },  c2: {    f0: 12004732790720997080891679054109673372u128,    f1: 33355783264191645768789692391696894730u128,    f2: 60049829442654824440068874493786594074u128,    f3: 86749189800108151757823289210582680109u128,    f4: 89408317962157473941141852435021382996u128,    f5: 116247298448171836707225814442806559810u128,    f6: 153298516702326844018032793253697894448u128,    f7: 97503207721845674876966991394193684528u128,    f8: 92066185763862219525981875178096847482u128,    f9: 158631690561421924035459988786500419911u128,    f10: 76333970513925110025764547352733963623u128,    f11: 86951652772898462981681034850997918314u128,    f12: 94896799011537378893460037220868506201u128,    f13: 116147467564052018692635533112133645142u128,    f14: 86754362688545102779307753469975033145u128,    f15: 112119725805968183605533498525349401716u128,    f16: 108017770325421329463318335114491808837u128,    f17: 86837782966952094203466333913022481712u128,    f18: 104299154292433981337878436150804502124u128,    f19: 102970007423461191398703387622748865914u128,    f20: 158756673053749662613813693058116962644u128,    f21: 120250821724838927997570695467201021027u128,    f22: 90731620886030983844249335288351250259u128,    f23: 64167425784331583248880956763149597011u128,    f24: 158714297810016602898334694321548514394u128,    f25: 76136666399556079529596080858030625618u128,    f26: 104215935482822920403569083451176409465u128,    f27: 104039541035603526609816581170645779030u128,    f28: 108114213427665675835456091415639513459u128,    f29: 65471119637970862968276758529751402833u128,    f30: 137254884056849384459604142725565400405u128,    f31: 142769694527016630226411770057918542179u128  },  c3: {    f0: 89112578245003088838611936818941153130u128,    f1: 112186499542433954375491037642502208106u128,    f2: 90784520335163547732013059839169092170u128,    f3: 88098580733429188304785517654213749060u128,    f4: 13818678782623848242017603879574981974u128,    f5: 147820478781135256057168735290326086470u128,    f6: 158601004626878902877599539347155414609u128,    f7: 113324135867913542756083826620225910600u128,    f8: 74972654877031102216601080268178673456u128,    f9: 118640788039913225795845957010654258442u128,    f10: 57522524206617649377895238896809301572u128,    f11: 76395809444991429016706081744091699303u128,    f12: 104055463043983720312313305835522974568u128,    f13: 94896799018974010676587692096514886252u128,    f14: 66925915710382479181304097458923270998u128,    f15: 140080186552622183050687868903337785686u128,    f16: 66924476944912156571061685914505720377u128,    f17: 98992299697508934570972255816522545477u128,    f18: 132156009718758105502505635427965556333u128,    f19: 161279583780376529355820241584231039338u128,    f20: 86988240499279864031395599405181786217u128,    f21: 90851712646405306649273966649867921772u128,    f22: 86910759077318896229532865192996655702u128,    f23: 89481269114107147013099085316803215693u128,    f24: 94922557363533324889281353390439350605u128,    f25: 97414248676890686064111993804100224299u128,    f26: 64162090082353134852911296187142010690u128,    f27: 68061606517752099038461575957851489346u128,    f28: 97414252019350595078397302451144248628u128,    f29: 108006557258706241659985402300131793474u128,    f30: 147935278331152620242894529988311204400u128,    f31: 109335559370310372277484484735535696218u128  },  c4: {    f0: 108006557258706241659985474927626385237u128,    f1: 100088524550901356562081163050370548272u128,    f2: 86749273541778128252673674470155180655u128,    f3: 86806937632782324422938379499129489745u128,    f4: 100088524550901337654184547093126983761u128,    f5: 89501715209068986181232175188938414703u128,    f6: 104222184131274927152875686304401412417u128,    f7: 94714031756334156656567492352616190273u128,    f8: 96085101416419075191047717346100738371u128,    f9: 130645070357909842285010588752337528641u128,    f10: 86744078235532168310844955291706020916u128,    f11: 97455544295713879545243905514477798215u128,    f12: 130645070357909843409829925202292064586u128,    f13: 88130178435234664984192167563704226868u128,    f14: 108006554474245330756093469187236906817u128,    f15: 97466053372950493505749323473483811913u128,    f16: 88130178435234981346425003090388464738u128,    f17: 86806224810738141373754240919543170881u128,    f18: 110696878246818504645480466692776544593u128,    f19: 102689462638219053953715929901094429257u128,    f20: 86806224810789133026584909959423017282u128,    f21: 94964376728773384814305555424564234577u128,    f22: 86760182472435095491075972571471169875u128,    f23: 104039701701017929686387466547358679629u128,    f24: 94964376747633841451467273574021681473u128,    f25: 86743850775774187631488817526718220627u128,    f26: 86738642548474510552846856696003380822u128,    f27: 130645070357890500596716091135427166529u128,    f28: 108011726166852882164521742062605915188u128,    f29: 108005175979728448444544556956631253831u128,    f30: 137254802922232358469698402495009801553u128,    f31: 137259792715934442779251126941000429935u128  },  c5: {    f0: 86743671559825713225810936288001212741u128,    f1: 65185195345608567120154475649334068045u128,    f2: 65357457586765783080977191293115922537u128,    f3: 86998423942360155305591100450693936961u128,    f4: 154472602469542241641585002430073029429u128,    f5: 13549021765187881145134586349375603269u128,    f6: 152073519918233207828023866234766653003u128,    f7: 104038968442143258462312395470080267333u128,    f8: 60049831370206298086862839912815861828u128,    f9: 92065270838263588161724692358245264685u128,    f10: 102403394931704788846174182320797996114u128,    f11: 86744001382976538097282952900259301705u128,    f12: 110935596339372355082162529425482467687u128,    f13: 102757753904718435832159428816450184530u128,    f14: 13641730763236203195338302233747353409u128,    f15: 102751686145939161927243829626473498445u128,    f16: 110669981079482448319058586804081677637u128,    f17: 90850942152570950481689628423833072226u128,    f18: 90731562025364983292125121457312321878u128,    f19: 92269112234738910460234604810152927754u128,    f20: 93307304611000405257194885735877070165u128,    f21: 87034648393070435116482161781592515701u128,    f22: 153283362559674347752342369129799828042u128,    f23: 162608910905757605780267968350111599223u128,    f24: 90789749960275843698637110143409874241u128,    f25: 141298973437060242123296827944779741013u128,    f26: 162547292534704897884193116506469267525u128,    f27: 133532497310657633341072149250505861185u128,    f28: 113521522523369678774676020478138865223u128,    f29: 102694834785533074997134942172914010696u128,    f30: 130649998573320348463870441913035747154u128,    f31: 138624983733330959992385555618662732398u128  },  c6: {    f0: 92159075952097798322699461462172911460u128,    f1: 138863807754577485370649275968502855490u128,    f2: 102886685864261067444504776195468258659u128,    f3: 108089793406502879224265658521229355841u128,    f4: 150832375731722087451752855924366591303u128,    f5: 69521351739172570572808364160782783303u128,    f6: 102756435944532396704924302022142279993u128,    f7: 120084626246215828157538855856678449776u128,    f8: 153391974005147988715650772534534875957u128,    f9: 86837725691842740968865538395725325867u128,    f10: 68198029715524678187548970722900193876u128,    f11: 151917789119366573768094736235530178167u128,    f12: 114668498408916468643246581063172640578u128,    f13: 65533711314949557364595280228358172754u128,    f14: 94796928902038869219176506719306281324u128,    f15: 135832155811633629464337931991323143034u128,    f16: 88197415573835596094480142823048037698u128,    f17: 64188965780662179399672137617773840481u128,    f18: 65517870053603420032645768010385741665u128,    f19: 114575036516425533478059638766758409059u128,    f20: 76198953448334894703426641276428962938u128,    f21: 109263499842199640047903063019382268490u128,    f22: 64230461842459213854876536461822480708u128,    f23: 62729141095620952142801360698998932047u128,    f24: 143849141874647537468077485084531455339u128,    f25: 158423513593444577201225835437018140268u128,    f26: 109372291527157337602447472214371550545u128,    f27: 86645324449472246601531337146191921741u128,    f28: 88026069454382460688250206663376717159u128,    f29: 137296078894976326897348732728908139841u128,    f30: 117311701563535690054873511157550047828u128,    f31: 94621683947702260380930330556642702925u128  },  c7: {    f0: 157266585692263169432748518083816618295u128,    f1: 86677348170789000027156131147443557186u128,    f2: 162521268531709082938246788278115119159u128,    f3: 104038968442143258459157865742129909300u128,    f4: 60049831370206298086862839912815861828u128,    f5: 92065270838263588161724692358245264685u128,    f6: 102403394931704788846174182320797996114u128,    f7: 86744001382976675045910956351848401225u128,    f8: 137546180655561108076056018404869753191u128,    f9: 89678581623839706670222579498013315895u128,    f10: 13911653348267379143928883463380883815u128,    f11: 109616997758559601014350933934427423841u128,    f12: 157234559050145056110467932273002239827u128,    f13: 114720701137339631629859795251332461410u128,    f14: 157255307963199385955327972200009384258u128,    f15: 108094807033958817984488532228539573002u128,    f16: 70902625428892611236952963291692877175u128,    f17: 142566462633127032433531710020361869616u128,    f18: 87034648392996604956291596012756222279u128,    f19: 88130565149443671870324176594388781642u128,    f20: 90794921967916445037846635642051909684u128,    f21: 112057438767757703995190256887814518869u128,    f22: 88130827461549207523091912353999911497u128,    f23: 119880831756198184460899244703266522983u128,    f24: 108203921181293991924616096290221553495u128,    f25: 92118795085093294238435397575365903664u128,    f26: 132207609996927537498699975159394430037u128,    f27: 90851712725643296445717670572126652013u128,    f28: 90731885812260910872707057926404133206u128,    f29: 92159075952138897077551333410263680866u128,    f30: 114720701132697431966616368839344472387u128,    f31: 118920583898637034375179436867628646722u128  },  c8: {    f0: 120208391563958328903418431752285145928u128,    f1: 146496827975129713628545140622596143689u128,    f2: 162516038770122090537536818276459181893u128,    f3: 116184260795578461401620612162842740065u128,    f4: 97300828021546254909120508427600292423u128,    f5: 118931901008424116384729958666790529898u128,    f6: 100036301301652645797615676665268169834u128,    f7: 88259985781804142268996583522069936693u128,    f8: 120177358927007647960329552767271456359u128,    f9: 157281614327971246846144182102493985361u128,    f10: 96152543435324426254685485864430223665u128,    f11: 90732169228477843146456407899029977170u128,    f12: 143962642878211164384679925272543652712u128,    f13: 64080597579852368723578581181397102179u128,    f14: 141461154356937785131350677709217230435u128,    f15: 76027425043751003220509970687738075226u128,    f16: 76333687204450208078758577613038439540u128,    f17: 104215936829747759056653563243130086518u128,    f18: 150764531549494692607960815007211538518u128,    f19: 162536115989282966984643484707285716580u128,    f20: 108006593375585103515344389694009011819u128,    f21: 65471116944522798882642801786913697608u128,    f22: 135920100576416446773842260002668373077u128,    f23: 162546687390846958021578236361531540280u128,    f24: 86941307401230900785174445205576036458u128,    f25: 104195206872586117789496688062422275919u128,    f26: 73654539828148610787525649008678104943u128,    f27: 86760223015317314675068160783488144199u128,    f28: 153107513048634507624915175849216461364u128,    f29: 133334437843788124256415413717389227608u128,    f30: 60049826688636443598812574127591215442u128,    f31: 111994015668589605791723790244161858861u128  },  c9: {    f0: 2864421821820229u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  }}"}
Example request Nitro
{
    "userData": "{  c0: {    f0: 83077145937816122806495900722528270u128,    f1: 4194320u128,    f2: 5940801000000u128,    f3: 1725008028u128,    f4: 200u128,    f5: 63041935364884317995582503489240658017u128,    f6: 152114491104286018974290347557927874657u128,    f7: 110768634480232840853030308057786442601u128,    f8: 17220u128,    f9: 435459551856u128,    f10: 0u128,    f11: 5522759u128,    f12: 147573952589676412930u128,    f13: 0u128,    f14: 55340232221128654848u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c1: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c2: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c3: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c4: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c5: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c6: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c7: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  }}",
    "report": "{  c0: {    f0: 156041165208724867994893291255607936132u128,    f1: 130768977891686035315541715535712445804u128,    f2: 65383418747631845451668942677490086501u128,    f3: 133453554045781821053638368587514196281u128,    f4: 145433403805334237040584272683024607081u128,    f5: 134047651686532690120740824502951506789u128,    f6: 71320009559794699847772125248361751408u128,    f7: 267163029976570322151785657395876341806u128,    f8: 160817819495622755897725644230081684404u128,    f9: 272941851679105779343843431121167150575u128,    f10: 214228591534597146723694420824838276484u128,    f11: 308566972771111169730568573940310889569u128,    f12: 215777261078696533994066537595816337280u128,    f13: 17356695615235002434592379545030409878u128,    f14: 146588840453784884285507812561630496080u128,    f15: 116990698558086918130768530081118190705u128,    f16: 48u128,    f17: 0u128,    f18: 0u128,    f19: 311278127076315502006615865277573235712u128,    f20: 18434602281589478005382016318899087191u128,    f21: 296196923782346364347344515300785896824u128,    f22: 13607577391895986u128,    f23: 0u128,    f24: 0u128,    f25: 228297337001793638367232u128,    f26: 0u128,    f27: 0u128,    f28: 3830194944029703872942113292288u128,    f29: 0u128,    f30: 0u128,    f31: 64260028180503855944056814148438196224u128  },  c1: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 3168265u128,    f4: 0u128,    f5: 0u128,    f6: 53154683027456u128,    f7: 0u128,    f8: 0u128,    f9: 891787880038139953152u128,    f10: 0u128,    f11: 0u128,    f12: 14961722611948445101906198528u128,    f13: 0u128,    f14: 0u128,    f15: 251016131220905758603159897987088384u128,    f16: 0u128,    f17: 0u128,    f18: 18609191940988822220653298843924824064u128,    f19: 12376u128,    f20: 0u128,    f21: 0u128,    f22: 207635808256u128,    f23: 0u128,    f24: 0u128,    f25: 154696116615530903167519866259721158656u128,    f26: 1339686114168286448735870861768284517u128,    f27: 135581255570207101336025210130776719874u128,    f28: 63818581871520994197558765282350565585u128,    f29: 65564856601879393085149581411146108801u128,    f30: 146762389218449641779117774626249322515u128,    f31: 110362513673010855677066021725243667559u128  },  c2: {    f0: 16002746782972337931965864452478493029u128,    f1: 14644001385438238062873278203680342278u128,    f2: 65194540546214638698862418496839549708u128,    f3: 134768117700959723719257280041131715945u128,    f4: 129174978964704168457259762063276324961u128,    f5: 134866694584729194185650327887075505015u128,    f6: 66727286348430714979528598992816320627u128,    f7: 73368193228303744347168371053335894580u128,    f8: 112995150077927076331799319934264225882u128,    f9: 138838799990053843979198846947103551827u128,    f10: 15987169892396738171518823335662677609u128,    f11: 5758318542794315194352652920891462407u128,    f12: 113000079033902721746767398808555228170u128,    f13: 4010177419220567237219489109487913732u128,    f14: 134528217138634473357168884064207844876u128,    f15: 73369125904708743234871018926599398755u128,    f16: 156098356535284061250852425596261315684u128,    f17: 178334770360483737106279363259220715636u128,    f18: 5318899907487820504231327696051621448u128,    f19: 130544159967402717464703140836202167136u128,    f20: 61495433261378761377221569305893016452u128,    f21: 80109886944788069628892375208375689401u128,    f22: 223213547107148499901916691600191559011u128,    f23: 93526351341969599928395765756775853518u128,    f24: 328066967803286733555751173264571410849u128,    f25: 2684397273013657863757327789294886307u128,    f26: 64799986648361905643634998290972409904u128,    f27: 135830494139160250812376112114568791562u128,    f28: 6226578792937090300295406101972660482u128,    f29: 241132162914780200453623545392822081234u128,    f30: 112657146426367855321834513441987501799u128,    f31: 193292753893844622311951192780920792549u128  },  c3: {    f0: 311163283690559912319595038132737872778u128,    f1: 96760303577943996719386225872771831398u128,    f2: 175984715883559618610279183548964607604u128,    f3: 2663689140631008987834175462682460761u128,    f4: 304002739640275511601146520524025762050u128,    f5: 63818581871520994197558765282347383015u128,    f6: 20194532657874829472795971456592458057u128,    f7: 65705585491353666819468972964140420400u128,    f8: 63944136253868260283130058248467132428u128,    f9: 152136436337552610183698802060950701593u128,    f10: 76020683808724120286889026781408734575u128,    f11: 65429188436890075243984134354737705009u128,    f12: 12212509222610378100066101573975552560u128,    f13: 113000079271590835567049804839055065862u128,    f14: 4019044399327372785612463289840437764u128,    f15: 5758318546508191979303583952281470037u128,    f16: 132166776360273987790188185068208524291u128,    f17: 82153991858810144096373904179044180332u128,    f18: 111670647723901262781793287833563562242u128,    f19: 194328043647410908834518307650421696235u128,    f20: 218268041859500207966818706242788748915u128,    f21: 25079078371788882315331146770036815537u128,    f22: 148037775849631280873767365114792483542u128,    f23: 53176336557638053536612836490362515475u128,    f24: 64148960774512387748054266522875749897u128,    f25: 1345778839708529072769124175373611072u128,    f26: 240785304473646293300823356102159695617u128,    f27: 100853421796707580202719813319755421965u128,    f28: 1339673755189667405418948083040792726u128,    f29: 545252255993038001153125323912130694u128,    f30: 131224418951694307630119393457135052336u128,    f31: 186604200101300216237594832860654081660u128  },  c4: {    f0: 151442076454958694309384516259033397565u128,    f1: 53754267751600002420756380396769690548u128,    f2: 38583320317302191252033589232148405669u128,    f3: 269853629886089750274292477273977738090u128,    f4: 64799915674087223998116752404004073071u128,    f5: 173815066867041753444214543350864609922u128,    f6: 178334790641036958546392051632144785029u128,    f7: 5758318541556356263566715304038747720u128,    f8: 8037878704330480932469583941996778246u128,    f9: 16007939079830858592278783466347261249u128,    f10: 129028820562530910945368451283204653315u128,    f11: 134866694584729194185650327887075505015u128,    f12: 66716820545853108110057094893837103219u128,    f13: 70709696357167260236536860441195272757u128,    f14: 110767310955139920092937077096758718554u128,    f15: 148179743798592015176329736311643574065u128,    f16: 65564902153128363753206849316466733422u128,    f17: 133214566493886631259278718764959739959u128,    f18: 148142343282919460556148339148213270629u128,    f19: 60393926179409375322764523104801158261u128,    f20: 178334770360483737106274320019404058213u128,    f21: 5318899907487820504231327696051621448u128,    f22: 98392881053462357747614692325863362301u128,    f23: 47635620122499274817710854094932237211u128,    f24: 125916046238350769996723623603554030187u128,    f25: 42367073348703940210810668835456336584u128,    f26: 69554764448561284855044520706529522889u128,    f27: 321635777077897219814308680414906284556u128,    f28: 338958353018834612099369111560341782947u128,    f29: 38989018442987879910431595894032828420u128,    f30: 200585060456456416565815256016028697635u128,    f31: 113000080539404766151095454183708071619u128  },  c5: {    f0: 274058182310213073698379869567079157277u128,    f1: 38989018437727478354095503504011334152u128,    f2: 38989018466818849018979976600472322319u128,    f3: 154794870568586028593448885282733884447u128,    f4: 146740423057232991414017184122780203632u128,    f5: 145390441402958663473615571792072633443u128,    f6: 63036803915573807001153602030616410721u128,    f7: 66732315991791400914259992338106704481u128,    f8: 72289169275695393432103715267242976354u128,    f9: 274197533678460074080788847926867158583u128,    f10: 334358583771684749321960247644460876861u128,    f11: 20797246736834760897094759263011878477u128,    f12: 160265726160169792153968203618539673715u128,    f13: 297748065094797060768728541109671592157u128,    f14: 215806517135598662819482601730797108323u128,    f15: 83510800816051759528811546746845617447u128,    f16: 119366926145396660390153500802562349765u128,    f17: 2668861027275464144411438969854630915u128,    f18: 185329191995047802586170710604654706705u128,    f19: 134501318909712132046868727015199010724u128,    f20: 63881828690870785452010848156958853937u128,    f21: 16207398392744590735859235399005308429u128,    f22: 70699433466311116402404621507927345712u128,    f23: 76058820847395038697194334270189273862u128,    f24: 138844399869116665604734947900481942327u128,    f25: 132166776360273987790188185068210369069u128,    f26: 64053212901470901633388891906250269036u128,    f27: 66711708826815180080076296401322127922u128,    f28: 5758318557030842877664705160674357810u128,    f29: 132103495858426051336753595606505884675u128,    f30: 156098356535284062213126766919824925489u128,    f31: 134487941348414821035639062006692931700u128  },  c6: {    f0: 14644001385438238062874674566267691886u128,    f1: 8037878704330480932469583942034457356u128,    f2: 25286573566032590842024239942980431169u128,    f3: 86851591070750336455717937987011695874u128,    f4: 154794729368112024508226481531827261489u128,    f5: 7980605733146738993104216853291492716u128,    f6: 21891368437567396761060381594140879621u128,    f7: 48927288995289422670628128453884596142u128,    f8: 258188651161112957830656043132237877344u128,    f9: 247435350511448651532640503060700009726u128,    f10: 140991147185042726430993510609684020147u128,    f11: 186895855028583296067933636194189103675u128,    f12: 310380921606265369598655303329151504613u128,    f13: 1334545792534793299069618499518599728u128,    f14: 170256389449774264521830464052290192127u128,    f15: 32178906267433590123702827193682224660u128,    f16: 26605775637424637605596433644789711955u128,    f17: 189443622415353257762176334213025474188u128,    f18: 5342853264578653906286485592712968240u128,    f19: 161088312802107887170240490877921329667u128,    f20: 131838567438345711988079032373837068080u128,    f21: 158682700977576260881918787171669339250u128,    f22: 153388042540986923798725508525548514675u128,    f23: 129174978964704168457259762063275946798u128,    f24: 144150557102786809516715570544695206253u128,    f25: 69355541517365306346436702772240331567u128,    f26: 131854326534425953989548790807839257444u128,    f27: 96401035972455491226775938355212936549u128,    f28: 36838557113664131396806230051861577166u128,    f29: 93030620896728297997269087774846183437u128,    f30: 48455895159343022520539456815019007639u128,    f31: 60470462973832607739571719332693351496u128  },  c7: {    f0: 111286554045745700429853798980599170904u128,    f1: 159594491396310535145975996214441295118u128,    f2: 3123265584284528759357986443633098770u128,    f3: 27924213149871026489480577684460417220u128,    f4: 7537979505587813146428554020066871808u128,    f5: 4009706745221302873941599744029398120u128,    f6: 134522270638860758578803711981129904131u128,    f7: 61660537066589544772767795085874247220u128,    f8: 66697171745289973142282891567400120186u128,    f9: 129497900356820153087834974632772329774u128,    f10: 115980396730468778132908763026635842934u128,    f11: 162671684215386440705831070854483489107u128,    f12: 65564856601879393085149581411146100335u128,    f13: 18858750611153827423867564860201578507u128,    f14: 40128127238809624745549033018192364294u128,    f15: 31040649768467829140912371028387302679u128,    f16: 171721471415875595752886343608701301261u128,    f17: 25511444641014492964411199697713836431u128,    f18: 137483774148730903822291806016009277744u128,    f19: 134683131143311701818273052235679035252u128,    f20: 8037878704330480932469584019699561569u128,    f21: 16007939079830858592278783466347261249u128,    f22: 139823605731424817587317172651689459971u128,    f23: 129461553550906213592447633597354094637u128,    f24: 158682721259985864533589211118920677688u128,    f25: 153388042540986923798725508525548514931u128,    f26: 57182887077423529737261011594587960880u128,    f27: 155582633841412053171711489446214894721u128,    f28: 259618198756576975563839544825774460165u128,    f29: 285257540571690581012408279865360506395u128,    f30: 143942259101289254393138015735355735713u128,    f31: 276769091913700302687871694332370399472u128  },  c8: {    f0: 208677483843474381986081221282734144279u128,    f1: 4019206685837637110311393514962709811u128,    f2: 5253065169906424236904230356720981u128,    f3: 5327337380604407957546176503399976496u128,    f4: 215440179130053926629945665369049275696u128,    f5: 64735240520640672823619335956923168934u128,    f6: 223858872440293529203707385926348113439u128,    f7: 78364581925220137998008671925148662809u128,    f8: 63805033124481727400733895394750499376u128,    f9: 242353360541896434988764114239479612004u128,    f10: 304286754799359235557098391899398618111u128,    f11: 110980589699214444388363971697275108087u128,    f12: 322465345391463321235294760798432122653u128,    f13: 130965269470296274957418782707559732997u128,    f14: 195178764767643465785002849530402749153u128,    f15: 161363187247956332810885816167632432704u128,    f16: 132034620131090132027246741196878735862u128,    f17: 146793663587762942489245982343134624073u128,    f18: 16820681276197282378522478976777610595u128,    f19: 210599363278218916858823088773912449436u128,    f20: 154775816426403934613447333272912881744u128,    f21: 76226415949830531741703331500963753827u128,    f22: 39818987148463290154023705547098975773u128,    f23: 752527138646628024187522218718580494u128,    f24: 126257787084817754195514096142117481248u128,    f25: 194389006404874824774548496616347947362u128,    f26: 279001747494769u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  },  c9: {    f0: 0u128,    f1: 0u128,    f2: 0u128,    f3: 0u128,    f4: 0u128,    f5: 0u128,    f6: 0u128,    f7: 0u128,    f8: 0u128,    f9: 0u128,    f10: 0u128,    f11: 0u128,    f12: 0u128,    f13: 0u128,    f14: 0u128,    f15: 0u128,    f16: 0u128,    f17: 0u128,    f18: 0u128,    f19: 0u128,    f20: 0u128,    f21: 0u128,    f22: 0u128,    f23: 0u128,    f24: 0u128,    f25: 0u128,    f26: 0u128,    f27: 0u128,    f28: 0u128,    f29: 0u128,    f30: 0u128,    f31: 0u128  }}"
}

Response headers:

  • Content-Type: application/json

Note: depending on the success value, either decodedData and decodedReport or errorString exist.

In decodedData, properties htmlResultType, requestBody, and requestContentType are optional strings.

For more information on the decodedData properties, see documentation for AttestationResponse in the Aleo Oracle documentation.

A decoded TEE report is returned in the decodedReport object. It was decoded from the request's report string, parsed, and verified.

decodedReport will be different depending on the type of report detected - Nitro or SGX.

SGX#

{
  "decodedData": {
    "url": "",
    "requestMethod": "",
    "selector": "",
    "responseFormat": "",
    "requestHeaders": {
      "Header name": ""
    },
    "encodingOptions": {
      "value": "",
      "precision": 0
    },
    "htmlResultType": null,
    "requestBody": null,
    "requestContentType": null,
    "attestationData": "",
    "responseStatusCode": 200,
    "timestamp": 0
  },
  "decodedReport": {
    "data": "",
    "securityVersion": 0,
    "debug": false,
    "uniqueId": "",
    "aleoUniqueId": "{ chunk_1: \"0u128\", chunk_2: \"0u128\" }",
    "signerId": "",
    "aleoSignerId": "{ chunk_1: \"0u128\", chunk_2: \"0u128\" }",
    "productId": "",
    "aleoProductId": "0",
    "tcbStatus": 0
  },
  "reportValid": true,
  "errorString": ""
}

Decoded SGX report properties

Name Meaning
data 64 bytes of data that was signed by the enclave. In this case it's a Poseidon8 hash of decodedData (16 bytes)
securityVersion Enclave security version, which is bumped when a security patch is applied without changing the enclave code or data
debug Whether the enclave is running in a debug mode
uniqueId A unique ID of the enclave created by hashing the code and data of the enclave, 32 bytes
aleoUniqueId uniqueId as an Aleo struct of 2 u128 fields - chunk_1 and chunk_2
signerId A hash of the enclave signer's key, which was used to sign the enclave's code and data, 32 bytes
aleoSignerId uniqueId as an Aleo struct of 2 u128 fields - chunk_1 and chunk_2
productId Used to indicate different software modules within the same enclave, 16 bytes
aleoProductId A string of productId encoded as 1 Leo value of type u128
tcbStatus Trusted Computing Base - level of trustworthiness or security assurance
Example response SGX
{
  "decodedData": {
    "url": "archive-api.open-meteo.com/v1/archive?latitude=38.9072&longitude=77.0369&start_date=2023-11-20&end_date=2023-11-21&daily=rain_sum",
    "requestMethod": "GET",
    "selector": "daily.rain_sum.[0]",
    "responseFormat": "json",
    "requestHeaders": {
      "Accept": "*/*",
      "DNT": "1",
      "Upgrade-Insecure-Requests": "1",
      "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
    },
    "encodingOptions": {
      "value": "float",
      "precision": 2
    },
    "attestationData": "0.00",
    "responseStatusCode": 200,
    "timestamp": 1703169427
  },
  "decodedReport": {
    "data": "SuJJLAJ+CUBUrXDMSI31kQ==",
    "securityVersion": 1,
    "debug": false,
    "uniqueId": "WOJsqjAmTXTuSW83DN8EM6goCPE/smuIXT8eVNx6NN8=",
    "aleoUniqueId": "{ chunk_1: \"67815920917700628759894811536473776728u128\", chunk_2: \"296690334406880757170225743286084577448u128\" }",
    "signerId": "9H4s7YPOeZFug8XZRRRlc+Z7Vfit98IfkZsrDpb+Dxs=",
    "aleoSignerId": "{ chunk_1: \"153386052680309655679396867527014121204u128\", chunk_2: \"35972203959719964238382729092704599014u128\" }",
    "productId": "AQAAAAAAAAAAAAAAAAAAAA==",
    "aleoProductId": "1u128",
    "tcbStatus": 5
  },
  "reportValid": true
}

Nitro#

{
  "decodedData": {
    "url": "",
    "requestMethod": "",
    "selector": "",
    "responseFormat": "",
    "requestHeaders": {
      "Header name": ""
    },
    "encodingOptions": {
      "value": "",
      "precision": 0
    },
    "htmlResultType": null,
    "requestBody": null,
    "requestContentType": null,
    "attestationData": "",
    "responseStatusCode": 200,
    "timestamp": 0
  },
  "decodedReport": {
    "moduleID": "",
    "timestamp": 0,
    "digest": "SHA384",
    "pcrs": {
      "0": "",
      "1": "",
      "2": "",
      "3": "",
      "4": "",
      "5": "",
      "6": "",
      "7": "",
      "8": "",
      "9": "",
      "10": "",
      "11": "",
      "12": "",
      "13": "",
      "14": "",
      "15": ""
    },
    "aleoPcrs": "{ pcr_0_chunk_1: 0u128, pcr_0_chunk_2: 0u128, pcr_0_chunk_3: 0u128, pcr_1_chunk_1: 0u128, pcr_1_chunk_2: 0u128, pcr_1_chunk_3: 0u128, pcr_2_chunk_1: 0u128, pcr_2_chunk_2: 0u128, pcr_2_chunk_3: 0u128 }",
    "certificate": "",
    "cabundle": [
      ""
    ],
    "userData": "",
    "nonce": "",
    "protectedCose": "",
    "signature": ""
  },
  "reportValid": true
}

Decoded Nitro report properties

PCR - Platform configuration registers. Some PCRs are automatically generated when the enclave is created, and they can be used to verify that no changes have been made to the enclave since it was created.

Name Meaning
moduleID Issuing Nitro hypervisor module ID
timestamp UTC time when document was created, in milliseconds since UNIX epoch
digest The digest function used for calculating the register values
pcrs Map of all locked PCRs at the moment the attestation document was generated
aleoPcrs PCRs 0-2 encoded as one struct of 9 u128 fields, 3 chunks per PCR value
certificate The public key certificate for the public key that was used to sign the attestation document
cabundle Issuing CA bundle for infrastructure certificate
userData Additional signed user data. In this case it's a Poseidon8 hash of decodedData (16 bytes)
nonce An optional cryptographic nonce provided by the attestation consumer as a proof of authenticity
protectedCose Protected section from the COSE Sign1 payload
signature Signature section from the COSE Sign1 payload of the Nitro enclave attestation document
Example response Nitro
{
  "decodedData": {
    "url": "api.binance.com/api/v3/ticker/price?symbol=BTCUSDC",
    "requestMethod": "GET",
    "selector": "price",
    "responseFormat": "json",
    "encodingOptions": {
      "value": "float",
      "precision": 8
    },
    "attestationData": "59408.01000000",
    "responseStatusCode": 200,
    "timestamp": 1725008028
  },
  "decodedReport": {
    "moduleID": "i-02dd0abe215ecea89-enc0191a27d4c6d8178",
    "timestamp": 1725008028632,
    "digest": "SHA384",
    "pcrs": {
      "0": "/MTO0/S7pzUuKJon+4+3NYJV1rNauv3ItKOYxBikR3mjd5ebqmL8eO9tiaprwRrw",
      "1": "A0OwVs2Ehcp4kN3YM0dteEYK7SqhYVSOTia+3zIXJmliV9Yj6IBfP2BZRrPYsMaq",
      "10": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "11": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "12": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "13": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "14": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "15": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "2": "VaKWvoYpjOfVi/KJutUpxw4NUIVLR1mQ1Pjq0r8C1vtHbnF8yAwFer980PIc38WW",
      "3": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "4": "aWOA5bTYYZ2R/C3qV+cV8017AqJAoCCxEGDeDXi9E7WozprebberstZz1d6ylbIA",
      "5": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "6": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "7": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "8": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "9": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
    },
    "aleoPcrs": "{ pcr_0_chunk_1: 71402194384810807695471133674510927100u128, pcr_0_chunk_2: 161208568844425284329478584127483958658u128, pcr_0_chunk_3: 319153641741947202476283715452178757539u128, pcr_1_chunk_1: 160074764010604965432569395010350367491u128, pcr_1_chunk_2: 139766717364114533801335576914874403398u128, pcr_1_chunk_3: 227000420934281803670652481542768973666u128, pcr_2_chunk_1: 264733590264774658848247826143579120213u128, pcr_2_chunk_2: 334747434232414500511461632767813487886u128, pcr_2_chunk_3: 200411607119746324753107350992173755975u128 }",
    "certificate": "MIICfjCCAgOgAwIBAgIQAZGifUxtgXgAAAAAZtGIhzAKBggqhkjOPQQDAzCBjzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjEMMAoGA1UECwwDQVdTMTowOAYDVQQDDDFpLTAyZGQwYWJlMjE1ZWNlYTg5LmFwLXNvdXRoLTIuYXdzLm5pdHJvLWVuY2xhdmVzMB4XDTI0MDgzMDA4NTMyNFoXDTI0MDgzMDExNTMyN1owgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDDAKBgNVBAsMA0FXUzE/MD0GA1UEAww2aS0wMmRkMGFiZTIxNWVjZWE4OS1lbmMwMTkxYTI3ZDRjNmQ4MTc4LmFwLXNvdXRoLTIuYXdzMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYLtGTsIaI5j2nFBAA+Q1YoQTxug0eR35wx15ZPKWQy65IAlcmO4KixSXL+temkQ8Y5XULsM5BpDWMbFBjV3tp85tw8Y3fI6rdxgE6CKFXEahqXhbloCG/dYgURxTZs/2ox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDAKBggqhkjOPQQDAwNpADBmAjEA06nCyMfeZBNUCTKvBNLWcaWn0D6RdVmkCYVdaLXnHrih81laLWIY/yYo+sBU5SXvAjEAz+ccBSTzjNRqkYoTQ8CcD4pByt+ATFreF+pmVv2MWMuiBnChJLhKW8tIdBazOE2o",
    "cabundle": [
      "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"
    ],
    "userData": "X/FUY0m5UiimPFAzL9O0ag==",
    "nonce": "zM5D5X8cRLqdi6cMnNFRZy7w+QbjuYqsRfZvnlBoY20=",
    "protectedCose": "oQE4Ig==",
    "signature": "K3j8xHNw6rxwdGNvnSJAFqLrt7KWznesWDkdbnK8zyazRkcAY/Oj2/QdDs8WyscTWVe1fjTWc+6QACCru5DBl4EH10v5X4Nd/F5iUUQvCtYZBw/Hxuv49T2ScRcNKMD9"
  },
  "reportValid": true
}