{"record":{"id":"7adeb76b1b2e89e1","repo":"sqlmapproject/sqlmap","slug":"rc4-requires-a-non-empty-key","errorCode":null,"errorMessage":"RC4 requires a non-empty key","messagePattern":"RC4 requires a non-empty key","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"extra/kerberos/crypto.py","lineNumber":200,"sourceCode":"        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]\n\n    out = bytearray(len(data))\n    i = j = 0\n    for n in range(len(data)):\n        i = (i + 1) & 0xff\n        j = (j + s[i]) & 0xff\n        s[i], s[j] = s[j], s[i]\n        out[n] = data[n] ^ s[(s[i] + s[j]) & 0xff]\n    return bytes(out)\n\nclass RC4Enctype(object):\n    \"\"\"rc4-hmac (etype 23, RFC 4757). The long-term key is the NT hash MD4(UTF-16LE(password)); the\n    salt and iteration count are unused. Legacy, but still enabled in many AD environments.\"\"\"","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/extra/kerberos/crypto.py#L182-L218","documentation":"Error \"RC4 requires a non-empty key\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at extra/kerberos/crypto.py:200 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"}