Revision Summary Date Revision History Revision Class Comments 4/4/2008 0.1 New Initial Availability 6/27/2008 1.0 Revised and edited the technical content 10/6/2008 1.01 Editorial Revised and edited the technical content 12/12/2008 1.02 Editorial Revised and edited the technical content 3/18/2009 1.03 Editorial Revised and edited the technical content 7/13/2009 1.04 Major Revised and edited the technical content 8/28/2009 1.05 Major Updated and revised the technical content 11/6/2009 1.06 Editorial Revised and edited the technical content 2/19/2010 2.0 Editorial Revised and edited the technical content 3/31/2010 2.01 Editorial Revised and edited the technical content 4/30/2010 2.02 Editorial Revised and edited the technical content 6/7/2010 2.03 Editorial Revised and edited the technical content
6/29/2010 2.04 Editorial Changed language and formatting in the technical content. 7/23/2010 2.05 Clarified the meaning of the technical content. 9/27/2010 2.05 None No changes to the meaning, language, or formatting of the technical content. 11/15/2010 2.05 None No changes to the meaning, language, or formatting of the technical content. 12/17/2010 2.05 None No changes to the meaning, language, or formatting of the technical content. 3/18/2011 2.05 None No changes to the meaning, language, or formatting of the technical content. 6/10/2011 2.05 None No changes to the meaning, language, or formatting of the
technical content. 1/20/2012 2.6 Minor Clarified the meaning of the technical content. 4/11/2012 2.6 None No changes to the meaning, language, or formatting of the technical content. 7/16/2012 2.7 Minor Clarified the meaning of the technical content. 10/8/2012 2.8 Minor Clarified the meaning of the technical content. 2/11/2013 2.8 None No changes to the meaning, language, or formatting of the technical content. 7/30/2013 2.8 None No changes to the meaning, language, or formatting of the technical content. 11/18/2013 2.8 None No changes to the meaning, language, or formatting of the technical content.
If the fCryptoAPI bit is set and the fAES bit is not set, RC4 encryption MUST be used. If the fAES encryption bit is set, a that supports mode MUST be used. For compatibility with current implementations, encryption with a key length of 128, 192, or 256 bits SHOULD<7> be used. 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 A B C D E F Unused A – Reserved1 (1 bit): A value that MUST be 0 and MUST be ignored. B – Reserved2 (1 bit): A value that MUST be 0 and MUST be ignored. C – fCryptoAPI (1 bit): A flag that specifies whether CryptoAPI RC4 or ECMA-376 encryption is used. It MUST be 1 unless fExternal is 1. If fExternal is 1, it MUST be 0. D – fDocProps (1 bit): A value that MUST be 0 if document properties are encrypted. The encryption of document properties is specified in section . E – fExternal (1 bit): A value that MUST be 1 if extensible encryption is used. If this value is 1, the value of every other field in this structure MUST be 0. F – fAES (1 bit): A value that MUST be 1 if the protected content is an ECMA-376 document otherwise, it MUST be 0. If the fAES bit is 1, the fCryptoAPI bit MUST also be 1. Unused (26 bits): A value that is undefined and MUST be ignored. EncryptionHeader The EncryptionHeader structure is used by ECMA-376 document encryption and Office binary document RC4 CryptoAPI encryption, as defined in section , to specify encryption properties for an encrypted . 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 Flags SizeExtra AlgID AlgIDHash KeySize ProviderType Reserved1 Reserved2 CSPName
Index \ 68 36 27 36 26 36 28 27 37 42 38 37 87 85 _ 75 0 79 4 15 A Applicability overview 17 18 17 B Binary document digital signatures 68 75 66 68 68 71 71 71 security 95 70 70 65 74 70 65 58 61 63 63 64 58 62 60 63 Byte ordering 16 C 82 102 66 68 68 15 D 50 Data spaces 17 24 22 23 23 21 25 19 20 21 12 security 93 25 21 19 50 24 77 22 23 78 23 21 Details 68 \0x06DataSpaces\DataSpaceInfo storage ( 27, 36) \0x06DataSpaces\DataSpaceMap stream ( 26, 36) 36 28 27 37 42 38 37 75 65 58 61 63 63 64 58
62 60 63 66 66 68 68 50 19 50 24 22 23 23 21 63 36 40 63 57 47 31 32 32 25 34 29 30 29 19 71 71 26 48 29 64 71 20 21 30 51 56 55 57 63 41 55 57 41 48 30 53 53 51 52 56 70 70 65 25 21 31 74 70 58 70 Digital signatures 16 Document write protection 63 63 64 63 64 security 94 63 79 E ECMA-376 document encryption security 93 36 40 15 63 Elements 71 71 71 70 70 74 70 Encryption 36 36 36 37 42 38 37 15 18 58 61 58 62 60 63 15 50 50 36 40 15 57 47 32 32 34 48 56 51 15 57 55 63
41 57 55 41 48 53 53 51 52 56 58 15 88 57 47 31 32 83 32 25 34 84 29 30 82 81 76 85 87 79 82 77 78 79 88 83 84 82 81 89 76 76 29 F 95 18 19 G 7 I 71 71 Implementer - security considerations 95 93 94 93 93 93 94 94 95 Information Rights Management security 93 Information Rights Management Data Space 18 13 26 11 48 7 IRMDS 27 26 28 27 29 30 29 29 30 30 31 29 64 K 71 L 20 21 30 18 N 10 O Office binary document RC4 CryptoAPI encryption security 93 51 Office binary document RC4 encryption security 94 56 OLE compound file path encoding 16 Overview 15 17 16 15 17 12 16 15 15
18 13 16 16 17 17 17 16 16 15 P 55 57 63 41 55 57 41 89 48 96 30 Pseudocode standard objects 17 16 17 17 17 R 53 53 51 52 56 10 11 10 17 S Security 95 implementer considerations 95 93 94 93 93 93 94 94 70 70 75 17 17 String encoding 16 17 Structure overview 15 17 16 15 12 16 15 15 13 16 16 17 17 17 16 16 15 Structures 65 19 63 31 26 T 65 102 25 U 20 21 V 18 76 21 18 31 W Write protection 16 X 74 70 XOR obfuscation security 94 58 15