On 28-Jul-08, at 1:37 PM, [EMAIL PROTECTED] wrote:
I dont fully understand. What is the difference between a "crypt
filter dictionary" and a "filter dictionary"?
Not to step on the OP, but my take on this:
A standard stream can have a filter chain on it, and one of the
filters in the chain can be a 'Crypt' filter. That's what was meant
by a "filter dictionary" I think.
To actually know what algorithm to use in a particular 'Crypt' filter
instance, you look at the corresponding DecodeParms entry. This is a
dictionary, if present, with Type CryptFilterDecodeParms and a Name
key. The value of that Name key indexes the CF dictionary in the
global Encryption Dictionary. The values in the CF dictionary are
"crypt filter dictionaries" which define the actual cipher, key
length, authorization triggers and so on.
So the cipher used for 'Crypt' filter is a parameter, one specified
one level of indirection away. The key must also be derived from the
global encryption dictionary. So yes you need RC4 and AES stream
elements, but like JPXDecode, their actual use requires information
from outside the stream dictionary.
That's my understanding, anyway.
-r