annotate Modules/cryptmodule.c @ 49955:878d40468c4e legacy-trunk

Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
author Vinay Sajip <vinay_sajip@yahoo.co.uk>
date Wed, 03 Dec 2008 23:22:58 +0000
parents c67b23397f30
children fd25030223b0 94f64f11fdd0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 /* cryptmodule.c - by Steve Majewski
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 */
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
3
4643
8d909ae1f099 renamed grandly.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents: 4600
diff changeset
4 #include "Python.h"
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 #include <sys/types.h>
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
39043
c67b23397f30 Patch #1516912: improve Modules support for OpenVMS.
Neal Norwitz <nnorwitz@gmail.com>
parents: 24471
diff changeset
8 #ifdef __VMS
c67b23397f30 Patch #1516912: improve Modules support for OpenVMS.
Neal Norwitz <nnorwitz@gmail.com>
parents: 24471
diff changeset
9 #include <openssl/des.h>
c67b23397f30 Patch #1516912: improve Modules support for OpenVMS.
Neal Norwitz <nnorwitz@gmail.com>
parents: 24471
diff changeset
10 #endif
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
11
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 /* Module crypt */
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
13
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
13496
03bc51e43f7a ANSI-fication
Peter Schneider-Kamp <nowonder@nowonder.de>
parents: 11687
diff changeset
15 static PyObject *crypt_crypt(PyObject *self, PyObject *args)
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 {
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 char *word, *salt;
39043
c67b23397f30 Patch #1516912: improve Modules support for OpenVMS.
Neal Norwitz <nnorwitz@gmail.com>
parents: 24471
diff changeset
18 #ifndef __VMS
13667
a6c7bfdd6777 Even more ANSIfication: fix as many function pointers and declarations as
Thomas Wouters <thomas@python.org>
parents: 13651
diff changeset
19 extern char * crypt(const char *, const char *);
39043
c67b23397f30 Patch #1516912: improve Modules support for OpenVMS.
Neal Norwitz <nnorwitz@gmail.com>
parents: 24471
diff changeset
20 #endif
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
21
22709
3aa4bf7ac31e Remove METH_OLDARGS:
Neal Norwitz <nnorwitz@gmail.com>
parents: 13820
diff changeset
22 if (!PyArg_ParseTuple(args, "ss:crypt", &word, &salt)) {
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 return NULL;
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 }
23777
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 22709
diff changeset
25 /* On some platforms (AtheOS) crypt returns NULL for an invalid
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 22709
diff changeset
26 salt. Return None in that case. XXX Maybe raise an exception? */
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 22709
diff changeset
27 return Py_BuildValue("s", crypt(word, salt));
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 }
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
30
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23777
diff changeset
31 PyDoc_STRVAR(crypt_crypt__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23777
diff changeset
32 "crypt(word, salt) -> string\n\
11687
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
33 word will usually be a user's password. salt is a 2-character string\n\
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
34 which will be used to select one of 4096 variations of DES. The characters\n\
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
35 in salt must be either \".\", \"/\", or an alphanumeric character. Returns\n\
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
36 the hashed password as a string, which will be composed of characters from\n\
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23777
diff changeset
37 the same alphabet as the salt.");
11687
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
38
47d70f4f635f Added docstring to crypt.crypt() based on the documentation.
Fred Drake <fdrake@acm.org>
parents: 9588
diff changeset
39
4643
8d909ae1f099 renamed grandly.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents: 4600
diff changeset
40 static PyMethodDef crypt_methods[] = {
22709
3aa4bf7ac31e Remove METH_OLDARGS:
Neal Norwitz <nnorwitz@gmail.com>
parents: 13820
diff changeset
41 {"crypt", crypt_crypt, METH_VARARGS, crypt_crypt__doc__},
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 {NULL, NULL} /* sentinel */
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 };
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
44
24471
f66b3a3509c7 Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents: 23832
diff changeset
45 PyMODINIT_FUNC
13651
8a063423e0b7 Bunch of minor ANSIfications: 'void initfunc()' -> 'void initfunc(void)',
Thomas Wouters <thomas@python.org>
parents: 13496
diff changeset
46 initcrypt(void)
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 {
4643
8d909ae1f099 renamed grandly.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents: 4600
diff changeset
48 Py_InitModule("crypt", crypt_methods);
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 }