Staging
v0.5.1
https://github.com/python/cpython
Revision 2bfd14e3c504fc66dd173de802e107e0457811ba authored by Jack Jansen on 25 March 2002, 10:43:35 UTC, committed by Jack Jansen on 25 March 2002, 10:43:35 UTC
Weaklink most toolbox modules, improving backward compatibility. Modules will no longer fail to load if a single routine is missing on the curent OS version, in stead calling the missing routine will raise an exception.

Should finally fix 531398. 2.2.1 candidate.

Also blacklisted some constants with definitions that were not Python-compatible.
1 parent ae0c1cb
Raw File
Tip revision: 2bfd14e3c504fc66dd173de802e107e0457811ba authored by Jack Jansen on 25 March 2002, 10:43:35 UTC
Backport of _Qdoffsmodule.c 1.7, qdoffssupport.py 1.8:
Tip revision: 2bfd14e
cryptmodule.c
/* cryptmodule.c - by Steve Majewski
 */

#include "Python.h"

#include <sys/types.h>


/* Module crypt */


static PyObject *crypt_crypt(PyObject *self, PyObject *args)
{
	char *word, *salt; 
	extern char * crypt(const char *, const char *);

	if (!PyArg_Parse(args, "(ss)", &word, &salt)) {
		return NULL;
	}
	return PyString_FromString( crypt( word, salt ) );

}

static char crypt_crypt__doc__[] = "\
crypt(word, salt) -> string\n\
word will usually be a user's password. salt is a 2-character string\n\
which will be used to select one of 4096 variations of DES. The characters\n\
in salt must be either \".\", \"/\", or an alphanumeric character. Returns\n\
the hashed password as a string, which will be composed of characters from\n\
the same alphabet as the salt.";


static PyMethodDef crypt_methods[] = {
	{"crypt",	crypt_crypt, METH_OLDARGS, crypt_crypt__doc__},
	{NULL,		NULL}		/* sentinel */
};

DL_EXPORT(void)
initcrypt(void)
{
	Py_InitModule("crypt", crypt_methods);
}
back to top