{"record":{"id":"6f94d8fff8663440","repo":"sqlmapproject/sqlmap","slug":"kerberos-ciphertext-too-short","errorCode":null,"errorMessage":"Kerberos ciphertext too short","messagePattern":"Kerberos ciphertext too short","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"extra/kerberos/crypto.py","lineNumber":187,"sourceCode":"        secondLast = _xor(aes.decryptBlock(bytes(blocks[-1] + omitted)), prev)\n        return bytes(out) + secondLast + lastPlain\n\n    # --- authenticated encryption (RFC 3961 section 5.3) --------------------------------------------\n    def _keys(self, key, usage):\n        ke = self.dk(key, struct.pack(\">IB\", usage, 0xAA))\n        ki = self.dk(key, struct.pack(\">IB\", usage, 0x55))\n        return ke, ki\n\n    def encrypt(self, key, usage, plaintext, confounder=None):\n        ke, ki = self._keys(key, usage)\n        if confounder is None:\n            confounder = os.urandom(self.blocksize)\n        basic = confounder + plaintext\n        return self._basicEncrypt(ke, basic) + hmac.new(ki, basic, hashlib.sha1).digest()[:self.macsize]\n\n    def decrypt(self, key, usage, ciphertext):\n        if len(ciphertext) < self.blocksize + self.macsize:   # confounder block + HMAC; guards a hostile short reply\n            raise ValueError(\"Kerberos ciphertext too short\")\n        ke, ki = self._keys(key, usage)\n        ct, mac = ciphertext[:-self.macsize], ciphertext[-self.macsize:]\n        basic = self._basicDecrypt(ke, ct)\n        if not _eq(mac, hmac.new(ki, basic, hashlib.sha1).digest()[:self.macsize]):\n            raise ValueError(\"Kerberos integrity check failed (wrong key or corrupted ciphertext)\")\n        return basic[self.blocksize:]\n\ndef _rc4(key, data):\n    \"\"\"RC4 (ARCFOUR) stream cipher.\"\"\"\n\n    key, data = bytearray(key), bytearray(data)\n    if not key:\n        raise ValueError(\"RC4 requires a non-empty key\")\n    s = list(range(256))\n    j = 0\n    for i in range(256):\n        j = (j + s[i] + key[i % len(key)]) & 0xff\n        s[i], s[j] = s[j], s[i]","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/extra/kerberos/crypto.py#L169-L205","documentation":"Error \"Kerberos ciphertext too short\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at extra/kerberos/crypto.py:187 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0a35b20e3953d341be6c7ac75ccb0b3362540c8d","analyzedAt":"2026-08-26T23:02:52.002Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}