gdsa_endhash(DSA_D(me), h);
h = GH_COPY(h);
rc = bytestring_pywrap(0, GH_CLASS(h)->hashsz);
- GH_DONE(h, PyString_AS_STRING(rc));
+ GH_DONE(h, BIN_PTR(rc));
GH_DESTROY(h);
return (rc);
}
gkcdsa_endhash(DSA_D(me), h);
h = GH_COPY(h);
rc = bytestring_pywrap(0, GH_CLASS(h)->hashsz);
- GH_DONE(h, PyString_AS_STRING(rc));
+ GH_DONE(h, BIN_PTR(rc));
GH_DESTROY(h);
return (rc);
}
if (h.sz != DSA_D(me)->h->hashsz)
VALERR("bad message length (doesn't match hash size)");
r = bytestring_pywrap(0, DSA_D(me)->h->hashsz);
- s.r = (octet *)PyString_AS_STRING(r);
+ s.r = (octet *)BIN_PTR(r);
gkcdsa_sign(DSA_D(me), &s, h.p, k);
rc = Py_BuildValue("(ON)", r, mp_pywrap(s.s));
end:
if (k.sz != X##_KEYSZ) VALERR("bad key length"); \
if (p.sz != X##_PUBSZ) VALERR("bad public length"); \
rc = bytestring_pywrap(0, X##_OUTSZ); \
- x((octet *)PyString_AS_STRING(rc), k.p, p.p); \
+ x((octet *)BIN_PTR(rc), k.p, p.p); \
return (rc); \
end: \
return (0); \
if (!PyArg_ParseTuple(arg, "O&:" #ed "_pubkey", convbin, &k)) \
goto end; \
rc = bytestring_pywrap(0, ED##_PUBSZ); \
- ed##_pubkey((octet *)PyString_AS_STRING(rc), k.p, k.sz); \
+ ed##_pubkey((octet *)BIN_PTR(rc), k.p, k.sz); \
return (rc); \
end: \
return (0); \
if (c.p && ph == -1) ph = 0; \
if (!p.p) { p.p = pp; ed##_pubkey(pp, k.p, k.sz); } \
rc = bytestring_pywrap(0, ED##_SIGSZ); \
- ed##sigver##_sign((octet *)PyString_AS_STRING(rc), k.p, k.sz, \
+ ed##sigver##_sign((octet *)BIN_PTR(rc), k.p, k.sz, \
p.p, ph, c.p, c.sz, m.p, m.sz); \
return (rc); \
end: \