0.4 RC1 added send use case and jid attribute

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@218 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Ian Paterson 2006-11-27 11:57:48 +00:00
parent 01c2dd35dd
commit cd8fd34b3c
1 changed files with 82 additions and 15 deletions

View File

@ -25,9 +25,9 @@
&ianpaterson;
<revision>
<version>0.4</version>
<date>2006-11-23</date>
<date>2006-11-27</date>
<initials>ip</initials>
<remark><p>Changed namespace</p></remark>
<remark><p>Added jid attribute and send use case; changed namespace</p></remark>
</revision>
<revision>
<version>0.3</version>
@ -115,7 +115,10 @@
<KeyName>julietDSAkey1</KeyName>
<KeyValue>
<DSAKeyValue>
<P>...</P><Q>...</Q><G>...</G><Y>...</Y>
<P>...</P>
<Q>...</Q>
<G>...</G>
<Y>...</Y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
@ -236,8 +239,8 @@
</section1>
<section1 topic='Requesting Public Keys Directly From Another Entity' anchor='usecases-request'>
<p>If an entity wishes to request the public keys of another entity and it cannot access the keys via <cite>Personal Eventing via Pubsub</cite>, then the entity MAY send an IQ to the other entity:</p>
<example caption='Location request'><![CDATA[
<p>If an entity wishes to request the public keys of another entity and it cannot access the keys via <cite>Personal Eventing via Pubsub</cite>, then the entity MAY send an &IQ; of type 'get' to the other entity:</p>
<example caption='Public keys request'><![CDATA[
<iq type='get'
id='keys1'
to='juliet@capulet.com/balcony'
@ -251,16 +254,16 @@
id='keys1'
to='romeo@montague.net/garden'
from='juliet@capulet.com/balcony'>
<pubkeys xmlns='urn:xmpp:pubkeys'>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>julietRSAkey1</KeyName>
...
</KeyInfo>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>julietX509cert1</KeyName>
...
</KeyInfo>
</pubkeys>
<pubkeys xmlns='urn:xmpp:pubkeys'>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>julietRSAkey1</KeyName>
...
</KeyInfo>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>julietX509cert1</KeyName>
...
</KeyInfo>
</pubkeys>
</iq>
]]></example>
<p>If the receiving entity decides not to return the public keys, it MUST return an IQ error, which SHOULD be &unavailable; (to avoid divulging presence to unauthorized entities), but MAY be some other appropriate error, such as &forbidden; or &notallowed;:</p>
@ -277,6 +280,69 @@
]]></example>
</section1>
<section1 topic='Requesting Public Keys Directly From a Third Party' anchor='usecases-third'>
<p>An entity may request the public keys of another entity from a third party using the 'jid' attribute of the &lt;pubkeys/&gt; element to specify the JID that the keys belong to:</p>
<example caption='Requesting public keys from a third-party'><![CDATA[
<iq type='get'
id='keys2'
to='juliet@capulet.com/balcony'
from='romeo@montague.net/garden'>
<pubkeys xmlns='urn:xmpp:pubkeys' jid='benvolio@capulet.com'/>
</iq>
]]></example>
<example caption='Third-party responds with public keys'><![CDATA[
<iq type='result'
id='keys2'
to='romeo@montague.net/garden'
from='juliet@capulet.com/balcony'>
<pubkeys xmlns='urn:xmpp:pubkeys' jid='benvolio@capulet.com'>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyName>benvolioRSAkey</KeyName>
...
</KeyInfo>
</pubkeys>
</iq>
]]></example>
<example caption='Third party has no copies of the keys'><![CDATA[
<iq type='error'
id='keys2'
to='romeo@montague.net/garden'
from='juliet@capulet.com/balcony'>
<pubkeys xmlns='urn:xmpp:pubkeys' jid='benvolio@capulet.com'/>
<error code='404' type='cancel'>
<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
]]></example>
</section1>
<section1 topic='Sending Public Keys Directly To Another Entity' anchor='usecases-send'>
<p>If an entity wishes to send public keys to another entity then it MAY include them in a &MESSAGE; stanza. The entity MAY use the 'jid' attribute of the &lt;pubkeys/&gt; element to specify the JID that the keys belong to. If no 'jid' attribute is specified then the other entity SHOULD assume the keys belong to the sender of the stanza.</p>
<example caption='Sending public keys'><![CDATA[
<message to='romeo@montague.net/garden'
from='juliet@capulet.com/balcony'>
<pubkeys xmlns='urn:xmpp:pubkeys' jid='benvolio@capulet.com'>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyValue>
<RSAKeyValue>
<Modulus>...</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
<KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
<KeyValue>
<RSAKeyValue>
<Modulus>...</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</pubkeys>
</message>
]]></example>
</section1>
<section1 topic='Security Considerations' anchor='security'>
<p>The reliable association between a user or entity and its public keys is beyond the scope of this document. However, each client SHOULD maintain its own secure library of the public keys (or the "fingerprints" of the keys) it associates with other users (not necessarily JIDs).</p>
<p>Whenever public keys are published an identity is typically associated with a JID. Although the public keys are public information, it may be critically important for the user of the JID to keep his identity secret from all but a few specified people. Implementors MUST take great care to ensure the identity of the user of a JID is never divulged to anyone except the entities who have been permitted by the user to access the public key.</p>
@ -305,6 +371,7 @@
<xs:choice maxOccurs='unbounded'>
<any processContents="lax" namespace="##other"/>
</xs:choice>
<xs:attribute name='jid' type='xs:string' use='optional'/>
</xs:complexType>
</xs:element>