summaryrefslogtreecommitdiff
path: root/schema
diff options
context:
space:
mode:
authorMichael Stahl <michael.stahl@allotropia.de>2024-01-10 20:37:50 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2024-01-20 17:39:30 +0100
commit45f3d436d0a1271b42c22d9244cc24d237c94ff9 (patch)
tree597292af6bf7c458a6ce9e3b23c7f994694fb3f8 /schema
parent3f9979db2331e9cdf73743cc68a3ce7174ea54fa (diff)
tdf#105844 add test for ODF wholesome encryption with macro signature
... plus manifest schema extension. Change-Id: I73721db8620e97bd58556f9a71afcb0a33f6c7e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161898 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 4d6e9d5e155da1dde05233eb87691e2a454162f6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161866 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'schema')
-rw-r--r--schema/libreoffice/OpenDocument-v1.3+libreoffice-manifest-schema.rng70
1 files changed, 49 insertions, 21 deletions
diff --git a/schema/libreoffice/OpenDocument-v1.3+libreoffice-manifest-schema.rng b/schema/libreoffice/OpenDocument-v1.3+libreoffice-manifest-schema.rng
index a2631facc7f5..77b87101b04a 100644
--- a/schema/libreoffice/OpenDocument-v1.3+libreoffice-manifest-schema.rng
+++ b/schema/libreoffice/OpenDocument-v1.3+libreoffice-manifest-schema.rng
@@ -14,7 +14,9 @@
-->
<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
-<rng:grammar xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+<rng:grammar xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
+xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
+xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<rng:start>
<rng:choice>
<rng:ref name="manifest"/>
@@ -103,17 +105,19 @@
</rng:element>
</rng:define>
<rng:define name="encryption-data-attlist">
- <rng:interleave>
- <rng:attribute name="manifest:checksum-type">
- <rng:choice>
- <rng:value>SHA1/1K</rng:value>
- <rng:ref name="anyURI"/>
- </rng:choice>
- </rng:attribute>
- <rng:attribute name="manifest:checksum">
- <rng:ref name="base64Binary"/>
- </rng:attribute>
- </rng:interleave>
+ <rng:optional>
+ <rng:interleave>
+ <rng:attribute name="manifest:checksum-type">
+ <rng:choice>
+ <rng:value>SHA1/1K</rng:value>
+ <rng:ref name="anyURI"/>
+ </rng:choice>
+ </rng:attribute>
+ <rng:attribute name="manifest:checksum">
+ <rng:ref name="base64Binary"/>
+ </rng:attribute>
+ </rng:interleave>
+ </rng:optional>
</rng:define>
<rng:define name="file-entry">
<rng:element name="manifest:file-entry">
@@ -165,18 +169,39 @@
<rng:value>PGP</rng:value>
</rng:attribute>
<rng:interleave>
- <rng:attribute name="manifest:key-derivation-name">
- <rng:choice>
- <rng:value>PBKDF2</rng:value>
- <rng:ref name="anyURI"/>
- </rng:choice>
- </rng:attribute>
+ <rng:choice>
+ <rng:interleave>
+ <rng:attribute name="manifest:key-derivation-name">
+ <rng:choice>
+ <rng:value>PBKDF2</rng:value>
+ <rng:ref name="anyURI"/>
+ </rng:choice>
+ </rng:attribute>
+ <rng:attribute name="manifest:iteration-count">
+ <rng:ref name="nonNegativeInteger"/>
+ </rng:attribute>
+ </rng:interleave>
+ <rng:interleave>
+ <rng:attribute name="manifest:key-derivation-name">
+ <!--
+ <rng:value>urn:oasis:names:tc:opendocument:xmlns:manifest:1.5#argon2id</rng:value>
+ -->
+ <rng:value>urn:org:documentfoundation:names:experimental:office:manifest:argon2id</rng:value>
+ </rng:attribute>
+ <rng:attribute name="loext:argon2-iterations">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ <rng:attribute name="loext:argon2-memory">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ <rng:attribute name="loext:argon2-lanes">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ </rng:interleave>
+ </rng:choice>
<rng:attribute name="manifest:salt">
<rng:ref name="base64Binary"/>
</rng:attribute>
- <rng:attribute name="manifest:iteration-count">
- <rng:ref name="nonNegativeInteger"/>
- </rng:attribute>
<rng:optional>
<rng:attribute name="manifest:key-size">
<rng:ref name="nonNegativeInteger"/>
@@ -214,6 +239,9 @@
<rng:define name="nonNegativeInteger">
<rng:data type="nonNegativeInteger"/>
</rng:define>
+ <rng:define name="positiveInteger">
+ <rng:data type="positiveInteger"/>
+ </rng:define>
<rng:define name="start-key-generation">
<rng:element name="manifest:start-key-generation">
<rng:ref name="start-key-generation-attlist"/>