Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
7638 views
1
#ifndef MUPDF_PDF_CRYPT_H
2
#define MUPDF_PDF_CRYPT_H
3
4
/*
5
* Encryption
6
*/
7
8
pdf_crypt *pdf_new_crypt(fz_context *ctx, pdf_obj *enc, pdf_obj *id);
9
void pdf_drop_crypt(fz_context *ctx, pdf_crypt *crypt);
10
11
void pdf_crypt_obj(fz_context *ctx, pdf_crypt *crypt, pdf_obj *obj, int num, int gen);
12
void pdf_crypt_buffer(fz_context *ctx, pdf_crypt *crypt, fz_buffer *buf, int num, int gen);
13
fz_stream *pdf_open_crypt(fz_context *ctx, fz_stream *chain, pdf_crypt *crypt, int num, int gen);
14
fz_stream *pdf_open_crypt_with_filter(fz_context *ctx, fz_stream *chain, pdf_crypt *crypt, pdf_obj *name, int num, int gen);
15
16
int pdf_crypt_version(fz_context *ctx, pdf_document *doc);
17
int pdf_crypt_revision(fz_context *ctx, pdf_document *doc);
18
char *pdf_crypt_method(fz_context *ctx, pdf_document *doc);
19
int pdf_crypt_length(fz_context *ctx, pdf_document *doc);
20
unsigned char *pdf_crypt_key(fz_context *ctx, pdf_document *doc);
21
22
#ifndef NDEBUG
23
void pdf_print_crypt(fz_context *ctx, pdf_crypt *crypt);
24
#endif
25
26
typedef struct pdf_designated_name_s
27
{
28
char *cn;
29
char *o;
30
char *ou;
31
char *email;
32
char *c;
33
}
34
pdf_designated_name;
35
36
void pdf_drop_designated_name(fz_context *ctx, pdf_designated_name *dn);
37
38
pdf_signer *pdf_read_pfx(fz_context *ctx, const char *sigfile, const char *password);
39
pdf_signer *pdf_keep_signer(fz_context *ctx, pdf_signer *signer);
40
void pdf_drop_signer(fz_context *ctx, pdf_signer *signer);
41
pdf_designated_name *pdf_signer_designated_name(fz_context *ctx, pdf_signer *signer);
42
void pdf_write_digest(fz_context *ctx, pdf_document *doc, char *filename, pdf_obj *byte_range, int digest_offset, int digest_length, pdf_signer *signer);
43
44
/*
45
pdf_signature_widget_byte_range: retrieve the byte range for a signature widget
46
*/
47
int pdf_signature_widget_byte_range(fz_context *ctx, pdf_document *doc, pdf_widget *widget, int (*byte_range)[2]);
48
49
/*
50
pdf_signature_widget_contents: retrieve the contents for a signature widget
51
*/
52
int pdf_signature_widget_contents(fz_context *ctx, pdf_document *doc, pdf_widget *widget, char **contents);
53
54
/*
55
pdf_check_signature: check a signature's certificate chain and digest
56
*/
57
int pdf_check_signature(fz_context *ctx, pdf_document *doc, pdf_widget *widget, char *file, char *ebuf, int ebufsize);
58
59
/*
60
pdf_sign_signature: sign a signature form field
61
*/
62
void pdf_sign_signature(fz_context *ctx, pdf_document *doc, pdf_widget *widget, const char *sigfile, const char *password);
63
64
#endif
65
66