{
  "$defs": {
    "byte_array": {
      "items": {
        "maximum": 255,
        "minimum": 0,
        "type": "integer"
      },
      "type": "array"
    }
  },
  "$id": "https://raw.githubusercontent.com/lowRISC/opentitan/master/sw/host/cryptotest/testvectors/data/schemas/aes_block_schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "A list of testvectors for AES block cipher testing",
  "items": {
    "additionalProperties": false,
    "properties": {
      "algorithm": {
        "description": "Should be AES",
        "enum": [
          "aes"
        ],
        "type": "string"
      },
      "ciphertext": {
        "$ref": "#/$defs/byte_array",
        "description": "Ciphertext"
      },
      "iv": {
        "$ref": "#/$defs/byte_array",
        "description": "AES intermediate value"
      },
      "key": {
        "$ref": "#/$defs/byte_array",
        "description": "AES key"
      },
      "key_len": {
        "description": "Length in bits of the key",
        "enum": [
          128,
          192,
          256
        ],
        "type": "integer"
      },
      "mode": {
        "description": "Block cipher mode of operation",
        "enum": [
          "cbc",
          "cfb1",
          "cfb8",
          "cfb128",
          "ecb",
          "ofb"
        ],
        "type": "string"
      },
      "operation": {
        "description": "AES operation",
        "enum": [
          "encrypt",
          "decrypt"
        ],
        "type": "string"
      },
      "padding": {
        "description": "Padding scheme",
        "enum": [
          "null",
          "pkcs7",
          "iso9797m2"
        ],
        "type": "string"
      },
      "plaintext": {
        "$ref": "#/$defs/byte_array",
        "description": "Plaintext"
      }
    },
    "type": "object"
  },
  "title": "Cryptotest AES Block Cipher Testvector",
  "type": "array"
}