2.4.309 BrtBookProtectionIso

The BrtBookProtectionIso record specifies protection options for a workbook in a manner compatible with ISO/IEC 29500 workbook protection records as specified in [ISO/IEC29500-1:2016], section 18.2.29. A BrtBookProtectionIso record MUST be immediately followed by a BrtBookProtection (section 2.4.308) record whose protpwdBook and protpwdRev fields MUST be set to 0x0000 and whose wFlags field MUST have the same value as the field of the same name in the BrtBookProtectionIso record.


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

dwBookSpinCount

dwRevSpinCount

wFlags

ipdBookPasswordData (variable)

...

ipdRevPasswordData (variable)

...

dwBookSpinCount (4 bytes): An unsigned 32-bit integer that specifies the number of times that the hash function was iterated over the password to generate the rgbHash field of ipdBookPasswordData, as described in Strong Password Verifier Algorithm (section 2.2.10). This value MUST NOT be greater than 10,000,000.

dwRevSpinCount (4 bytes): An unsigned 32-bit integer that specifies the number of times that the hash function was iterated over the password to generate the rgbHash field of ipdRevPasswordData, as described in Strong Password Verifier Algorithm. This value MUST NOT be greater than 10,000,000.

wFlags (2 bytes): A BookProtectionFlags (section 2.5.7) that specifies what aspects of the workbook are protected. It MUST have the same value as the wFlags field in the following BrtBookProtection (section 2.4.308) record.

ipdBookPasswordData (variable): An IsoPasswordData (section 2.5.80) that specifies the salt, hash algorithm and password hash of the password required for unlocking structure and window protection for the workbook<27>. If the size of the rgbHash member of this field is zero, then no password is required to remove structure and window protection and the size of the rgbHash member of ipdRevPasswordData MUST be nonzero.

Window protection is defined as preventing changes to the windows of the workbook such as moving, resizing, and closing windows.

Structure protection is defined as preventing changes to the structure of the workbook such as moving, deleting, hiding, unhiding, renaming sheets, inserting new sheets, and moving sheets to another workbook.

ipdRevPasswordData (variable): An IsoPasswordData (section 2.5.80) that specifies the salt, hash algorithm, and password hash for the password required to unlock change tracking information for the workbook<28>. If the size of this field is zero, then no password is required to remove revision protection and the size of the rgbHash member of ipdBookPasswordData MUST be nonzero.