From 4908f44da40265087c5b1f3db1255d0a97283342 Mon Sep 17 00:00:00 2001 From: sualko <klaus@jsxc.org> Date: Sun, 8 Mar 2020 11:11:24 +0100 Subject: [PATCH] XEP-0384: add missing signed prekey signature --- xep-0384.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xep-0384.xml b/xep-0384.xml index abd58cce..a3d2e952 100644 --- a/xep-0384.xml +++ b/xep-0384.xml @@ -207,7 +207,7 @@ <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>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, a child element called ‘spks’ that contains the signed PreKey signature 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> <example caption='Publishing bundle information'><![CDATA[ <iq from='juliet@capulet.lit' type='set' id='annouce2'> @@ -217,6 +217,7 @@ <bundle xmlns='urn:xmpp:omemo:1' label='My desktop client'> <spk id='0'>BASE64ENCODED</spk> + <spks>BASE64ENCODED</spks> <ik>BASE64ENCODED</ik> <prekeys> <pk id='0'>BASE64ENCODED</pk>