Skip to content

Commit aca4670

Browse files
authored
bpo-40645: restrict HMAC key len to INT_MAX (GH-20238)
Signed-off-by: Christian Heimes <[email protected]> Automerge-Triggered-By: @tiran
1 parent dd74b6f commit aca4670

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

Modules/_hashopenssl.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1403,6 +1403,12 @@ _hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
14031403
HMACobject *self = NULL;
14041404
int r;
14051405

1406+
if (key->len > INT_MAX) {
1407+
PyErr_SetString(PyExc_OverflowError,
1408+
"key is too long.");
1409+
return NULL;
1410+
}
1411+
14061412
if ((digestmod == NULL) || !strlen(digestmod)) {
14071413
PyErr_SetString(
14081414
PyExc_TypeError, "Missing required parameter 'digestmod'.");
@@ -1424,7 +1430,7 @@ _hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
14241430
r = HMAC_Init_ex(
14251431
ctx,
14261432
(const char*)key->buf,
1427-
key->len,
1433+
(int)key->len,
14281434
digest,
14291435
NULL /*impl*/);
14301436
if (r == 0) {

0 commit comments

Comments
 (0)