root/middleware-offline/trunk/_src/eidmw/applayer/SigVerifier.h @ 256

Revision 256, 1.4 KB (checked in by vsilva, 7 years ago)

Fix some bugs in PDF native signature. Support more OS

Line 
1#include "eidErrors.h"
2#include "SigContainer.h"
3
4namespace eIDMW
5{
6        enum SigVerifyErrorCode
7        {
8
9                XADES_ERROR_OK, 
10                XADES_ERROR_NOSIG,
11                XADES_ERROR_BROKENSIG,
12                XADES_ERROR_EXTERNAL_REFS,
13                XADES_ERROR_INVALID_RSA,
14                XADES_ERROR_INVALID_CERTIFICATE,
15                XADES_ERROR_INVALID_TIMESTAMP
16
17        };
18
19        class SignatureImpl;
20
21        class SignatureVerifier
22        {
23
24        public:
25                EIDMW_APL_API SignatureVerifier(const char *sig_container_path);
26                EIDMW_APL_API ~SignatureVerifier();
27
28                EIDMW_APL_API SigVerifyErrorCode Verify();
29                EIDMW_APL_API char *GetSigner();
30                EIDMW_APL_API char *GetTimestampString();
31                EIDMW_APL_API time_t GetUnixTimestamp();
32               
33                //getTimestamp() //TODO: Create a custom class struct that expresses the timestamp in all its glorious detail
34
35        private:
36                void terminateXMLUtils();
37                void initXMLUtils();
38                SigVerifyErrorCode ValidateXades(CByteArray, tHashedFile **);
39                SigVerifyErrorCode ValidateTimestamp(CByteArray signature, CByteArray timestamp);
40                CByteArray do_post_validate_timestamp(char *input, long input_len, char *sha1_string);
41                bool grep_validation_result (CByteArray validate_data);
42                bool ValidateCert(const char *certificate);
43               
44                char *parseSubjectFromCert();
45                void initXerces();
46                void base64Decode(const char *array, unsigned int inlen, unsigned char *&decoded, unsigned int &decoded_len);
47                char * m_sigcontainer_path;
48                char * m_time_and_date;
49                X509 *m_cert;
50                SignatureImpl *pimpl;
51
52        };
53
54
55}
Note: See TracBrowser for help on using the browser.