<modifyVerifier>
(Modification Verifier)
This element specifies the write protection settings which have been applied to a PresentationML document. Write protection refers to a mode in which the document's contents cannot be modified, and the document cannot be resaved using the same file name.
When present, the application shall require a password to enable modifications to the document. If the supplied password does not match the hash value in this attribute, then write protection shall be enabled. If this element is omitted, then no write protection shall be applied to the current document. Since this protection does not encrypt the document, malicious applications may circumvent its use.
The password supplied to the algorithm is to be a Unicode string; strings longer than 255 characters are truncated to 255 characters. The attributes of this element specify the algorithm to be used to verify the password provided by the user.
<p:documentProtection … p:cryptAlgorithmClass="hash" p:cryptAlgorithmType="typeAny" p:cryptAlgorithmSid="1" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" ... />
In order for the hosting application to enable edits to the document, the hosting application would have to be provided with a password that the hosting application would then hash using the algorithm specified by the algorithm attributes and compare to the value of the @hashData
attribute (9oN7nWkCAyEZib1RomSJTjmPpCY=
). If the two values matched, the file would be opened in an editable state.
Parent Elements |
---|
|
Attributes |
Description |
||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Specifies that a cryptographic algorithm which was not defined by this Office Open XML Standard has been used to generate the hash value stored with this document. This value, when present, shall be interpreted based on the value of the If this value is present, the <p:… p:algIdExt="0000000A" p:algIdExtSource="futureCryptography" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema unsignedInt datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the application which defined the algorithm value specified by the <p:… p:algIdExt="0000000A" p:algIdExtSource="futureCryptography" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema string datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the class of cryptographic algorithm used by this protection. [: The initial version of this Office Open XML Standard only supports a single version - <p:… p:cryptAlgorithmClass="hash" p:cryptAlgorithmType="typeAny" p:cryptAlgorithmSid="1" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the ST_AlgClass simple type (§4.8.1). |
||||||||||||||||||||||||||||||||
|
Specifies the specific cryptographic hashing algorithm which shall be used along with the The possible values for this attribute shall be interpreted as follows:
<p:… p:cryptAlgorithmClass="hash" p:cryptAlgorithmType="typeAny" p:cryptAlgorithmSid="1" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema unsignedInt datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the type of cryptographic algorithm used by this protection. [: The initial version of this Office Open XML Standard only supports a single type - <p:… p:cryptAlgorithmClass="hash" p:cryptAlgorithmType="typeAny" p:cryptAlgorithmSid="1" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the ST_AlgType simple type (§4.8.2). |
||||||||||||||||||||||||||||||||
|
Specifies the cryptographic provider which was used to generate the hash value stored in this document. If the user provided a cryptographic provider which was not the system's built-in provider, then that provider shall be stored here so it can subsequently be used if available. If this attribute is omitted, then the built-in cryptographic provider on the system shall be used. <p:… p:cryptProvider="Krista'sProvider" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema string datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the type of cryptographic provider to be used. <p:… p:cryptProviderType="rsaAES" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the ST_CryptProv simple type (§4.8.4). |
||||||||||||||||||||||||||||||||
|
Specifies that a cryptographic provider type which was not defined by this Office Open XML Standard has been used to generate the hash value stored with this document. This value, when present, shall be interpreted based on the value of the If this value is present, the <p:… p:cryptProviderTypeExt="00A5691D" p:cryptProvideTypeExtSource="futureCryptography" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema unsignedInt datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the application which defined the provider type value specified by the <p:… p:cryptProviderTypeExt="00A5691D" p:cryptProvideTypeExtSource="futureCryptography" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema string datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the hash value for the password stored with this document. This value shall be compared with the resulting hash value after hashing the user-supplied password using the algorithm specified by the preceding attributes and parent XML element, and if the two values match, the protection shall no longer be enforced. If this value is omitted, then no password shall be associated with the protection, and it may be turned off without supplying any password. <p:… p:cryptAlgorithmClass="hash" p:cryptAlgorithmType="typeAny" p:cryptAlgorithmSid="1" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema string datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the salt which was prepended to the user-supplied password before it was hashed using the hashing algorithm defined by the preceding attribute values to generate the If this attribute is omitted, then no salt shall be prepended to the user-supplied password before it is hashed for comparison with the stored hash value. <p:… p:saltData="ZUdHa+D8F/OAKP3I7ssUnQ==" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema string datatype. |
||||||||||||||||||||||||||||||||
|
Specifies the number of times the hashing function shall be iteratively run (using each iteration's result as the input for the next iteration) when attempting to compare a user-supplied password with the value stored in the <p:… p:spinCount="100000" p:hashData="9oN7nWkCAyEZib1RomSJTjmPpCY=" /> The The possible values for this attribute are defined by the XML Schema unsignedInt datatype. |
The following XML Schema fragment defines the contents of this element:
<complexType name="CT_ModifyVerifier">
<attribute name="cryptProviderType" type="ST_CryptProv" use="required"/>
<attribute name="cryptAlgorithmClass" type="ST_AlgClass" use="required"/>
<attribute name="cryptAlgorithmType" type="ST_AlgType" use="required"/>
<attribute name="cryptAlgorithmSid" type="xsd:unsignedInt" use="required"/>
<attribute name="spinCount" type="xsd:unsignedInt" use="required"/>
<attribute name="saltData" type="xsd:string" use="required"/>
<attribute name="hashData" type="xsd:string" use="required"/>
<attribute name="cryptProvider" type="xsd:string" use="optional"/>
<attribute name="algIdExt" type="xsd:unsignedInt" use="optional"/>
<attribute name="algIdExtSource" type="xsd:string" use="optional"/>
<attribute name="cryptProviderTypeExt" type="xsd:unsignedInt" use="optional"/>
<attribute name="cryptProviderTypeExtSource" type="xsd:string" use="optional"/>
</complexType>