aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2009-10-18 04:03:18 +0200
committerJay Berkenbilt <ejb@ql.org>2009-10-18 04:03:18 +0200
commitb873dc9c59f4445239f68d7138aebb53cc0df648 (patch)
tree4a593b056846a5568debca39ecf07d039adf53b4 /TODO
parent5c253d1c13d9d3d4123554d6775090a100f798fa (diff)
downloadqpdf-b873dc9c59f4445239f68d7138aebb53cc0df648.tar.zst
implemented writing R4/V4 encryption except that the output files don't open in Adobe reader 9.1.3.
git-svn-id: svn+q:///qpdf/trunk@816 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'TODO')
-rw-r--r--TODO67
1 files changed, 36 insertions, 31 deletions
diff --git a/TODO b/TODO
index 488f588c..b2da8d35 100644
--- a/TODO
+++ b/TODO
@@ -43,48 +43,53 @@
(http://delphi.about.com). .. use at your own risk and for whatever
the purpose you want .. no support provided. Sample code provided."
- * Implement as much of R = 4 encryption as possible. Already able to
- decode AES-128-CBC and check passwords.
+ * R = 4, V = 4 encryption.
- aes test suite: use fips-197 test vector with cbc disabled; encrypt
- and decrypt some other files including multiples of 16 and not to
- test cbc mode.
+ - Update C API for R4 encryption
- /Encrypt keys (if V == 4)
+ - When we write encrypted files, we must remember to omit any
+ encryption filter settings from original streams.
- /StmF - name of crypt filter for streams; default /Identity
- /StrF - name of crypt filter for strings; default /Identity
- /EFF - crypt filter for embedded files without their own crypt
- filters; default is to use /StmF
+ - test various combinations with and without cleartext-metadata
+ and aes in compression tests
- /CF - keys are crypt filter names, values are are crypt
- dictionaries
+ - figure out a way to test crypt filters defined on a stream
- Individual streams may also have crypt filters. Filter type
- /Crypt; /DecodeParms must contain a Crypt filter decode
- parameters dictionary whose /Name entry specifies the particular
- filter to be used. If /Name is missing, use /Identity.
- /DecodeParms << /Crypt << /Name /XYZ >> >> where /XYZ is
- /Identity or a key in /CF.
+ - would be nice to test strings and streams with different
+ encryption types, but without sample data, we'd have to write
+ them ourselves which is not that useful
- /Identity means not to encrypt.
+ - figure out why xpdf can open my files but not acroread
- Crypt Dictionaries
+ - figure out how to look at the metadata so I can tell whether
+ /EncryptMetadata is working the way it's supposed to
- /Type (optional) /CryptFilter
- /CFM:
- /V2 - use rc4
- /AESV2 - use aes
- /Length - supposed to be key length, but the one file I have
- has a bogus value for it, so I'm ignoring it.
+ - Do something with embedded files, but what and how?
- We will ignore remaining fields and values.
+ - General notes:
- Remember to honor /EncryptMetadata; applies to streams of /Type
- /Metadata
+ /CF - keys are crypt filter names, values are are crypt
+ dictionaries
- When we write encrypted files, we must remember to omit any
- encryption filter settings from original streams.
+ Individual streams may also have crypt filters. Filter type
+ /Crypt; /DecodeParms must contain a Crypt filter decode
+ parameters dictionary whose /Name entry specifies the particular
+ filter to be used. If /Name is missing, use /Identity.
+ /DecodeParms << /Crypt << /Name /XYZ >> >> where /XYZ is
+ /Identity or a key in /CF.
+
+ /Identity means not to encrypt.
+
+ Crypt Dictionaries
+
+ /Type (optional) /CryptFilter
+ /CFM:
+ /V2 - use rc4
+ /AESV2 - use aes
+ /Length - supposed to be key length, but the one file I have
+ has a bogus value for it, so I'm ignoring it.
+
+ We will ignore remaining fields and values.
2.2
===