=== modified file 'src/pygpgme-signature.c' --- src/pygpgme-signature.c 2009-04-01 09:46:01 +0000 +++ src/pygpgme-signature.c 2013-05-14 09:58:05 +0000 @@ -101,6 +101,8 @@ Py_XDECREF(self->wrong_key_usage); Py_XDECREF(self->validity); Py_XDECREF(self->validity_reason); + Py_XDECREF(self->pubkey_algo); + Py_XDECREF(self->hash_algo); PyObject_Del(self); } @@ -117,6 +119,8 @@ { "validity", T_OBJECT, offsetof(PyGpgmeSignature, validity), READONLY}, { "validity_reason", T_OBJECT, offsetof(PyGpgmeSignature, validity_reason), READONLY}, + { "pubkey_algo", T_OBJECT, offsetof(PyGpgmeSignature, pubkey_algo), READONLY}, + { "hash_algo", T_OBJECT, offsetof(PyGpgmeSignature, hash_algo), READONLY}, { NULL, 0, 0, 0} }; @@ -173,6 +177,8 @@ item->wrong_key_usage = PyBool_FromLong(sig->wrong_key_usage); item->validity = PyInt_FromLong(sig->validity); item->validity_reason = pygpgme_error_object(sig->validity_reason); + item->pubkey_algo = PyInt_FromLong(sig->pubkey_algo); + item->hash_algo = PyInt_FromLong(sig->hash_algo); if (PyErr_Occurred()) { Py_DECREF(item); Py_DECREF(list); === modified file 'src/pygpgme.h' --- src/pygpgme.h 2013-02-13 02:18:22 +0000 +++ src/pygpgme.h 2013-05-14 09:32:17 +0000 @@ -90,6 +90,8 @@ PyObject *wrong_key_usage; PyObject *validity; PyObject *validity_reason; + PyObject *pubkey_algo; + PyObject *hash_algo; } PyGpgmeSignature; typedef struct { === modified file 'tests/test_sign_verify.py' --- tests/test_sign_verify.py 2012-02-29 03:11:10 +0000 +++ tests/test_sign_verify.py 2013-05-14 10:49:01 +0000 @@ -57,6 +57,8 @@ self.assertEqual(sigs[0].wrong_key_usage, False) self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN) self.assertEqual(sigs[0].validity_reason, None) + self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA) + self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1) def test_verify_detached(self): signature = BytesIO(dedent(''' @@ -83,6 +85,8 @@ self.assertEqual(sigs[0].wrong_key_usage, False) self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN) self.assertEqual(sigs[0].validity_reason, None) + self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA) + self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1) def test_verify_clearsign(self): signature = BytesIO(dedent(''' @@ -114,6 +118,8 @@ self.assertEqual(sigs[0].wrong_key_usage, False) self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN) self.assertEqual(sigs[0].validity_reason, None) + self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA) + self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1) def test_verify_multiple_sigs(self): signature = BytesIO(dedent(''' @@ -156,6 +162,8 @@ self.assertEqual(sigs[0].wrong_key_usage, False) self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN) self.assertEqual(sigs[0].validity_reason, None) + self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA) + self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1) self.assertEqual(sigs[1].summary, 0) self.assertEqual(sigs[1].fpr, @@ -167,6 +175,8 @@ self.assertEqual(sigs[1].wrong_key_usage, False) self.assertEqual(sigs[1].validity, gpgme.VALIDITY_UNKNOWN) self.assertEqual(sigs[1].validity_reason, None) + self.assertEqual(sigs[1].pubkey_algo, gpgme.PK_RSA) + self.assertEqual(sigs[1].hash_algo, gpgme.MD_SHA1) def test_verify_no_signature(self): signature = BytesIO(dedent('''