Skip to content

Commit 3d378b7

Browse files
committed
Add MessageLimitReachedError
1 parent b8c255f commit 3d378b7

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/Crypto/Protocol/HPKE.py

+6
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class AEAD(IntEnum):
3131
class DeserializeError(ValueError):
3232
pass
3333

34+
class MessageLimitReachedError(ValueError):
35+
pass
3436

3537
# CURVE to (KEM ID, KDF ID, HASH)
3638
_Curve_Config = {
@@ -136,6 +138,8 @@ def __init__(self,
136138
sender_key)
137139

138140
self._sequence = 0
141+
self._max_sequence = (1 << (8 * self._Nn)) - 1
142+
139143
self._key, \
140144
self._base_nonce, \
141145
self._export_secret = self._key_schedule(shared_secret,
@@ -295,6 +299,8 @@ def _new_cipher(self):
295299
cipher = ChaCha20_Poly1305.new(key=self._key, nonce=nonce)
296300
else:
297301
raise ValueError(f"Unknown AEAD cipher ID {self._aead_id:#x}")
302+
if self._sequence >= self._max_sequence:
303+
raise MessageLimitReachedError()
298304
self._sequence += 1
299305
return cipher
300306

0 commit comments

Comments
 (0)