annotate Modules/cryptmodule.c @ 58664:993f703a61ba

Merged revisions 77484,77487,77561,77570,77593,77603,77608,77667,77702-77703,77739,77858,77887,77889 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r77484 | skip.montanaro | 2010-01-13 19:12:34 -0600 (Wed, 13 Jan 2010) | 4 lines Update PyEval_EvalFrame to PyEval_EvalFrameEx. This looks to have been done partially before. Also add a comment describing how this might have to work with different versions of the interpreter. ........ r77487 | ezio.melotti | 2010-01-14 05:34:10 -0600 (Thu, 14 Jan 2010) | 1 line Fixed typo ........ r77561 | georg.brandl | 2010-01-17 02:42:30 -0600 (Sun, 17 Jan 2010) | 1 line #7699: improve datetime docs: straightforward linking to strftime/strptime section, mark classmethods as such. ........ r77570 | georg.brandl | 2010-01-17 06:14:42 -0600 (Sun, 17 Jan 2010) | 1 line Add note about usage of STRINGLIB_EMPTY. ........ r77593 | georg.brandl | 2010-01-17 17:33:53 -0600 (Sun, 17 Jan 2010) | 1 line Fix internal reference. ........ r77603 | benjamin.peterson | 2010-01-18 17:07:56 -0600 (Mon, 18 Jan 2010) | 8 lines data descriptors do not override the class dictionary if __get__ is not defined Adjust documentation and add a test to verify this behavior. See http://mail.python.org/pipermail/python-dev/2010-January/095637.html for discussion. ........ r77608 | gregory.p.smith | 2010-01-19 02:19:03 -0600 (Tue, 19 Jan 2010) | 6 lines Do not compile stubs for the sha2 series hashes in the openssl hashlib module when the openssl version is too old to support them. That leads both compiled code bloat and to unittests attempting to test implementations that don't exist for comparison purposes on such platforms. ........ r77667 | mark.dickinson | 2010-01-21 12:32:27 -0600 (Thu, 21 Jan 2010) | 1 line Add two more test_strtod test values. ........ r77702 | georg.brandl | 2010-01-23 02:43:31 -0600 (Sat, 23 Jan 2010) | 1 line #7762: fix refcount annotation of PyUnicode_Tailmatch(). ........ r77703 | georg.brandl | 2010-01-23 02:47:54 -0600 (Sat, 23 Jan 2010) | 1 line #7725: fix referencing issue. ........ r77739 | benjamin.peterson | 2010-01-24 21:52:52 -0600 (Sun, 24 Jan 2010) | 1 line mention from_float() in error message ........ r77858 | georg.brandl | 2010-01-30 11:57:48 -0600 (Sat, 30 Jan 2010) | 1 line #7802: fix invalid example (heh). ........ r77887 | georg.brandl | 2010-01-31 12:51:49 -0600 (Sun, 31 Jan 2010) | 5 lines Fix-up ftplib documentation: move exception descriptions to toplevel, not inside a class remove attribution in "versionadded" spell and grammar check docstring of FTP_TLS ........ r77889 | michael.foord | 2010-01-31 13:59:26 -0600 (Sun, 31 Jan 2010) | 1 line Minor modification to unittest documentation. ........
author Benjamin Peterson <benjamin@python.org>
date Wed, 03 Feb 2010 02:35:45 +0000
parents 94f64f11fdd0
children cab14be0ada1
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 {
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
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
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 *);
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
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
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 = {
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
47 PyModuleDef_HEAD_INIT,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
48 "crypt",
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
49 NULL,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
50 -1,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
51 crypt_methods,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
52 NULL,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
53 NULL,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
54 NULL,
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
55 NULL
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 {
47580
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 39442
diff changeset
61 return PyModule_Create(&cryptmodule);
1617
2b27553028aa crypt module (Steve M's)
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 }