{
  "slug": "chacha20-cipher",
  "name": "gizza-ai/chacha20-cipher",
  "version": "0.1.0",
  "title": "ChaCha20 Cipher — Encrypt/decrypt with ChaCha20 & ChaCha20-Poly1305 — gizza.ai",
  "description": "Encrypt or decrypt text with ChaCha20 or ChaCha20-Poly1305 AEAD (RFC 8439) in your browser — 32-byte key, 12-byte nonce, hex/base64 I/O. Nothing is uploaded.",
  "tags": [
    "chacha20",
    "chacha20-poly1305",
    "chacha20 encrypt",
    "chacha20 decrypt",
    "aead",
    "rfc 8439",
    "stream cipher",
    "poly1305"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/chacha20-cipher/",
    "markdown": "https://gizza.ai/tools/chacha20-cipher/index.md",
    "descriptor": "https://gizza.ai/tools/chacha20-cipher/tool.json",
    "deep_link_example": "https://gizza.ai/tools/chacha20-cipher/?data=Text%20to%20encrypt%E2%80%A6&operation=encrypt&key=32-char%20passphrase%2C%20or%2064-char%20hex&nonce=12-char%20string%2C%20or%2024-char%20hex&aad=Authenticated%20but%20not%20encrypted&mode=stream&key_format=text&counter=0&format=hex"
  },
  "cli": "gizza tool chacha20-cipher \"Text to encrypt…\" 'key=32-char passphrase, or 64-char hex' 'nonce=12-char string, or 24-char hex'",
  "tool": {
    "description": "Encrypt or decrypt data with the ChaCha20 stream cipher or the ChaCha20-Poly1305 AEAD construction (RFC 8439). mode = stream or aead; key = 32 bytes, nonce = 12 bytes; optional AAD for aead.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "aad": {
          "type": "string"
        },
        "counter": {
          "default": 0,
          "minimum": 0,
          "type": "integer"
        },
        "data": {
          "type": "string"
        },
        "format": {
          "default": "hex",
          "enum": [
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "key_format": {
          "default": "text",
          "enum": [
            "text",
            "encoded"
          ],
          "type": "string"
        },
        "mode": {
          "default": "stream",
          "enum": [
            "stream",
            "aead"
          ],
          "type": "string"
        },
        "nonce": {
          "type": "string"
        },
        "operation": {
          "default": "encrypt",
          "enum": [
            "encrypt",
            "decrypt"
          ],
          "type": "string"
        }
      },
      "required": [
        "data",
        "key",
        "nonce"
      ],
      "type": "object"
    }
  }
}