allow building with older versions of python (e.g. 2.4)

and older versions of NSS


git-svn-id: svn://10.0.0.236/trunk@258989 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jdennis%redhat.com
2009-11-14 00:08:32 +00:00
parent 370e4495ec
commit b148275e0b
2 changed files with 32 additions and 5 deletions

View File

@@ -45,10 +45,29 @@
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
#if (PY_VERSION_HEX < 0x02050000)
typedef int Py_ssize_t;
#define PY_SSIZE_T_MAX INT_MAX
#define PY_SSIZE_T_MIN INT_MIN
#define PyInt_FromSsize_t PyInt_FromLong
#define PyNumber_AsSsize_t(ob, exc) PyInt_AsLong(ob)
#define PyIndex_Check(ob) PyInt_Check(ob)
typedef Py_ssize_t (*readbufferproc)(PyObject *, Py_ssize_t, void **);
typedef Py_ssize_t (*writebufferproc)(PyObject *, Py_ssize_t, void **);
typedef Py_ssize_t (*segcountproc)(PyObject *, Py_ssize_t *);
typedef Py_ssize_t (*charbufferproc)(PyObject *, Py_ssize_t, char **);
typedef Py_ssize_t (*lenfunc)(PyObject *);
typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t);
typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t);
#endif
#if (PY_VERSION_HEX < 0x02060000)
#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
#define PyVarObject_HEAD_INIT(type, size) \
PyObject_HEAD_INIT(type) size,
#define PyImport_ImportModuleNoBlock PyImport_ImportModule
#define PyLong_FromSsize_t PyInt_FromLong
#define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#define AddIntConstant(c) if (PyModule_AddIntConstant(m, #c, c) < 0) return;

View File

@@ -198,7 +198,7 @@ pk11_attribute_type_name(CK_ATTRIBUTE_TYPE type);
/* ==================================== */
int
static int
_AddIntConstantWithLookup(PyObject *module, const char *name, long value, const char *prefix,
PyObject *name_to_value, PyObject *value_to_name)
{
@@ -271,7 +271,8 @@ _AddIntConstantWithLookup(PyObject *module, const char *name, long value, const
/* FIXME: convert all equality tests to Py_None to PyNone_Check() */
#define PyNone_Check(x) ((x) == Py_None)
int SecItemOrNoneConvert(PyObject *obj, PyObject **param)
static int
SecItemOrNoneConvert(PyObject *obj, PyObject **param)
{
if (PySecItem_Check(obj)) {
*param = obj;
@@ -288,7 +289,8 @@ int SecItemOrNoneConvert(PyObject *obj, PyObject **param)
return 0;
}
int SymKeyOrNoneConvert(PyObject *obj, PyObject **param)
static int
SymKeyOrNoneConvert(PyObject *obj, PyObject **param)
{
if (PySymKey_Check(obj)) {
*param = obj;
@@ -325,7 +327,7 @@ key_type_str(KeyType key_type)
}
const char *
static const char *
sec_oid_tag_str(SECOidTag tag)
{
static char buf[80];
@@ -7278,6 +7280,7 @@ if (_AddIntConstantWithLookup(m, #constant, constant, \
ExportConstant(CKM_CAMELLIA_ECB_ENCRYPT_DATA);
ExportConstant(CKM_CAMELLIA_CBC_ENCRYPT_DATA);
#if defined(CKM_SEED_KEY_GEN)
ExportConstant(CKM_SEED_KEY_GEN);
ExportConstant(CKM_SEED_ECB);
ExportConstant(CKM_SEED_CBC);
@@ -7286,6 +7289,7 @@ if (_AddIntConstantWithLookup(m, #constant, constant, \
ExportConstant(CKM_SEED_CBC_PAD);
ExportConstant(CKM_SEED_ECB_ENCRYPT_DATA);
ExportConstant(CKM_SEED_CBC_ENCRYPT_DATA);
#endif
/* CKM_xxx_ENCRYPT_DATA mechanisms are new for v2.20 */
ExportConstant(CKM_DES_ECB_ENCRYPT_DATA);
@@ -7837,9 +7841,13 @@ if (_AddIntConstantWithLookup(m, #constant, constant, \
ExportConstant(SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE);
#if defined(SEC_OID_SEED_CBC)
ExportConstant(SEC_OID_SEED_CBC);
#endif
#if defined(SEC_OID_X509_ANY_POLICY)
ExportConstant(SEC_OID_X509_ANY_POLICY);
#endif
ExportConstant(SEC_OID_SECG_EC_SECP192R1);
ExportConstant(SEC_OID_SECG_EC_SECP256R1);