Mercurial > cpython-lru_cache-weakref
annotate Modules/md5module.c @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | 6c08bfe78fff |
| children | ff5bc2fa38d6 |
| rev | line source |
|---|---|
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
1 |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 /* MD5 module */ |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
4 /* This module provides an interface to the RSA Data Security, |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
5 Inc. MD5 Message-Digest Algorithm, described in RFC 1321. |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
6 It requires the files md5c.c and md5.h (which are slightly changed |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
7 from the versions in the RFC to avoid the "global.h" file.) */ |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
8 |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 /* MD5 objects */ |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 |
| 4635 | 12 #include "Python.h" |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
13 #include "structmember.h" |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 #include "md5.h" |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
15 #include "hashlib.h" |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
16 |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 typedef struct { |
| 4635 | 18 PyObject_HEAD |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
19 md5_state_t md5; /* the context holder */ |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 } md5object; |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 |
|
24280
1598a1e473e2
staticforward bites the dust.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23832
diff
changeset
|
22 static PyTypeObject MD5type; |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 #define is_md5object(v) ((v)->ob_type == &MD5type) |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 static md5object * |
|
13651
8a063423e0b7
Bunch of minor ANSIfications: 'void initfunc()' -> 'void initfunc(void)',
Thomas Wouters <thomas@python.org>
parents:
13620
diff
changeset
|
27 newmd5object(void) |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 { |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 md5object *md5p; |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
31 md5p = PyObject_New(md5object, &MD5type); |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 if (md5p == NULL) |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 return NULL; |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
35 md5_init(&md5p->md5); /* actual initialisation */ |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 return md5p; |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
37 } |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 /* MD5 methods */ |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 static void |
| 13503 | 43 md5_dealloc(md5object *md5p) |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 { |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
11882
diff
changeset
|
45 PyObject_Del(md5p); |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
46 } |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
49 /* MD5 methods-as-attributes */ |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
50 |
| 4635 | 51 static PyObject * |
| 13503 | 52 md5_update(md5object *self, PyObject *args) |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
53 { |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
54 PyObject *data_obj; |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
55 Py_buffer view; |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
56 |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
57 if (!PyArg_ParseTuple(args, "O:update", &data_obj)) |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
58 return NULL; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
59 |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
60 GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view, NULL); |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
61 |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
62 md5_append(&self->md5, (unsigned char*)view.buf, |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
63 Py_SAFE_DOWNCAST(view.len, Py_ssize_t, unsigned int)); |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
64 |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
65 PyBuffer_Release(&view); |
| 4635 | 66 Py_INCREF(Py_None); |
| 67 return Py_None; | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
68 } |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
69 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
70 PyDoc_STRVAR(update_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
71 "update (arg)\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
72 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
73 Update the md5 object with the string arg. Repeated calls are\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
74 equivalent to a single call with the concatenation of all the\n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
75 arguments."); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
76 |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
77 |
| 4635 | 78 static PyObject * |
|
22561
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
79 md5_digest(md5object *self) |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
80 { |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
81 md5_state_t mdContext; |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
82 unsigned char aDigest[16]; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
83 |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
84 /* make a temporary copy, and perform the final */ |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
85 mdContext = self->md5; |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
86 md5_finish(&mdContext, aDigest); |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
87 |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
88 return PyString_FromStringAndSize((char *)aDigest, 16); |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
89 } |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
90 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
91 PyDoc_STRVAR(digest_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
92 "digest() -> string\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
93 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
94 Return the digest of the strings passed to the update() method so\n\ |
| 29787 | 95 far. This is a 16-byte string which may contain non-ASCII characters,\n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
96 including null bytes."); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
97 |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
98 |
| 4635 | 99 static PyObject * |
|
22561
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
100 md5_hexdigest(md5object *self) |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
101 { |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
102 md5_state_t mdContext; |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
103 unsigned char digest[16]; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
104 unsigned char hexdigest[32]; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
105 int i, j; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
106 |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
107 /* make a temporary copy, and perform the final */ |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
108 mdContext = self->md5; |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
36324
diff
changeset
|
109 md5_finish(&mdContext, digest); |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
110 |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
111 /* Make hex version of the digest */ |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
112 for(i=j=0; i<16; i++) { |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
113 char c; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
114 c = (digest[i] >> 4) & 0xf; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
115 c = (c>9) ? c+'a'-10 : c + '0'; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
116 hexdigest[j++] = c; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
117 c = (digest[i] & 0xf); |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
118 c = (c>9) ? c+'a'-10 : c + '0'; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
119 hexdigest[j++] = c; |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
120 } |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
121 return PyString_FromStringAndSize((char*)hexdigest, 32); |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
122 } |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
123 |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
124 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
125 PyDoc_STRVAR(hexdigest_doc, |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
126 "hexdigest() -> string\n\ |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
127 \n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
128 Like digest(), but returns the digest as a string of hexadecimal digits."); |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
129 |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
130 |
|
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
131 static PyObject * |
|
22561
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
132 md5_copy(md5object *self) |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
133 { |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
134 md5object *md5p; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
135 |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
136 if ((md5p = newmd5object()) == NULL) |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
137 return NULL; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
138 |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
139 md5p->md5 = self->md5; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
140 |
| 4635 | 141 return (PyObject *)md5p; |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
142 } |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
143 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
144 PyDoc_STRVAR(copy_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
145 "copy() -> md5 object\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
146 \n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
147 Return a copy (``clone'') of the md5 object."); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
148 |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
149 |
| 4635 | 150 static PyMethodDef md5_methods[] = { |
| 22709 | 151 {"update", (PyCFunction)md5_update, METH_VARARGS, update_doc}, |
|
22561
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
152 {"digest", (PyCFunction)md5_digest, METH_NOARGS, digest_doc}, |
|
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
153 {"hexdigest", (PyCFunction)md5_hexdigest, METH_NOARGS, hexdigest_doc}, |
|
043ad7adc896
Remove many uses of PyArg_NoArgs macro, change METH_OLDARGS to METH_NOARGS.
Neal Norwitz <nnorwitz@gmail.com>
parents:
21313
diff
changeset
|
154 {"copy", (PyCFunction)md5_copy, METH_NOARGS, copy_doc}, |
|
13979
63de7f00b5bc
md5_hexdigest(): After a brief conversation with TP, added hexdigest()
Barry Warsaw <barry@python.org>
parents:
13820
diff
changeset
|
155 {NULL, NULL} /* sentinel */ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
156 }; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
157 |
| 4635 | 158 static PyObject * |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
159 md5_get_block_size(PyObject *self, void *closure) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
160 { |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
161 return PyInt_FromLong(64); |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
162 } |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
163 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
164 static PyObject * |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
165 md5_get_digest_size(PyObject *self, void *closure) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
166 { |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
167 return PyInt_FromLong(16); |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
168 } |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
169 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
170 static PyObject * |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
171 md5_get_name(PyObject *self, void *closure) |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
172 { |
|
47527
52294af4b663
This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents:
47294
diff
changeset
|
173 return PyString_FromStringAndSize("MD5", 3); |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
174 } |
|
20843
8d14f534a5c2
[Patch #476612] Add attributes from PEP247 to the md5 and sha modules
Andrew M. Kuchling <amk@amk.ca>
parents:
14375
diff
changeset
|
175 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
176 static PyGetSetDef md5_getseters[] = { |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
177 {"digest_size", |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
178 (getter)md5_get_digest_size, NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
179 NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
180 NULL}, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
181 {"block_size", |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
182 (getter)md5_get_block_size, NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
183 NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
184 NULL}, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
185 {"name", |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
186 (getter)md5_get_name, NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
187 NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
188 NULL}, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
189 /* the old md5 and sha modules support 'digest_size' as in PEP 247. |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
190 * the old sha module also supported 'digestsize'. ugh. */ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
191 {"digestsize", |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
192 (getter)md5_get_digest_size, NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
193 NULL, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
194 NULL}, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
195 {NULL} /* Sentinel */ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
196 }; |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
197 |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
198 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
199 PyDoc_STRVAR(module_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
200 "This module implements the interface to RSA's MD5 message digest\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
201 algorithm (see also Internet RFC 1321). Its use is quite\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
202 straightforward: use the new() to create an md5 object. You can now\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
203 feed this object with arbitrary strings using the update() method, and\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
204 at any point you can ask it for the digest (a strong kind of 128-bit\n\ |
|
13620
5b727ab37092
Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents:
13503
diff
changeset
|
205 checksum, a.k.a. ``fingerprint'') of the concatenation of the strings\n\ |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
206 fed to it so far using the digest() method.\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
207 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
208 Functions:\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
209 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
210 new([arg]) -- return a new md5 object, initialized with arg if provided\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
211 md5([arg]) -- DEPRECATED, same as new, but for compatibility\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
212 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
213 Special Objects:\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
214 \n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
215 MD5Type -- type object for md5 objects"); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
216 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
217 PyDoc_STRVAR(md5type_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
218 "An md5 represents the object used to calculate the MD5 checksum of a\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
219 string of information.\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
220 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
221 Methods:\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
222 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
223 update() -- updates the current digest with an additional string\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
224 digest() -- return the current digest value\n\ |
|
25743
86bf840c2a1c
SF #621948, update docstring for md5 by David M. Cooke. Will backport.
Neal Norwitz <nnorwitz@gmail.com>
parents:
24471
diff
changeset
|
225 hexdigest() -- return the current digest as a string of hexadecimal digits\n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
226 copy() -- return a copy of the current md5 object"); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
227 |
|
24283
c0a67a1cab09
Removed more stray instances of statichere, but left _sre.c alone.
Tim Peters <tim.peters@gmail.com>
parents:
24280
diff
changeset
|
228 static PyTypeObject MD5type = { |
|
42333
6620a510e9a9
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
Martin v. Löwis <martin@v.loewis.de>
parents:
37436
diff
changeset
|
229 PyVarObject_HEAD_INIT(NULL, 0) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
230 "_md5.md5", /*tp_name*/ |
| 4635 | 231 sizeof(md5object), /*tp_size*/ |
| 232 0, /*tp_itemsize*/ | |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
233 /* methods */ |
| 4635 | 234 (destructor)md5_dealloc, /*tp_dealloc*/ |
| 235 0, /*tp_print*/ | |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
236 0, /*tp_getattr*/ |
| 4635 | 237 0, /*tp_setattr*/ |
| 238 0, /*tp_compare*/ | |
| 239 0, /*tp_repr*/ | |
| 240 0, /*tp_as_number*/ | |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
241 0, /*tp_as_sequence*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
242 0, /*tp_as_mapping*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
243 0, /*tp_hash*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
244 0, /*tp_call*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
245 0, /*tp_str*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
246 0, /*tp_getattro*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
247 0, /*tp_setattro*/ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
248 0, /*tp_as_buffer*/ |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
249 Py_TPFLAGS_DEFAULT, /*tp_flags*/ |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
250 md5type_doc, /*tp_doc*/ |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
251 0, /*tp_traverse*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
252 0, /*tp_clear*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
253 0, /*tp_richcompare*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
254 0, /*tp_weaklistoffset*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
255 0, /*tp_iter*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
256 0, /*tp_iternext*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
257 md5_methods, /*tp_methods*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
258 0, /*tp_members*/ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
259 md5_getseters, /*tp_getset*/ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
260 }; |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
261 |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
262 |
|
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
263 /* MD5 functions */ |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
264 |
| 4635 | 265 static PyObject * |
| 13503 | 266 MD5_new(PyObject *self, PyObject *args) |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
267 { |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
268 md5object *md5p; |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
269 PyObject *data_obj = NULL; |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
270 Py_buffer view; |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
271 |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
272 if (!PyArg_ParseTuple(args, "|O:new", &data_obj)) |
| 2860 | 273 return NULL; |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
274 |
|
51961
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
275 if (data_obj) |
|
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
276 GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view, NULL); |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
277 |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
278 if ((md5p = newmd5object()) == NULL) { |
|
51961
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
279 if (data_obj) |
|
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
280 PyBuffer_Release(&view); |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
281 return NULL; |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
282 } |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
283 |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
284 if (data_obj) { |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
285 md5_append(&md5p->md5, (unsigned char*)view.buf, |
|
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
286 Py_SAFE_DOWNCAST(view.len, Py_ssize_t, unsigned int)); |
|
51961
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
287 PyBuffer_Release(&view); |
|
51580
1e7ac14e4938
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
288 } |
|
51961
6c08bfe78fff
Fix SHA_new and MD5_new, that would crash if not given initial data
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents:
51580
diff
changeset
|
289 |
| 4635 | 290 return (PyObject *)md5p; |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
291 } |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
292 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
293 PyDoc_STRVAR(new_doc, |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
294 "new([arg]) -> md5 object\n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
295 \n\ |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
296 Return a new md5 object. If arg is present, the method call update(arg)\n\ |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
22709
diff
changeset
|
297 is made."); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
298 |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
299 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
300 /* List of functions exported by this module */ |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
301 |
| 4635 | 302 static PyMethodDef md5_functions[] = { |
|
13817
3c0f75a2198f
Use METH_VARARGS instead of numeric constant 1 in method def. tables
Andrew M. Kuchling <amk@amk.ca>
parents:
13651
diff
changeset
|
303 {"new", (PyCFunction)MD5_new, METH_VARARGS, new_doc}, |
| 2860 | 304 {NULL, NULL} /* Sentinel */ |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
305 }; |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
306 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
307 |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
308 /* Initialize this module. */ |
|
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
309 |
|
24471
f66b3a3509c7
Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents:
24283
diff
changeset
|
310 PyMODINIT_FUNC |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
311 init_md5(void) |
|
1132
6461dac9a9f2
* mymalloc.h: always allocate one extra byte, since some malloc's
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
312 { |
|
20850
2962f01924c9
Simplify initmd5() to use PyModule_AddIntConstant().
Fred Drake <fdrake@acm.org>
parents:
20843
diff
changeset
|
313 PyObject *m, *d; |
|
11711
6546ea06e157
Patch from Paul Sokolovsky <Paul.Sokolovsky@technologist.com>:
Fred Drake <fdrake@acm.org>
parents:
9588
diff
changeset
|
314 |
|
44350
26384b8180c7
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents:
42333
diff
changeset
|
315 Py_TYPE(&MD5type) = &PyType_Type; |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
316 if (PyType_Ready(&MD5type) < 0) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
317 return; |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
29787
diff
changeset
|
318 m = Py_InitModule3("_md5", md5_functions, module_doc); |
|
36324
1af7f719ed28
Check return result from Py_InitModule*(). This API can fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
35375
diff
changeset
|
319 if (m == NULL) |
|
1af7f719ed28
Check return result from Py_InitModule*(). This API can fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
35375
diff
changeset
|
320 return; |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
321 d = PyModule_GetDict(m); |
|
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
322 PyDict_SetItemString(d, "MD5Type", (PyObject *)&MD5type); |
|
20850
2962f01924c9
Simplify initmd5() to use PyModule_AddIntConstant().
Fred Drake <fdrake@acm.org>
parents:
20843
diff
changeset
|
323 PyModule_AddIntConstant(m, "digest_size", 16); |
|
9363
f351c64c82ed
Doc strings by Chris Petrilli.
Guido van Rossum <guido@python.org>
parents:
4635
diff
changeset
|
324 /* No need to check the error here, the caller will do that */ |
|
1746
1940892d2fe3
Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents:
1418
diff
changeset
|
325 } |
