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
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
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
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 {
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
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
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[] = {
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
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
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
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 }