1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-12-22 15:48:52 -05:00

XEP-0384: rename bundle node to bundles

This commit is contained in:
Daniel Gultsch 2020-03-08 10:49:00 +01:00
parent 170cc7b3ab
commit 70bdbf31cc

View File

@ -206,13 +206,13 @@
</iq>]]></example> </iq>]]></example>
<p>NOTE: as per <link url='https://xmpp.org/extensions/xep-0060.html#impl-singleton'><cite>XEP-0060</cite> §12.20</link>, it is RECOMMENDED for the publisher to specify an ItemID of "current" to ensure that the publication of a new item will overwrite the existing item.</p> <p>NOTE: as per <link url='https://xmpp.org/extensions/xep-0060.html#impl-singleton'><cite>XEP-0060</cite> §12.20</link>, it is RECOMMENDED for the publisher to specify an ItemID of "current" to ensure that the publication of a new item will overwrite the existing item.</p>
<p>This step presents the risk of introducing a race condition: Two devices might simultaneously try to announce themselves, unaware of the other's existence. The second device would overwrite the first one. To mitigate this, devices MUST check that their own device ID is contained in the list whenever they receive a PEP update from their own account. If they have been removed, they MUST reannounce themselves.</p> <p>This step presents the risk of introducing a race condition: Two devices might simultaneously try to announce themselves, unaware of the other's existence. The second device would overwrite the first one. To mitigate this, devices MUST check that their own device ID is contained in the list whenever they receive a PEP update from their own account. If they have been removed, they MUST reannounce themselves.</p>
<p>Furthermore, a device MUST publish its IdentityKey, a signed PreKey, and a list of PreKeys. This tuple is called a bundle. Bundles are maintained as multiple items in a PEP node called urn:xmpp:omemo:1:bundle. Each bundle MUST be stored in a seperate item. The item id MUST be set to the device id.</p> <p>Furthermore, a device MUST publish its IdentityKey, a signed PreKey, and a list of PreKeys. This tuple is called a bundle. Bundles are maintained as multiple items in a PEP node called urn:xmpp:omemo:1:bundles. Each bundle MUST be stored in a seperate item. The item id MUST be set to the device id.</p>
<p>A bundle is an element called bundle in the urn:xmpp:omomo:1 namespace. It has a child element called spk that contains the signed PreKey as base64 encoded data and a child element called ik that contains the identity key as base64 encoded data. PreKeys are multiple elements called pk that each contain one PreKey as base64 encoded data. PreKeys are wrapped in an element called prekeys which is a child of the bundle element.</p> <p>A bundle is an element called bundle in the urn:xmpp:omomo:1 namespace. It has a child element called spk that contains the signed PreKey as base64 encoded data and a child element called ik that contains the identity key as base64 encoded data. PreKeys are multiple elements called pk that each contain one PreKey as base64 encoded data. PreKeys are wrapped in an element called prekeys which is a child of the bundle element.</p>
<p>The bundle element MAY contain an attribute called label, which is a user defined string describing the device that published that bundle.</p> <p>The bundle element MAY contain an attribute called label, which is a user defined string describing the device that published that bundle.</p>
<example caption='Publishing bundle information'><![CDATA[ <example caption='Publishing bundle information'><![CDATA[
<iq from='juliet@capulet.lit' type='set' id='annouce2'> <iq from='juliet@capulet.lit' type='set' id='annouce2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:omemo:1:bundle'> <publish node='urn:xmpp:omemo:1:bundles'>
<item id='31415'> <item id='31415'>
<bundle xmlns='urn:xmpp:omemo:1' <bundle xmlns='urn:xmpp:omemo:1'
label='My desktop client'> label='My desktop client'>
@ -229,12 +229,12 @@
</publish> </publish>
</pubsub> </pubsub>
</iq>]]></example> </iq>]]></example>
<p>It is RECOMMENDED to set the access model of the urn:xmpp:omemo:1:bundle node to open to give entities without presence subscription read access to the bundles and allow them to establish an OMEMO session. Not having presence subscription is a common occurrence on the first few messages between two contacts and can also happen fairly frequently in group chats as not every participant had prior communication with every other participant.</p> <p>It is RECOMMENDED to set the access model of the urn:xmpp:omemo:1:bundles node to open to give entities without presence subscription read access to the bundles and allow them to establish an OMEMO session. Not having presence subscription is a common occurrence on the first few messages between two contacts and can also happen fairly frequently in group chats as not every participant had prior communication with every other participant.</p>
<p>The access model can be changed efficiently by using publish-options as described in <link url="https://xmpp.org/extensions/xep-0060.html#publisher-publish-options"><cite>XEP-0060</cite> §7.1.5</link>.</p> <p>The access model can be changed efficiently by using publish-options as described in <link url="https://xmpp.org/extensions/xep-0060.html#publisher-publish-options"><cite>XEP-0060</cite> §7.1.5</link>.</p>
<example caption='Publishing bundle information with an open access model'><![CDATA[ <example caption='Publishing bundle information with an open access model'><![CDATA[
<iq from='juliet@capulet.lit' type='set' id='annouce2'> <iq from='juliet@capulet.lit' type='set' id='annouce2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:omemo:1:bundle'> <publish node='urn:xmpp:omemo:1:bundles'>
<item id='31415'> <item id='31415'>
<bundle xmlns='urn:xmpp:omemo:1'> <bundle xmlns='urn:xmpp:omemo:1'>
<!----> <!---->
@ -262,7 +262,7 @@
to='juliet@capulet.lit' to='juliet@capulet.lit'
id='fetch1'> id='fetch1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:xmpp:omemo:1:bundle'> <items node='urn:xmpp:omemo:1:bundles'>
<item id='31415'/> <item id='31415'/>
<items> <items>
</pubsub> </pubsub>