Mercurial > cpython-lru_cache-weakref
annotate Modules/cryptmodule.c @ 66978:aed2bbafa550 3.1
Blocked revisions 87324 via svnmerge
........
r87324 | r.david.murray | 2010-12-16 14:08:51 -0500 (Thu, 16 Dec 2010) | 9 lines
#10719: restore messages generated on invalid compileall args
Before the introduction of filename arguments to compileall it gave semi useful
messages about not being able to 'list' names that weren't valid directories.
This fix restores that behavior. In addition to the test for this case, the
patch also adds a test for the default behavior of compileall when no arguments
are provided, and fixes a bug in one of the previously added tests.
........
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Thu, 16 Dec 2010 19:10:16 +0000 |
| parents | f197407bdba2 |
| children |
| 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 | |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
24471
diff
changeset
|
8 #ifdef __VMS |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
24471
diff
changeset
|
9 #include <openssl/des.h> |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
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 { |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
17 char *word, *salt; |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
24471
diff
changeset
|
18 #ifndef __VMS |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
19 extern char * crypt(const char *, const char *); |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
24471
diff
changeset
|
20 #endif |
| 1617 | 21 |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
22 if (!PyArg_ParseTuple(args, "ss:crypt", &word, &salt)) { |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
23 return NULL; |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
24 } |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
25 /* On some platforms (AtheOS) crypt returns NULL for an invalid |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
26 salt. Return None in that case. XXX Maybe raise an exception? */ |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
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[] = { |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
41 {"crypt", crypt_crypt, METH_VARARGS, crypt_crypt__doc__}, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
42 {NULL, NULL} /* sentinel */ |
| 1617 | 43 }; |
| 44 | |
|
47580
94f64f11fdd0
Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents:
39442
diff
changeset
|
45 |
|
94f64f11fdd0
Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents:
39442
diff
changeset
|
46 static struct PyModuleDef cryptmodule = { |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
47 PyModuleDef_HEAD_INIT, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
48 "crypt", |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
49 NULL, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
50 -1, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
51 crypt_methods, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
52 NULL, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
53 NULL, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
54 NULL, |
|
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
55 NULL |
|
47580
94f64f11fdd0
Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents:
39442
diff
changeset
|
56 }; |
|
94f64f11fdd0
Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents:
39442
diff
changeset
|
57 |
|
24471
f66b3a3509c7
Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents:
23832
diff
changeset
|
58 PyMODINIT_FUNC |
|
47580
94f64f11fdd0
Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents:
39442
diff
changeset
|
59 PyInit_crypt(void) |
| 1617 | 60 { |
|
61467
f197407bdba2
Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
47580
diff
changeset
|
61 return PyModule_Create(&cryptmodule); |
| 1617 | 62 } |
