{
  "slug": "shamir-secret-recover",
  "name": "gizza-ai/shamir-secret-recover",
  "version": "0.1.0",
  "title": "Shamir Secret Recover — combine threshold shares locally — gizza.ai",
  "description": "Paste Shamir shares to recover a secret locally, with GF(256) format detection, threshold checks and redundant-share verification.",
  "tags": [
    "shamir secret sharing",
    "shamir secret recover",
    "secret sharing combine",
    "threshold shares",
    "sss combine",
    "gf256",
    "vault unseal",
    "base64 shares",
    "hex shares"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/shamir-secret-recover/",
    "markdown": "https://gizza.ai/tools/shamir-secret-recover/index.md",
    "descriptor": "https://gizza.ai/tools/shamir-secret-recover/tool.json",
    "deep_link_example": "https://gizza.ai/tools/shamir-secret-recover/?shares=1-68b509858f664dea3c3829%0A2-73fb23909fc0cdded4b830%0A3-732b46797f86f75b9aec7d&share_format=auto&share_encoding=auto&field_poly=auto&threshold=0&verify=true&secret_encoding=auto&output=secret"
  },
  "cli": "gizza tool shamir-secret-recover \"1-68b509858f664dea3c3829\n2-73fb23909fc0cdded4b830\n3-732b46797f86f75b9aec7d\"",
  "tool": {
    "description": "Combine Shamir secret-sharing shares locally in the browser. Supports index-prefixed hex shares, leading-index sss: base64/base64url shares, trailing-index raw-byte shares, GF(256) polynomials 0x11b and 0x11d, optional threshold K, redundant-share verification, and text/hex/base64/binary output.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "field_poly": {
          "default": "auto",
          "description": "GF(256) reduction polynomial: auto, 0x11b (AES/Vault-style), or 0x11d (secrets.js-lineage). Auto uses redundant shares to confirm when possible. Default auto.",
          "enum": [
            "auto",
            "0x11b",
            "0x11d"
          ],
          "type": "string"
        },
        "output": {
          "default": "secret",
          "description": "Output shape: secret (just the recovered value), report (secret plus parsing and verification details), or json (structured result). Default secret.",
          "enum": [
            "secret",
            "report",
            "json"
          ],
          "type": "string"
        },
        "secret_encoding": {
          "default": "auto",
          "description": "Recovered secret rendering: auto (print text if safely printable UTF-8, otherwise hex), text, hex, base64, or binary bits. Default auto.",
          "enum": [
            "auto",
            "text",
            "hex",
            "base64",
            "binary"
          ],
          "type": "string"
        },
        "share_encoding": {
          "default": "auto",
          "description": "How each share payload is encoded: auto (prefer hex when ambiguous), hex, or base64/base64url with optional padding. Default auto.",
          "enum": [
            "auto",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "share_format": {
          "default": "auto",
          "description": "Share layout: auto (detect common forms), index-prefix (decimal x plus separator plus payload, e.g. 1-deadbeef), leading-index (decoded bytes start with x), or trailing-index (decoded bytes end with x). Default auto.",
          "enum": [
            "auto",
            "index-prefix",
            "leading-index",
            "trailing-index"
          ],
          "type": "string"
        },
        "shares": {
          "description": "Shamir shares to combine, one per line. Blank lines and # comments are ignored. Accepts index-prefixed shares such as 1-68b5..., leading-index sss: base64/base64url shares, and trailing-index hex/base64 shares. Maximum 255 shares.",
          "type": "string"
        },
        "threshold": {
          "default": 0,
          "description": "Threshold K. Use 0 (default) to combine every share supplied, or set 2-255 when you have extra shares and want redundancy checks.",
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        },
        "verify": {
          "default": true,
          "description": "When more shares than the threshold are supplied, cross-check alternate subsets and report or reject corrupted/foreign shares. Default true.",
          "type": "boolean"
        }
      },
      "required": [
        "shares"
      ],
      "type": "object"
    }
  }
}