2.3.5.3 RC4 CryptoAPI EncryptedStreamDescriptor Structure

The RC4 CryptoAPI EncryptedStreamDescriptor structure specifies information about encrypted streams (1) and storages contained within an RC4 CryptoAPI Encrypted Summary stream (1) as specified in section 2.3.5.4. It is specified as shown in the following diagram.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

StreamOffset

StreamSize

Block

NameSize

A

B

Unused

Reserved2

StreamName (variable)

...

StreamOffset (4 bytes): An unsigned integer that specifies the offset, in bytes, within the summary stream (1) where the encrypted stream (1) is written.

StreamSize (4 bytes): An unsigned integer that specifies the size, in bytes, of the encrypted stream (1).

Block (2 bytes): An unsigned integer that specifies the block number used to derive the encryption key for this encrypted stream (1).

NameSize (1 byte): An unsigned integer that specifies the number of characters used by the StreamName field, not including the terminating NULL character.

A – fStream (1 bit): A value that MUST be 1 if the encrypted data is a stream (1). It MUST be 0 if the encrypted data is a storage.

B – Reserved1 (1 bit): A value that MUST be 0 and MUST be ignored.

Unused (6 bits): A value that MUST be ignored.

Reserved2 (4 bytes): A value that MUST be ignored.

StreamName (variable): A null-terminated Unicode string specifying the name of the stream (1) (or storage) stored within the encrypted summary stream (1).