Mercurial > cpython-lru_cache-weakref
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 |
| rev | line source |
|---|---|
| 1617 | 1 /* cryptmodule.c - by Steve Majewski |
| 2 */ | |
| 3 | |
|
4643
8d909ae1f099
renamed grandly.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4600
diff
changeset
|
4 #include "Python.h" |
| 1617 | 5 |
| 6 #include <sys/types.h> | |
| 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 | 11 |
| 12 /* Module crypt */ | |
| 13 | |
| 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 | 16 { |
| 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 | 21 |
| 22709 | 22 if (!PyArg_ParseTuple(args, "ss:crypt", &word, &salt)) { |
| 1617 | 23 return NULL; |
| 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 | 28 |
| 29 } | |
| 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 | 41 {"crypt", crypt_crypt, METH_VARARGS, crypt_crypt__doc__}, |
| 1617 | 42 {NULL, NULL} /* sentinel */ |
| 43 }; | |
| 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 | 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 | 49 } |
