{
  "slug": "gost-kuznyechik-cipher",
  "name": "gizza-ai/gost-kuznyechik-cipher",
  "version": "0.1.0",
  "title": "GOST Kuznyechik Cipher — Encrypt/decrypt (GOST R 34.12-2015) — gizza.ai",
  "description": "Encrypt or decrypt text with the GOST Kuznyechik cipher (GOST R 34.12-2015) in CBC, CTR, CFB, OFB or ECB mode — 256-bit key, hex/base64 I/O, in your browser.",
  "tags": [
    "kuznyechik",
    "gost",
    "gost r 34.12-2015",
    "gost encrypt",
    "gost decrypt",
    "cbc",
    "ctr",
    "cfb",
    "ofb",
    "cipher"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/gost-kuznyechik-cipher/",
    "markdown": "https://gizza.ai/tools/gost-kuznyechik-cipher/index.md",
    "descriptor": "https://gizza.ai/tools/gost-kuznyechik-cipher/tool.json",
    "deep_link_example": "https://gizza.ai/tools/gost-kuznyechik-cipher/?data=Text%20to%20encrypt%E2%80%A6&operation=encrypt&cipher=cbc&key=base64%20or%20hex%20key&iv=base64%20or%20hex%20iv&format=base64"
  },
  "cli": "gizza tool gost-kuznyechik-cipher \"Text to encrypt…\" 'key=base64 or hex key'",
  "tool": {
    "description": "Encrypt or decrypt text with the GOST R 34.12-2015 'Kuznyechik' 128-bit block cipher (RFC 7801) using a raw key you provide. cipher = cbc (default), ctr, cfb, ofb, or ecb. The key is a fixed 256-bit (32-byte) value; cbc/ctr/cfb/ofb need a 16-byte iv, ecb none. key, iv and ciphertext are hex or base64 (set format; default base64); the plaintext is UTF-8. cbc/ecb use PKCS7 padding. This is a low-level tool — for passphrase encryption with a safe random salt+nonce use text-encrypt instead.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "cipher": {
          "default": "cbc",
          "description": "Mode of operation: cbc (default), ctr, cfb, ofb, or ecb (insecure — reveals patterns; avoid).",
          "enum": [
            "cbc",
            "ctr",
            "cfb",
            "ofb",
            "ecb"
          ],
          "type": "string"
        },
        "data": {
          "description": "For encrypt: the plaintext. For decrypt: the ciphertext, encoded with `format`.",
          "type": "string"
        },
        "format": {
          "default": "base64",
          "description": "Encoding for the key, iv, and ciphertext (base64 default, or hex). The plaintext is always UTF-8 text.",
          "enum": [
            "base64",
            "hex"
          ],
          "type": "string"
        },
        "iv": {
          "description": "The 16-byte IV/nonce, encoded with `format`. Required for cbc/ctr; omit for ecb.",
          "type": "string"
        },
        "key": {
          "description": "The 32-byte (256-bit) Kuznyechik key, encoded with `format`.",
          "type": "string"
        },
        "operation": {
          "default": "encrypt",
          "description": "encrypt (default) or decrypt.",
          "enum": [
            "encrypt",
            "decrypt"
          ],
          "type": "string"
        }
      },
      "required": [
        "data",
        "key"
      ],
      "type": "object"
    }
  }
}