Skip to content

High Level Proof Schema

Sean Wu edited this page Dec 2, 2020 · 2 revisions
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "examples": [
    {
      "assets": {
        "iVBORw0KGgoAAAANSUhEUgAAAAYAAAADCAYAAACwAX77AAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAABAaVRYdENyZWF0aW9uIFRpbWUAAAAAADIwMjDlubTljYHkuIDmnIgxMOaXpSAo6YCx5LqMKSAyMOaZgjU55YiGMzfnp5JnJvHNAAAAFUlEQVQImWM0MTH5z4AFMGETxCsBAHRhAaHOZzVQAAAAAElFTkSuQmCC": {
          "mimeType": "image/png"
        },
        "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAABHNCSVQICAgIfAhkiAAAABZJREFUCJlj/Pnz538GJMDEgAYICwAAAbkD8p660MIAAAAASUVORK5CYII=": {
          "mimeType": "application/octet-stream"
        }
      },
      "truth": {
        "timestamp": 1605013013193,
        "providers": {
          "CAPTURE": {
            "GEOLOCATION_LATITUDE": 22.45321,
            "GEOLOCATION_LONGITUDE": 120.997542,
            "DEVICE_NAME": "Sony Xperia 1",
            "SECURE_CONTEXT": false
          },
          "PROOF_MODE": {
            "GEOLOCATION_LATITUDE": 22.38985,
            "DEVICE_NAME": "xperia1",
            "HUMIDITY": 0.8
          }
        }
      },
      "signatures": {
        "CAPTURE": {
          "signature": "93ae7d494fad0fb30cbf3ae746a39c4bc7a0f8bbf87fbb587a3f3c01f3c5ce20",
          "publicKey": "1a62fe46d4419759c7038e56b71ffb2b695ec62791a66e6fed280ee2579f5e373d617d7c58f27b7fe23271889e26e23bae5ea520e9c806ea2855214b1d57d536"
        },
        "INFO_SNAPSHOT": {
          "signature": "141f1b129417b6916df26495c423731f46580d0edd261c28f30e6256a11cd167",
          "publicKey": "5501c18665070005d71f8cd1766ff3cea5a18572ac55c76a558bd848ccb6abbff207afffa890cd0979def351538d4240b11a0c53769ef06972f385e73168a9bb"
        }
      }
    }
  ],
  "type": "object",
  "required": ["assets", "truth", "signatures"],
  "properties": {
    "assets": { "$ref": "#/definitions/assets" },
    "truth": { "$ref": "#/definitions/truth" },
    "signatures": { "$ref": "#/definitions/signatures" }
  },
  "additionalProperties": false,
  "definitions": {
    "assets": {
      "type": "object",
      "propertyNames": { "contentEncoding": "base64" },
      "additionalProperties": {
        "type": "object",
        "required": ["mimeType"],
        "properties": { "mimeType": { "type": "string" } }
      }
    },
    "truth": {
      "type": "object",
      "required": ["timestamp", "providers"],
      "properties": {
        "timestamp": { "type": "integer" },
        "providers": {
          "type": "object",
          "additionalProperties": { "$ref": "#/definitions/facts" }
        }
      },
      "additionalProperties": false
    },
    "facts": {
      "type": "object",
      "additionalProperties": {
        "type": ["boolean", "number", "integer", "string"]
      }
    },
    "signatures": {
      "type": "object",
      "additionalProperties": { "$ref": "#/definitions/signature" }
    },
    "signature": {
      "type": "object",
      "required": ["signature", "publicKey"],
      "properties": {
        "signature": { "type": "string" },
        "publicKey": { "type": "string" }
      },
      "additionalProperties": false
    }
  }
}
Clone this wiki locally