mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
gh-134696: align OpenSSL and HACL*-based hash functions constructors AC signatures (#134713)
OpenSSL and HACL*-based hash functions constructors now support both `data` and `string` parameters. Previously these constructor functions inconsistently supported sometimes `data` and sometimes `string`, while the documentation expected `data` to be given in all cases.
This commit is contained in:
parent
4d31d19a1d
commit
c6e63d9d35
16 changed files with 830 additions and 421 deletions
|
|
@ -655,8 +655,7 @@ py_blake2b_or_s_new(PyTypeObject *type, PyObject *data, int digest_size,
|
|||
/*[clinic input]
|
||||
@classmethod
|
||||
_blake2.blake2b.__new__ as py_blake2b_new
|
||||
data: object(c_default="NULL") = b''
|
||||
/
|
||||
data as data_obj: object(c_default="NULL") = b''
|
||||
*
|
||||
digest_size: int(c_default="HACL_HASH_BLAKE2B_OUT_BYTES") = _blake2.blake2b.MAX_DIGEST_SIZE
|
||||
key: Py_buffer(c_default="NULL", py_default="b''") = None
|
||||
|
|
@ -670,26 +669,31 @@ _blake2.blake2b.__new__ as py_blake2b_new
|
|||
inner_size: int = 0
|
||||
last_node: bool = False
|
||||
usedforsecurity: bool = True
|
||||
string: object(c_default="NULL") = None
|
||||
|
||||
Return a new BLAKE2b hash object.
|
||||
[clinic start generated code]*/
|
||||
|
||||
static PyObject *
|
||||
py_blake2b_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
|
||||
py_blake2b_new_impl(PyTypeObject *type, PyObject *data_obj, int digest_size,
|
||||
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
|
||||
int fanout, int depth, unsigned long leaf_size,
|
||||
unsigned long long node_offset, int node_depth,
|
||||
int inner_size, int last_node, int usedforsecurity)
|
||||
/*[clinic end generated code: output=32bfd8f043c6896f input=8fee2b7b11428b2d]*/
|
||||
int inner_size, int last_node, int usedforsecurity,
|
||||
PyObject *string)
|
||||
/*[clinic end generated code: output=de64bd850606b6a0 input=78cf60a2922d2f90]*/
|
||||
{
|
||||
PyObject *data;
|
||||
if (_Py_hashlib_data_argument(&data, data_obj, string) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
return py_blake2b_or_s_new(type, data, digest_size, key, salt, person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
|
||||
}
|
||||
|
||||
/*[clinic input]
|
||||
@classmethod
|
||||
_blake2.blake2s.__new__ as py_blake2s_new
|
||||
data: object(c_default="NULL") = b''
|
||||
/
|
||||
data as data_obj: object(c_default="NULL") = b''
|
||||
*
|
||||
digest_size: int(c_default="HACL_HASH_BLAKE2S_OUT_BYTES") = _blake2.blake2s.MAX_DIGEST_SIZE
|
||||
key: Py_buffer(c_default="NULL", py_default="b''") = None
|
||||
|
|
@ -703,18 +707,24 @@ _blake2.blake2s.__new__ as py_blake2s_new
|
|||
inner_size: int = 0
|
||||
last_node: bool = False
|
||||
usedforsecurity: bool = True
|
||||
string: object(c_default="NULL") = None
|
||||
|
||||
Return a new BLAKE2s hash object.
|
||||
[clinic start generated code]*/
|
||||
|
||||
static PyObject *
|
||||
py_blake2s_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
|
||||
py_blake2s_new_impl(PyTypeObject *type, PyObject *data_obj, int digest_size,
|
||||
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
|
||||
int fanout, int depth, unsigned long leaf_size,
|
||||
unsigned long long node_offset, int node_depth,
|
||||
int inner_size, int last_node, int usedforsecurity)
|
||||
/*[clinic end generated code: output=556181f73905c686 input=8165a11980eac7f3]*/
|
||||
int inner_size, int last_node, int usedforsecurity,
|
||||
PyObject *string)
|
||||
/*[clinic end generated code: output=582a0c4295cc3a3c input=6843d6332eefd295]*/
|
||||
{
|
||||
PyObject *data;
|
||||
if (_Py_hashlib_data_argument(&data, data_obj, string) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
return py_blake2b_or_s_new(type, data, digest_size, key, salt, person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue