Skip to content

Commit

Permalink
Check for length overflow
Browse files Browse the repository at this point in the history
  • Loading branch information
solney committed Nov 8, 2023
1 parent cfa7306 commit 12f9de0
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/Crypto/Cipher/_mode_ccm.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,13 @@ def _start_mac(self):

# Formatting control information and nonce (A.2.1)
q = 15 - len(self.nonce) # length of Q, the encoded message length
# Limit on plaintext length imposed by choice of nonce (A.1)
if self._msg_len >= 2**(8*q):
raise OverflowError("Combined plaintext and nonce too long")
flags = (64 * (self._assoc_len > 0) + 8 * ((self._mac_len - 2) // 2) +
(q - 1))
b_0 = struct.pack("B", flags) + self.nonce + long_to_bytes(self._msg_len, q)
assert len(b_0) == 16

# Formatting associated data (A.2.2)
# Encoded 'a' is concatenated with the associated data 'A'
Expand Down

0 comments on commit 12f9de0

Please sign in to comment.