summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-07-26 18:46:03 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-07-26 18:46:03 +0200
commite7fde76bef8ba317cd6cc681c21c27d4aad13199 (patch)
tree482b1f7d83002c5fa28aca78abf9a88c4ccd589d
parent71022104cf64547ba54029555799d72e6fb8027f (diff)
downloadpython-apt-e7fde76bef8ba317cd6cc681c21c27d4aad13199.tar.gz
* support sha256 as well
-rw-r--r--debian/changelog4
-rw-r--r--python/apt_pkgmodule.cc39
2 files changed, 42 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index a086ded0..ba6c47f6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ python-apt (0.6.19) unstable; urgency=low
* doc/examples/print_uris.py:
- added a example to show how the indexfile.ArchiveURI() can be used
with binary packages
+ * python/apt_pkgmodule.cc:
+ - export sha256 generation
[ Otavio Salvador ]
* apt/cache.py:
@@ -11,7 +13,7 @@ python-apt (0.6.19) unstable; urgency=low
- allow change of rootdir for APT database loading
- add dh_installexamples in package building Closes: #376014
- --
+ --
python-apt (0.6.18-0.2) unstable; urgency=low
diff --git a/python/apt_pkgmodule.cc b/python/apt_pkgmodule.cc
index e73628c3..01e9c200 100644
--- a/python/apt_pkgmodule.cc
+++ b/python/apt_pkgmodule.cc
@@ -19,6 +19,7 @@
#include <apt-pkg/tagfile.h>
#include <apt-pkg/md5.h>
#include <apt-pkg/sha1.h>
+#include <apt-pkg/sha256.h>
#include <apt-pkg/init.h>
#include <apt-pkg/pkgsystem.h>
@@ -236,6 +237,43 @@ static PyObject *sha1sum(PyObject *Self,PyObject *Args)
return 0;
}
/*}}}*/
+// sha256sum - Compute the sha1sum of a file or string /*{{{*/
+// ---------------------------------------------------------------------
+static char *doc_sha256sum = "sha256sum(String) -> String or sha256sum(File) -> String";
+static PyObject *sha256sum(PyObject *Self,PyObject *Args)
+{
+ PyObject *Obj;
+ if (PyArg_ParseTuple(Args,"O",&Obj) == 0)
+ return 0;
+
+ // Digest of a string.
+ if (PyString_Check(Obj) != 0)
+ {
+ SHA256Summation Sum;
+ Sum.Add(PyString_AsString(Obj));
+ return CppPyString(Sum.Result().Value());
+ }
+
+ // Digest of a file
+ if (PyFile_Check(Obj) != 0)
+ {
+ SHA256Summation Sum;
+ int Fd = fileno(PyFile_AsFile(Obj));
+ struct stat St;
+ if (fstat(Fd,&St) != 0 ||
+ Sum.AddFD(Fd,St.st_size) == false)
+ {
+ PyErr_SetFromErrno(PyExc_SystemError);
+ return 0;
+ }
+
+ return CppPyString(Sum.Result().Value());
+ }
+
+ PyErr_SetString(PyExc_TypeError,"Only understand strings and files");
+ return 0;
+}
+ /*}}}*/
// init - 3 init functions /*{{{*/
// ---------------------------------------------------------------------
static char *doc_Init =
@@ -370,6 +408,7 @@ static PyMethodDef methods[] =
// Stuff
{"md5sum",md5sum,METH_VARARGS,doc_md5sum},
{"sha1sum",sha1sum,METH_VARARGS,doc_sha1sum},
+ {"sha256sum",sha1sum,METH_VARARGS,doc_sha256sum},
// Strings
{"CheckDomainList",StrCheckDomainList,METH_VARARGS,"CheckDomainList(String,String) -> Bool"},