{
  "slug": "cmac-generate",
  "name": "gizza-ai/cmac-generate",
  "version": "0.1.0",
  "title": "AES-CMAC Generator — AES-128/192/256 CMAC (RFC 4493) — gizza.ai",
  "description": "Generate an AES-CMAC (NIST SP 800-38B / RFC 4493) of any message and key in your browser — AES-128/192/256 by key length, hex or base64 output. Free and private.",
  "tags": [
    "cmac",
    "aes-cmac",
    "aes",
    "aes-128",
    "aes-256",
    "mac",
    "block-cipher-mac",
    "message-authentication",
    "rfc-4493",
    "nist-sp-800-38b",
    "hex",
    "base64",
    "cryptography"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/cmac-generate/",
    "markdown": "https://gizza.ai/tools/cmac-generate/index.md",
    "descriptor": "https://gizza.ai/tools/cmac-generate/tool.json",
    "deep_link_example": "https://gizza.ai/tools/cmac-generate/?message=The%20data%20to%20authenticate&key=16%2C%2024%2C%20or%2032%20bytes%20%28AES-128%2F192%2F256%29&message_encoding=text&key_encoding=text&output_format=hex&uppercase=true"
  },
  "cli": "gizza tool cmac-generate \"The data to authenticate\" 'key=16, 24, or 32 bytes (AES-128/192/256)'",
  "tool": {
    "description": "Compute an AES-CMAC (Cipher-based Message Authentication Code, NIST SP 800-38B / RFC 4493) of a message with a secret AES key. CMAC is a block-cipher MAC built on AES; the AES variant is selected by the key length — 16 bytes for AES-128, 24 for AES-192, 32 for AES-256 — and the tag is always 16 bytes. By default the message and key are read as UTF-8 text and the tag is returned as lowercase hex; set message_encoding/key_encoding to 'hex' or 'base64' to decode binary inputs first (a 16-byte key is 32 hex chars), output_format='base64' for a base64 tag, or uppercase=true for uppercase hex. Use this to authenticate messages with a symmetric key when a block cipher (rather than a hash) is the available primitive — e.g. AES-CMAC in IoT/smart-card and IEEE 802.1X / RFC 4493 contexts. For a HASH-based keyed MAC use the hmac-generate tool instead.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "key": {
          "type": "string"
        },
        "key_encoding": {
          "default": "text",
          "enum": [
            "text",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "message_encoding": {
          "default": "text",
          "enum": [
            "text",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "output_format": {
          "default": "hex",
          "enum": [
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "uppercase": {
          "default": false,
          "type": "boolean"
        }
      },
      "required": [
        "message",
        "key"
      ],
      "type": "object"
    }
  }
}