{
  "slug": "rsa-sign",
  "name": "gizza-ai/rsa-sign",
  "version": "0.1.0",
  "title": "RSA Sign — Sign a message with an RSA key (PKCS#1 / PSS) — gizza.ai",
  "description": "Sign a message with an RSA private key (PKCS#1 v1.5 or PSS, SHA-256/384/512) and get a base64 signature, in your browser. Nothing is uploaded.",
  "tags": [
    "rsa sign",
    "rsa signature",
    "pkcs1",
    "rsa pss",
    "digital signature",
    "crypto"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/rsa-sign/",
    "markdown": "https://gizza.ai/tools/rsa-sign/index.md",
    "descriptor": "https://gizza.ai/tools/rsa-sign/tool.json",
    "deep_link_example": "https://gizza.ai/tools/rsa-sign/?message=The%20message%20to%20sign&private_key=-----BEGIN%20PRIVATE%20KEY-----%0A...%0A-----END%20PRIVATE%20KEY-----&scheme=pkcs1v15&hash=sha256"
  },
  "cli": "gizza tool rsa-sign \"The message to sign\" 'private_key=-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----'",
  "tool": {
    "description": "Sign a message with an RSA private key and return a base64-encoded signature. scheme=pkcs1v15 (default, deterministic RSASSA-PKCS1-v1_5) or pss (randomized RSASSA-PSS); hash=sha256 (default), sha384, or sha512. The private key is PEM-encoded (PKCS#8 or PKCS#1). The signature verifies with the matching public key. Runs locally — the private key and message never leave the device.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "hash": {
          "default": "sha256",
          "description": "Digest algorithm to hash the message with before signing (default sha256).",
          "enum": [
            "sha256",
            "sha384",
            "sha512"
          ],
          "type": "string"
        },
        "message": {
          "description": "The message to sign.",
          "type": "string"
        },
        "private_key": {
          "description": "Your RSA private key, PEM-encoded (PKCS#8 '-----BEGIN PRIVATE KEY-----' or PKCS#1 '-----BEGIN RSA PRIVATE KEY-----').",
          "type": "string"
        },
        "scheme": {
          "default": "pkcs1v15",
          "description": "Signature scheme: pkcs1v15 (default, deterministic) or pss (randomized).",
          "enum": [
            "pkcs1v15",
            "pss"
          ],
          "type": "string"
        }
      },
      "required": [
        "message",
        "private_key"
      ],
      "type": "object"
    }
  }
}