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": "QmxhYmxhIGJsYWNrIHNoZWVwLiBEbyB5b3UgaGF2ZSBhbnkgd29vZHM/IFllcywgc2lyISBZZXMsIHNpciE=",
          "publicKey": "VGhpcyBpcyBub3QgYSByZWFsIGxpZmUhIFNvbWVib2R5LCBnaXZlIG1lIHRpY2tldHMhIEkgbmVlZCB0aWNrZXRzIQ=="
        },
        "INFO_SNAPSHOT": {
          "signature": "UmVhbGx5PyBUaGlzIGlzIHdoYXQgeW91IHdhbnQ/IEkgZG8gbm90IGtub3cgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQu",
          "publicKey": "VGhhcyBpcyBub3QgYSByZWFsIGxpZmUhIEV2ZXJ5Ym9keSwgZ2l2ZSBtZSB0aWNrZXRzISBJIG5lZWQgdGlja2V0cyE="
        }
      }
    }
  ],
  "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",
          "contentEncoding": "base64"
        },
        "publicKey": {
          "type": "string",
          "contentEncoding": "base64"
        }
      },
      "additionalProperties": false
    }
  }
}
Clone this wiki locally