summaryrefslogtreecommitdiff
path: root/fitz/fitz_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/fitz_stream.h')
-rw-r--r--fitz/fitz_stream.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/fitz/fitz_stream.h b/fitz/fitz_stream.h
index f1f3008a..ba0be332 100644
--- a/fitz/fitz_stream.h
+++ b/fitz/fitz_stream.h
@@ -248,7 +248,9 @@ void fz_unchainpipeline(fz_filter *pipe, fz_filter **oldfp, fz_buffer **oldbp);
void fz_pushbackahxd(fz_filter *filter, fz_buffer *in, fz_buffer *out, int n);
fz_error fz_newnullfilter(fz_filter **fp, int len);
+fz_error fz_newcopyfilter(fz_filter **fp);
fz_error fz_newarc4filter(fz_filter **fp, unsigned char *key, unsigned keylen);
+fz_error fz_newaesdfilter(fz_filter **fp, unsigned char *key, unsigned keylen);
fz_error fz_newa85d(fz_filter **filterp, fz_obj *param);
fz_error fz_newa85e(fz_filter **filterp, fz_obj *param);
fz_error fz_newahxd(fz_filter **filterp, fz_obj *param);
@@ -310,7 +312,26 @@ void fz_arc4init(fz_arc4 *state, const unsigned char *key, const unsigned len);
unsigned char fz_arc4next(fz_arc4 *state);
void fz_arc4encrypt(fz_arc4 *state, unsigned char *dest, const unsigned char *src, const unsigned len);
-/* TODO: aes */
+/* AES block cipher implementation from XYSSL */
+
+#define AES_DECRYPT 0
+#define AES_ENCRYPT 1
+
+struct fz_aes_s
+{
+ int nr; /* number of rounds */
+ unsigned long *rk; /* AES round keys */
+ unsigned long buf[68]; /* unaligned data */
+};
+
+typedef struct fz_aes_s fz_aes;
+
+void aes_setkey_enc( fz_aes *ctx, const unsigned char *key, int keysize );
+void aes_setkey_dec( fz_aes *ctx, const unsigned char *key, int keysize );
+void aes_crypt_cbc( fz_aes *ctx, int mode, int length,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output );
/*
* Stream API for Fitz.