From b2855c96c4c5edd10383b29ff008be5d479989d3 Mon Sep 17 00:00:00 2001 From: Elesin Alexey Date: Tue, 19 Jul 2022 16:36:14 +0300 Subject: [PATCH 1/5] Add sign time to pVerifyInfo --- pycryptoprosdk/libpycades.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pycryptoprosdk/libpycades.cpp b/pycryptoprosdk/libpycades.cpp index 6caa71d..e795ce5 100644 --- a/pycryptoprosdk/libpycades.cpp +++ b/pycryptoprosdk/libpycades.cpp @@ -472,6 +472,8 @@ static PyObject * Verify(PyObject *self, PyObject *args) { if (pVerifyInfo) { PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); + PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); + PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); if (pVerifyInfo->dwStatus == 0) { DWORD contentLength = 0; @@ -544,6 +546,8 @@ static PyObject * VerifyDetached(PyObject *self, PyObject *args) if (pVerifyInfo) { PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); + PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); + PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); CadesFreeVerificationInfo(pVerifyInfo); } From 40a484127dee86f69eb717dc76ee8a97a6164b23 Mon Sep 17 00:00:00 2001 From: Elesin Alexey Date: Tue, 19 Jul 2022 16:56:39 +0300 Subject: [PATCH 2/5] Add sign time to pVerifyInfo test --- pycryptoprosdk/libpycades.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pycryptoprosdk/libpycades.cpp b/pycryptoprosdk/libpycades.cpp index e795ce5..7014ab7 100644 --- a/pycryptoprosdk/libpycades.cpp +++ b/pycryptoprosdk/libpycades.cpp @@ -473,7 +473,7 @@ static PyObject * Verify(PyObject *self, PyObject *args) { PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); - PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); + //PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); if (pVerifyInfo->dwStatus == 0) { DWORD contentLength = 0; @@ -547,7 +547,7 @@ static PyObject * VerifyDetached(PyObject *self, PyObject *args) PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); - PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); + //PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); CadesFreeVerificationInfo(pVerifyInfo); } From 9aa89959e098ded4a249e4579c629942ff066ce9 Mon Sep 17 00:00:00 2001 From: Elesin Alexey Date: Tue, 19 Jul 2022 17:03:11 +0300 Subject: [PATCH 3/5] Add sign time to VerificationInfoDetached --- pycryptoprosdk/__init__.py | 1 + pycryptoprosdk/libpycades.cpp | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pycryptoprosdk/__init__.py b/pycryptoprosdk/__init__.py index cc865cc..16431fe 100644 --- a/pycryptoprosdk/__init__.py +++ b/pycryptoprosdk/__init__.py @@ -175,6 +175,7 @@ def __init__(self, verification_info): self._verification_info = verification_info self.verification_status = self._verification_info['verificationStatus'] + self.signing_time = self._verification_info['signingTime'] self.cert = self._get_cert() self.error = self._verification_info['error'] diff --git a/pycryptoprosdk/libpycades.cpp b/pycryptoprosdk/libpycades.cpp index 7014ab7..705b71a 100644 --- a/pycryptoprosdk/libpycades.cpp +++ b/pycryptoprosdk/libpycades.cpp @@ -472,8 +472,7 @@ static PyObject * Verify(PyObject *self, PyObject *args) { if (pVerifyInfo) { PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); - PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); - //PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); + PyDict_SetItemString(res, "signingTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); if (pVerifyInfo->dwStatus == 0) { DWORD contentLength = 0; @@ -546,8 +545,7 @@ static PyObject * VerifyDetached(PyObject *self, PyObject *args) if (pVerifyInfo) { PyDict_SetItemString(res, "verificationStatus", PyLong_FromLong(pVerifyInfo->dwStatus)); PyDict_SetItemString(res, "certInfo", GetCertInfo(pVerifyInfo->pSignerCert)); - PyDict_SetItemString(res, "pSigningTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); - //PyDict_SetItemString(res, "pSignatureTimeStampTime", FileTimeToPyDateTime(pVerifyInfo->pSignatureTimeStampTime)); + PyDict_SetItemString(res, "signingTime", FileTimeToPyDateTime(pVerifyInfo->pSigningTime)); CadesFreeVerificationInfo(pVerifyInfo); } From f57f5f6fae7e7ddc116ec86723a24aaf5b1653c0 Mon Sep 17 00:00:00 2001 From: Elesin Alexey Date: Tue, 23 Aug 2022 15:12:14 +0300 Subject: [PATCH 4/5] Fix exception on failed verification --- pycryptoprosdk/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pycryptoprosdk/__init__.py b/pycryptoprosdk/__init__.py index 16431fe..8d3018d 100644 --- a/pycryptoprosdk/__init__.py +++ b/pycryptoprosdk/__init__.py @@ -175,10 +175,15 @@ def __init__(self, verification_info): self._verification_info = verification_info self.verification_status = self._verification_info['verificationStatus'] - self.signing_time = self._verification_info['signingTime'] + self.signing_time = self._get_signing_time() self.cert = self._get_cert() self.error = self._verification_info['error'] + def _get_signing_time(self): + if self.verification_status == -1: + return + return self._verification_info.get('signingTime') + def _get_cert(self): if self.verification_status == -1: return From edab18d939b8eeafd5f1878694bd6e5010079556 Mon Sep 17 00:00:00 2001 From: Elesin Alexey Date: Tue, 4 Oct 2022 17:33:39 +0300 Subject: [PATCH 5/5] Bump version to 1.0.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c56a1d2..9eb960b 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ setup( name='pycryptoprosdk', - version='1.0.0', + version='1.0.1', url='https://github.com/Keyintegrity/pycryptoprosdk', author='uishnik', author_email='uishnik@yandex.ru',