PyMutex mutex;
} Blake2Object;
+#define _Blake2Object_CAST(op) ((Blake2Object *)(op))
+
#include "clinic/blake2module.c.h"
/*[clinic input]
static PyObject *
-py_blake2b_get_name(Blake2Object *self, void *closure)
+py_blake2b_get_name(PyObject *op, void *Py_UNUSED(closure))
{
+ Blake2Object *self = _Blake2Object_CAST(op);
return PyUnicode_FromString(is_blake2b(self->impl) ? "blake2b" : "blake2s");
}
static PyObject *
-py_blake2b_get_block_size(Blake2Object *self, void *closure)
+py_blake2b_get_block_size(PyObject *op, void *Py_UNUSED(closure))
{
+ Blake2Object *self = _Blake2Object_CAST(op);
return PyLong_FromLong(is_blake2b(self->impl) ? HACL_HASH_BLAKE2B_BLOCK_BYTES : HACL_HASH_BLAKE2S_BLOCK_BYTES);
}
static PyObject *
-py_blake2b_get_digest_size(Blake2Object *self, void *closure)
+py_blake2b_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
+ Blake2Object *self = _Blake2Object_CAST(op);
switch (self->impl) {
#if HACL_CAN_COMPILE_SIMD256
case Blake2b_256:
static PyGetSetDef py_blake2b_getsetters[] = {
- {"name", (getter)py_blake2b_get_name,
- NULL, NULL, NULL},
- {"block_size", (getter)py_blake2b_get_block_size,
- NULL, NULL, NULL},
- {"digest_size", (getter)py_blake2b_get_digest_size,
- NULL, NULL, NULL},
- {NULL}
+ {"name", py_blake2b_get_name, NULL, NULL, NULL},
+ {"block_size", py_blake2b_get_block_size, NULL, NULL, NULL},
+ {"digest_size", py_blake2b_get_digest_size, NULL, NULL, NULL},
+ {NULL} /* Sentinel */
};
+
static int
py_blake2_clear(PyObject *op)
{
Hacl_Hash_MD5_state_t *hash_state;
} MD5object;
+#define _MD5object_CAST(op) ((MD5object *)(op))
+
#include "clinic/md5module.c.h"
static MD5object *
newMD5object(MD5State * st)
{
- MD5object *md5 = (MD5object *)PyObject_GC_New(MD5object, st->md5_type);
+ MD5object *md5 = PyObject_GC_New(MD5object, st->md5_type);
if (!md5) {
return NULL;
}
}
static void
-MD5_dealloc(MD5object *ptr)
+MD5_dealloc(PyObject *op)
{
+ MD5object *ptr = _MD5object_CAST(op);
Hacl_Hash_MD5_free(ptr->hash_state);
- PyTypeObject *tp = Py_TYPE((PyObject*)ptr);
+ PyTypeObject *tp = Py_TYPE(op);
PyObject_GC_UnTrack(ptr);
PyObject_GC_Del(ptr);
Py_DECREF(tp);
};
static PyObject *
-MD5_get_block_size(PyObject *self, void *closure)
+MD5_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(MD5_BLOCKSIZE);
}
static PyObject *
-MD5_get_name(PyObject *self, void *closure)
+MD5_get_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyUnicode_FromStringAndSize("md5", 3);
}
static PyObject *
-md5_get_digest_size(PyObject *self, void *closure)
+md5_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(MD5_DIGESTSIZE);
}
static PyGetSetDef MD5_getseters[] = {
- {"block_size",
- (getter)MD5_get_block_size, NULL,
- NULL,
- NULL},
- {"name",
- (getter)MD5_get_name, NULL,
- NULL,
- NULL},
- {"digest_size",
- (getter)md5_get_digest_size, NULL,
- NULL,
- NULL},
+ {"block_size", MD5_get_block_size, NULL, NULL, NULL},
+ {"name", MD5_get_name, NULL, NULL, NULL},
+ {"digest_size", md5_get_digest_size, NULL, NULL, NULL},
{NULL} /* Sentinel */
};
Hacl_Hash_SHA1_state_t *hash_state;
} SHA1object;
+#define _SHA1object_CAST(op) ((SHA1object *)(op))
+
#include "clinic/sha1module.c.h"
static SHA1object *
newSHA1object(SHA1State *st)
{
- SHA1object *sha = (SHA1object *)PyObject_GC_New(SHA1object, st->sha1_type);
+ SHA1object *sha = PyObject_GC_New(SHA1object, st->sha1_type);
if (sha == NULL) {
return NULL;
}
}
static void
-SHA1_dealloc(SHA1object *ptr)
+SHA1_dealloc(PyObject *op)
{
+ SHA1object *ptr = _SHA1object_CAST(op);
Hacl_Hash_SHA1_free(ptr->hash_state);
PyTypeObject *tp = Py_TYPE(ptr);
PyObject_GC_UnTrack(ptr);
};
static PyObject *
-SHA1_get_block_size(PyObject *self, void *closure)
+SHA1_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA1_BLOCKSIZE);
}
static PyObject *
-SHA1_get_name(PyObject *self, void *closure)
+SHA1_get_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyUnicode_FromStringAndSize("sha1", 4);
}
static PyObject *
-sha1_get_digest_size(PyObject *self, void *closure)
+sha1_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA1_DIGESTSIZE);
}
static PyGetSetDef SHA1_getseters[] = {
- {"block_size",
- (getter)SHA1_get_block_size, NULL,
- NULL,
- NULL},
- {"name",
- (getter)SHA1_get_name, NULL,
- NULL,
- NULL},
- {"digest_size",
- (getter)sha1_get_digest_size, NULL,
- NULL,
- NULL},
+ {"block_size", SHA1_get_block_size, NULL, NULL, NULL},
+ {"name", SHA1_get_name, NULL, NULL, NULL},
+ {"digest_size", sha1_get_digest_size, NULL, NULL, NULL},
{NULL} /* Sentinel */
};
static void
_sha1_free(void *module)
{
- _sha1_clear((PyObject *)module);
+ (void)_sha1_clear((PyObject *)module);
}
static int
Hacl_Hash_SHA2_state_t_512 *state;
} SHA512object;
+#define _SHA256object_CAST(op) ((SHA256object *)(op))
+#define _SHA512object_CAST(op) ((SHA512object *)(op))
+
#include "clinic/sha2module.c.h"
/* We shall use run-time type information in the remainder of this module to
static SHA256object *
newSHA224object(sha2_state *state)
{
- SHA256object *sha = (SHA256object *)PyObject_GC_New(
- SHA256object, state->sha224_type);
+ SHA256object *sha = PyObject_GC_New(SHA256object, state->sha224_type);
if (!sha) {
return NULL;
}
static SHA256object *
newSHA256object(sha2_state *state)
{
- SHA256object *sha = (SHA256object *)PyObject_GC_New(
- SHA256object, state->sha256_type);
+ SHA256object *sha = PyObject_GC_New(SHA256object, state->sha256_type);
if (!sha) {
return NULL;
}
static SHA512object *
newSHA384object(sha2_state *state)
{
- SHA512object *sha = (SHA512object *)PyObject_GC_New(
- SHA512object, state->sha384_type);
+ SHA512object *sha = PyObject_GC_New(SHA512object, state->sha384_type);
if (!sha) {
return NULL;
}
static SHA512object *
newSHA512object(sha2_state *state)
{
- SHA512object *sha = (SHA512object *)PyObject_GC_New(
- SHA512object, state->sha512_type);
+ SHA512object *sha = PyObject_GC_New(SHA512object, state->sha512_type);
if (!sha) {
return NULL;
}
}
static void
-SHA256_dealloc(SHA256object *ptr)
+SHA256_dealloc(PyObject *op)
{
+ SHA256object *ptr = _SHA256object_CAST(op);
Hacl_Hash_SHA2_free_256(ptr->state);
PyTypeObject *tp = Py_TYPE(ptr);
PyObject_GC_UnTrack(ptr);
}
static void
-SHA512_dealloc(SHA512object *ptr)
+SHA512_dealloc(PyObject *op)
{
+ SHA512object *ptr = _SHA512object_CAST(op);
Hacl_Hash_SHA2_free_512(ptr->state);
PyTypeObject *tp = Py_TYPE(ptr);
PyObject_GC_UnTrack(ptr);
};
static PyObject *
-SHA256_get_block_size(PyObject *self, void *closure)
+SHA256_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA256_BLOCKSIZE);
}
static PyObject *
-SHA512_get_block_size(PyObject *self, void *closure)
+SHA512_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA512_BLOCKSIZE);
}
static PyObject *
-SHA256_get_digest_size(SHA256object *self, void *closure)
+SHA256_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA256object *self = _SHA256object_CAST(op);
return PyLong_FromLong(self->digestsize);
}
static PyObject *
-SHA512_get_digest_size(SHA512object *self, void *closure)
+SHA512_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA512object *self = _SHA512object_CAST(op);
return PyLong_FromLong(self->digestsize);
}
static PyObject *
-SHA256_get_name(SHA256object *self, void *closure)
+SHA256_get_name(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA256object *self = _SHA256object_CAST(op);
if (self->digestsize == 28) {
return PyUnicode_FromStringAndSize("sha224", 6);
}
}
static PyObject *
-SHA512_get_name(SHA512object *self, void *closure)
+SHA512_get_name(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA512object *self = _SHA512object_CAST(op);
if (self->digestsize == 64) {
return PyUnicode_FromStringAndSize("sha512", 6);
}
}
static PyGetSetDef SHA256_getseters[] = {
- {"block_size",
- (getter)SHA256_get_block_size, NULL,
- NULL,
- NULL},
- {"name",
- (getter)SHA256_get_name, NULL,
- NULL,
- NULL},
- {"digest_size",
- (getter)SHA256_get_digest_size, NULL,
- NULL,
- NULL},
+ {"block_size", SHA256_get_block_size, NULL, NULL, NULL},
+ {"name", SHA256_get_name, NULL, NULL, NULL},
+ {"digest_size", SHA256_get_digest_size, NULL, NULL, NULL},
{NULL} /* Sentinel */
};
static PyGetSetDef SHA512_getseters[] = {
- {"block_size",
- (getter)SHA512_get_block_size, NULL,
- NULL,
- NULL},
- {"name",
- (getter)SHA512_get_name, NULL,
- NULL,
- NULL},
- {"digest_size",
- (getter)SHA512_get_digest_size, NULL,
- NULL,
- NULL},
+ {"block_size", SHA512_get_block_size, NULL, NULL, NULL},
+ {"name", SHA512_get_name, NULL, NULL, NULL},
+ {"digest_size", SHA512_get_digest_size, NULL, NULL, NULL},
{NULL} /* Sentinel */
};
static void
_sha2_free(void *module)
{
- _sha2_clear((PyObject *)module);
+ (void)_sha2_clear((PyObject *)module);
}
/* Initialize this module. */
Hacl_Hash_SHA3_state_t *hash_state;
} SHA3object;
+#define _SHA3object_CAST(op) ((SHA3object *)(op))
+
#include "clinic/sha3module.c.h"
static SHA3object *
/* Internal methods for a hash object */
static int
-SHA3_clear(SHA3object *self)
+SHA3_clear(PyObject *op)
{
+ SHA3object *self = _SHA3object_CAST(op);
if (self->hash_state != NULL) {
Hacl_Hash_SHA3_free(self->hash_state);
self->hash_state = NULL;
}
static void
-SHA3_dealloc(SHA3object *self)
+SHA3_dealloc(PyObject *self)
{
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
static PyObject *
-SHA3_get_block_size(SHA3object *self, void *closure)
+SHA3_get_block_size(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state);
return PyLong_FromLong(rate);
}
static PyObject *
-SHA3_get_name(SHA3object *self, void *closure)
+SHA3_get_name(PyObject *self, void *Py_UNUSED(closure))
{
PyTypeObject *type = Py_TYPE(self);
static PyObject *
-SHA3_get_digest_size(SHA3object *self, void *closure)
+SHA3_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
// Preserving previous behavior: variable-length algorithms return 0
+ SHA3object *self = _SHA3object_CAST(op);
if (Hacl_Hash_SHA3_is_shake(self->hash_state))
return PyLong_FromLong(0);
else
static PyObject *
-SHA3_get_capacity_bits(SHA3object *self, void *closure)
+SHA3_get_capacity_bits(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8;
assert(rate <= 1600);
int capacity = 1600 - rate;
static PyObject *
-SHA3_get_rate_bits(SHA3object *self, void *closure)
+SHA3_get_rate_bits(PyObject *op, void *Py_UNUSED(closure))
{
+ SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8;
return PyLong_FromLong(rate);
}
static PyObject *
-SHA3_get_suffix(SHA3object *self, void *closure)
+SHA3_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
unsigned char suffix[2] = {0x06, 0};
return PyBytes_FromStringAndSize((const char *)suffix, 1);
}
static PyGetSetDef SHA3_getseters[] = {
- {"block_size", (getter)SHA3_get_block_size, NULL, NULL, NULL},
- {"name", (getter)SHA3_get_name, NULL, NULL, NULL},
- {"digest_size", (getter)SHA3_get_digest_size, NULL, NULL, NULL},
- {"_capacity_bits", (getter)SHA3_get_capacity_bits, NULL, NULL, NULL},
- {"_rate_bits", (getter)SHA3_get_rate_bits, NULL, NULL, NULL},
- {"_suffix", (getter)SHA3_get_suffix, NULL, NULL, NULL},
+ {"block_size", SHA3_get_block_size, NULL, NULL, NULL},
+ {"name", SHA3_get_name, NULL, NULL, NULL},
+ {"digest_size", SHA3_get_digest_size, NULL, NULL, NULL},
+ {"_capacity_bits", SHA3_get_capacity_bits, NULL, NULL, NULL},
+ {"_rate_bits", SHA3_get_rate_bits, NULL, NULL, NULL},
+ {"_suffix", SHA3_get_suffix, NULL, NULL, NULL},
{NULL} /* Sentinel */
};
SHA3_TYPE_SPEC(sha3_512_spec, "sha3_512", sha3_512_slots);
static PyObject *
-_SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)
+_SHAKE_digest(PyObject *op, unsigned long digestlen, int hex)
{
unsigned char *digest = NULL;
PyObject *result = NULL;
+ SHA3object *self = _SHA3object_CAST(op);
if (digestlen >= (1 << 29)) {
PyErr_SetString(PyExc_ValueError, "length is too large");
_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length)
/*[clinic end generated code: output=2313605e2f87bb8f input=418ef6a36d2e6082]*/
{
- return _SHAKE_digest(self, length, 0);
+ return _SHAKE_digest((PyObject *)self, length, 0);
}
_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length)
/*[clinic end generated code: output=bf8e2f1e490944a8 input=69fb29b0926ae321]*/
{
- return _SHAKE_digest(self, length, 1);
+ return _SHAKE_digest((PyObject *)self, length, 1);
}
static PyObject *
-SHAKE_get_digest_size(SHA3object *self, void *closure)
+SHAKE_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(0);
}
static PyObject *
-SHAKE_get_suffix(SHA3object *self, void *closure)
+SHAKE_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
unsigned char suffix[2] = {0x1f, 0};
return PyBytes_FromStringAndSize((const char *)suffix, 1);
static PyGetSetDef SHAKE_getseters[] = {
- {"block_size", (getter)SHA3_get_block_size, NULL, NULL, NULL},
- {"name", (getter)SHA3_get_name, NULL, NULL, NULL},
- {"digest_size", (getter)SHAKE_get_digest_size, NULL, NULL, NULL},
- {"_capacity_bits", (getter)SHA3_get_capacity_bits, NULL, NULL, NULL},
- {"_rate_bits", (getter)SHA3_get_rate_bits, NULL, NULL, NULL},
- {"_suffix", (getter)SHAKE_get_suffix, NULL, NULL, NULL},
+ {"block_size", SHA3_get_block_size, NULL, NULL, NULL},
+ {"name", SHA3_get_name, NULL, NULL, NULL},
+ {"digest_size", SHAKE_get_digest_size, NULL, NULL, NULL},
+ {"_capacity_bits", SHA3_get_capacity_bits, NULL, NULL, NULL},
+ {"_rate_bits", SHA3_get_rate_bits, NULL, NULL, NULL},
+ {"_suffix", SHAKE_get_suffix, NULL, NULL, NULL},
{NULL} /* Sentinel */
};