return (rc);
}
-static PyObject *dsameth_beginhash(PyObject *me, PyObject *arg)
-{
- if (!PyArg_ParseTuple(arg, ":beginhash")) return (0);
- return (ghash_pywrap(DSA_HASH(me), gdsa_beginhash(DSA_D(me))));
-}
+static PyObject *dsameth_beginhash(PyObject *me)
+ { return (ghash_pywrap(DSA_HASH(me), gdsa_beginhash(DSA_D(me)))); }
static PyObject *dsameth_endhash(PyObject *me, PyObject *arg)
{
static const PyMethodDef dsapub_pymethods[] = {
#define METHNAME(name) dsameth_##name
- METH (beginhash, "D.beginhash() -> hash object")
+ NAMETH(beginhash, "D.beginhash() -> hash object")
METH (endhash, "D.endhash(H) -> BYTES")
METH (verify, "D.verify(MSG, (R, S)) -> true/false")
#undef METHNAME
{ 0 }
};
-static PyTypeObject dsapub_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject dsapub_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"DSAPub", /* @tp_name@ */
sizeof(dsa_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
0 /* @tp_is_gc@ */
};
-static PyTypeObject dsapriv_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject dsapriv_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"DSAPriv", /* @tp_name@ */
sizeof(dsa_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
return (rc);
}
-static PyObject *kcdsameth_beginhash(PyObject *me, PyObject *arg)
-{
- if (!PyArg_ParseTuple(arg, ":beginhash")) return (0);
- return (ghash_pywrap(DSA_HASH(me), gkcdsa_beginhash(DSA_D(me))));
-}
+static PyObject *kcdsameth_beginhash(PyObject *me)
+ { return (ghash_pywrap(DSA_HASH(me), gkcdsa_beginhash(DSA_D(me)))); }
static PyObject *kcdsameth_endhash(PyObject *me, PyObject *arg)
{
static const PyMethodDef kcdsapub_pymethods[] = {
#define METHNAME(name) kcdsameth_##name
- METH (beginhash, "D.beginhash() -> hash object")
+ NAMETH(beginhash, "D.beginhash() -> hash object")
METH (endhash, "D.endhash(H) -> BYTES")
METH (verify, "D.verify(MSG, (R, S)) -> true/false")
#undef METHNAME
{ 0 }
};
-static PyTypeObject kcdsapub_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject kcdsapub_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"KCDSAPub", /* @tp_name@ */
sizeof(dsa_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
0 /* @tp_is_gc@ */
};
-static PyTypeObject kcdsapriv_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject kcdsapriv_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"KCDSAPriv", /* @tp_name@ */
sizeof(dsa_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
return (rc);
}
-static PyObject *meth__RSAPriv_generate(PyObject *me,
- PyObject *arg, PyObject *kw)
+static PyObject *rsameth_generate(PyObject *me, PyObject *arg, PyObject *kw)
{
grand *r = &rand_global;
unsigned nbits;
struct excinfo exc = EXCINFO_INIT;
pypgev evt = { { 0 } };
static const char *const kwlist[] =
- { "class", "nbits", "event", "rng", "nsteps", "e", 0 };
+ { "nbits", "event", "rng", "nsteps", "e", 0 };
PyObject *rc = 0;
evt.exc = &exc;
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "OO&|O&O&O&O&:generate", KWLIST,
- &me, convuint, &nbits, convpgev, &evt,
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "O&|O&O&O&O&:generate", KWLIST,
+ convuint, &nbits, convpgev, &evt,
convgrand, &r, convuint, &n,
convmp, &e))
goto end;
static const PyMethodDef rsapriv_pymethods[] = {
#define METHNAME(name) rsameth_##name
KWMETH(privop, "R.privop(X, [rng = None]) -> X^D (mod N)")
+ KWSMTH(generate, "generate(NBITS, [event = pgen_nullev], [rng = rand], "
+ "[nsteps = 0]) -> R")
#undef METHNAME
{ 0 }
};
-static PyTypeObject rsapub_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject rsapub_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"RSAPub", /* @tp_name@ */
sizeof(rsapub_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
0 /* @tp_is_gc@ */
};
-static PyTypeObject rsapriv_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject rsapriv_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"RSAPriv", /* @tp_name@ */
sizeof(rsapriv_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
/*----- Global stuff ------------------------------------------------------*/
+static const struct nameval consts[] = {
+ CONST(X25519_KEYSZ), CONST(X25519_PUBSZ), CONST(X25519_OUTSZ),
+ CONST(X448_KEYSZ), CONST(X448_PUBSZ), CONST(X448_OUTSZ),
+ CONST(ED25519_KEYSZ), CONST(ED25519_PUBSZ), CONST(ED25519_SIGSZ),
+ CONST(ED25519_MAXPERSOSZ),
+ CONST(ED448_KEYSZ), CONST(ED448_PUBSZ), CONST(ED448_SIGSZ),
+ CONST(ED448_MAXPERSOSZ),
+ { 0 }
+};
+
static const PyMethodDef methods[] = {
#define METHNAME(name) meth_##name
KWMETH(_p1crypt_encode, 0)
KWMETH(_oaep_decode, 0)
KWMETH(_pss_encode, 0)
KWMETH(_pss_decode, 0)
- KWMETH(_RSAPriv_generate, "generate(NBITS, [event = pgen_nullev], "
- "[rng = rand], [nsteps = 0]) -> R")
#define DEFMETH(X, x) \
METH (x, "" #x "(KEY, PUBLIC) -> SHARED")
XDHS(DEFMETH)
INSERT("KCDSAPriv", kcdsapriv_pytype);
INSERT("RSAPub", rsapub_pytype);
INSERT("RSAPriv", rsapriv_pytype);
+ setconstants(mod, consts);
}
/*----- That's all, folks -------------------------------------------------*/