Verified Commit 5d1eada7 authored by Tomáš Stefan's avatar Tomáš Stefan
Browse files

compare message digest

check data integrity - hash inside the signature equals computed
 hash over provided range
parent 9471c9bc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,6 +6,6 @@

sigil_err_t parse_certs(sigil_t *sgl);

int sigil_sigil_self_test(int verbosity);
int sigil_cert_self_test(int verbosity);

#endif /* PDF_SIGIL_CERT_H */
+39 −34
Original line number Diff line number Diff line
@@ -38,6 +38,10 @@
#define CERT_STATUS_VERIFIED            1
#define CERT_STATUS_FAILED              2

#define HASH_CMP_RESULT_UNKNOWN         0
#define HASH_CMP_RESULT_MATCH           1
#define HASH_CMP_RESULT_DIFFER          2

#define DEALLOCATE_FILE                 0x01
#define DEALLOCATE_BUFFER               0x02

@@ -51,5 +55,6 @@
#define ERR_END_OF_DICT                 7
#define ERR_NO_SIGNATURE                8
#define ERR_OPENSSL                     9
#define ERR_DIGEST_TYPE                 10

#endif /* PDF_SIGIL_CONSTANTS_H */
+1 −1
Original line number Diff line number Diff line
@@ -6,6 +6,6 @@

sigil_err_t parse_contents(sigil_t *sgl);

int sigil_sigil_self_test(int verbosity);
int sigil_contents_self_test(int verbosity);

#endif //PDF_SIGIL_CONTENTS_H
+10 −2
Original line number Diff line number Diff line
@@ -4,14 +4,22 @@
#include "types.h"


sigil_err_t hex_to_dec(const char *in, size_t in_len, unsigned char *out, size_t *out_len);

void print_computed_hash(sigil_t *sgl);

sigil_err_t compute_sha1_hash_over_range(sigil_t *sgl);
sigil_err_t compute_digest_pkcs1(sigil_t *sgl);

sigil_err_t load_certificates(sigil_t *sgl);

sigil_err_t load_digest(sigil_t *sgl);

sigil_err_t verify_signing_certificate(sigil_t *sgl);

int sigil_sigil_self_test(int verbosity);
sigil_err_t compare_digest(sigil_t *sgl);

sigil_err_t verify_digest(sigil_t *sgl, int *result);

int sigil_cryptography_self_test(int verbosity);

#endif /* PDF_SIGIL_CRYPTOGRAPHY_H */
+1 −1
Original line number Diff line number Diff line
@@ -6,6 +6,6 @@

sigil_err_t process_sig_dict(sigil_t *sgl);

int sigil_sigil_self_test(int verbosity);
int sigil_sig_dict_self_test(int verbosity);

#endif /* PDF_SIGIL_SIG_DICT_H */
Loading