diff --git a/xep-0047.xml b/xep-0047.xml index 8d7520a3..574286a9 100644 --- a/xep-0047.xml +++ b/xep-0047.xml @@ -164,7 +164,7 @@ ]]> -

The data to send is included as XML character data of the <data/> element after being encoded as Base64 as specified in Section 3 of &rfc3548;. The 'seq' attribute is a 16-bit unsigned integer counter starting at 0, and MUST be incremented for each packet sent. Thus, the next packet sent should have a 'seq' of 1, the one after that with a 'seq' of 2, and so on. The counter loops at maximum, so after value 65535, 'seq' MUST start again at 0.

+

The data to send is included as XML character data of the <data/> element after being encoded as Base64 as specified in Section 4 of &rfc4648;. The 'seq' attribute is a 16-bit unsigned integer counter starting at 0, and MUST be incremented for each packet sent. Thus, the next packet sent should have a 'seq' of 1, the one after that with a 'seq' of 2, and so on. The counter loops at maximum, so after value 65535, 'seq' MUST start again at 0.

Note that in the case of iq stanzas, the recipient must reply with an iq of type 'result'.

In-Band Bytestreams is as secure as the underlying Jabber transport. The bytestream application could have its own security layer, but this is outside of the scope of IBB.

-

An entity MUST verify any Base64 data received. An implementation MUST reject (not ignore) any characters that are not explicitly allowed by the Base64 alphabet; this helps to guard against creation of a covert channel that could be used to "leak" information. An implementation MUST NOT break on invalid input and MUST reject any sequence of Base64 characters containing the pad ('=') character if that character is included as something other than the last character of the data (e.g. "=AAA" or "BBBB=CCC"); this helps to guard against buffer overflow attacks and other attacks on the implementation. Base encoding visually hides otherwise easily recognized information, such as passwords, but does not provide any computational confidentiality. Base64 encoding MUST follow the definition in Section 3 of RFC 3548.

+

An entity MUST verify any Base64 data received. An implementation MUST reject (not ignore) any characters that are not explicitly allowed by the Base64 alphabet; this helps to guard against creation of a covert channel that could be used to "leak" information. An implementation MUST NOT break on invalid input and MUST reject any sequence of Base64 characters containing the pad ('=') character if that character is included as something other than the last character of the data (e.g. "=AAA" or "BBBB=CCC"); this helps to guard against buffer overflow attacks and other attacks on the implementation. Base encoding visually hides otherwise easily recognized information, such as passwords, but does not provide any computational confidentiality. Base64 encoding MUST follow the definition in Section 4 of RFC 4648.

diff --git a/xep-0070.xml b/xep-0070.xml index 75a55a18..fe590c95 100644 --- a/xep-0070.xml +++ b/xep-0070.xml @@ -185,7 +185,7 @@ WWW-Authenticate: Digest realm="xmpp",

The Authorization Request process is described in the following subsections.

-

The Basic Access Authentication scheme is defined in RFC 2617. This scheme specifies that the authorization information shall consist of a userid and password, separated by a ':' character and then encoded using Base64. When the realm is "xmpp", the profile defined herein further specifies that the userid MUST be a valid JID as described above, that the password entity MUST be a transaction identifier as described above, that any character in the JID or transaction identifier that is outside the range of the US-ASCII coded character set MUST be transformed into a percent-encoded octet as specified in Section 2.1 of &rfc3986; prior to Base64 encoding, and that Base64 encoding MUST adhere to Section 3 of &rfc3548;.

+

The Basic Access Authentication scheme is defined in RFC 2617. This scheme specifies that the authorization information shall consist of a userid and password, separated by a ':' character and then encoded using Base64. When the realm is "xmpp", the profile defined herein further specifies that the userid MUST be a valid JID as described above, that the password entity MUST be a transaction identifier as described above, that any character in the JID or transaction identifier that is outside the range of the US-ASCII coded character set MUST be transformed into a percent-encoded octet as specified in Section 2.1 of &rfc3986; prior to Base64 encoding, and that Base64 encoding MUST adhere to Section 4 of &rfc4648;.

(Refer to RFC 2617 for specification of the syntax of the Basic Access Authentication scheme; that information is not duplicated here.)

]]> -

The XML character data MUST represent the image data for the avatar with a content-type of "image/png", Base64-encoded in accordance with Section 3 of &rfc3548;. (Note: Line feeds SHOULD NOT be added but MUST be accepted.)

+

The XML character data MUST represent the image data for the avatar with a content-type of "image/png", Base64-encoded in accordance with Section 4 of &rfc4648;. (Note: Line feeds SHOULD NOT be added but MUST be accepted.)

Support for the <data/> element is REQUIRED.

diff --git a/xep-0116.xml b/xep-0116.xml index 3c7287e5..fb4ec9bf 100644 --- a/xep-0116.xml +++ b/xep-0116.xml @@ -237,7 +237,7 @@
  • Calculate: He = SHA256(e) (see &nistfips180-2;)

  • Note: The last step is not necessary for 3-message negotiations.

    -

    Alice MUST send all her calculated values of 'He' (for 4-message negotiations) or 'e' (for 3-message negotiations) to Bob (in the same order as the associated MODP groups are being sent). She MUST also specify randomly generated Base64 encoded (in accordance with Section 3 of &rfc3548;) value of &NsubA; (her ESession ID).

    +

    Alice MUST send all her calculated values of 'He' (for 4-message negotiations) or 'e' (for 3-message negotiations) to Bob (in the same order as the associated MODP groups are being sent). She MUST also specify randomly generated Base64 encoded (in accordance with Section 4 of &rfc4648;) value of &NsubA; (her ESession ID).

    ffd7076498744578d10edabfe7f4a866 diff --git a/xep-0158.xml b/xep-0158.xml index bdb4dd37..5cae90bb 100644 --- a/xep-0158.xml +++ b/xep-0158.xml @@ -81,7 +81,7 @@

    This protocol requires multimedia to be included within &xep0004;. This section defines a new namespace ('urn:xmpp:media') for that purpose. The root element for the namespace is <media/>. It MUST be contained within a <field/> element qualified by the 'jabber:x:data' namespace.

    If the media is an image or video then the <media/> element SHOULD include 'width' and 'height' attributes specifying the recommended display size of the media in pixels.

    The <media/> element SHOULD contain at least one <uri/> element to specify the out-of-band location of the media data. Constrained execution environments prevent some clients rendering media unless it has been received out-of-band (e.g., Web clients). The <uri/> element MUST contain a URI that indicates the location.

    -

    The <media/> element MAY also contain one or more <data/> elements for distributing the media in-band. The <data/> element MUST contain the Base64 encoded (in accordance with Section 3 of &rfc3548;) media data. The encoded data SHOULD NOT be larger than 8 KB. Note that if a stanza contains more than one <data/> element then the sending entity MUST take care not to trigger karma limits.

    +

    The <media/> element MAY also contain one or more <data/> elements for distributing the media in-band. The <data/> element MUST contain the Base64 encoded (in accordance with Section 4 of &rfc4648;) media data. The encoded data SHOULD NOT be larger than 8 KB. Note that if a stanza contains more than one <data/> element then the sending entity MUST take care not to trigger karma limits.

    Each <uri/> or <data/> element MUST include a 'type' atribute that specifies the MIME type (see &rfc2045;) of the media.

    diff --git a/xep-0200.xml b/xep-0200.xml index 39fa5b29..5eb579c5 100644 --- a/xep-0200.xml +++ b/xep-0200.xml @@ -247,7 +247,7 @@
  • Generate the whole serialized content of the <c/> element:

    -

    If there is encrypted XML content, the XML MUST include the Base64 encoded (even if the block cipher algorithm 'none' was agreed The content is encoded even if no encryption is used to avoid triggering namespace errors when entities parse the XML., in accordance with Section 3 of &rfc3548;) value of m_final wrapped in a <data/> element.

    +

    If there is encrypted XML content, the XML MUST include the Base64 encoded (even if the block cipher algorithm 'none' was agreed The content is encoded even if no encryption is used to avoid triggering namespace errors when entities parse the XML., in accordance with Section 4 of &rfc4648;) value of m_final wrapped in a <data/> element.

    Only if Alice has received stanzas containing a <key/> element (see Re-Key Exchange) from Bob since she sent her last stanza then the XML MUST include the (positive, non-zero) number of such stanzas she has received (since she sent her last stanza) wrapped in a <new/> element.

    The content may also contain one <key/> element (see Re-Key Exchange) and one or more <old/> elements (see Publishing Old MAC Values).

    Alice MUST normalize the content by removing any whitespace from the serialized content (i.e. remove all character data from between all elements). Note: <c/> elements are so simple that there should never be a need to convert the XML to canonical form.

    diff --git a/xep.ent b/xep.ent index cabe6ee2..d1efcdb6 100644 --- a/xep.ent +++ b/xep.ent @@ -399,6 +399,7 @@ RFC 4566 RFC 4566: SDP: Session Description Protocol <http://tools.ietf.org/html/rfc4566>." > RFC 4622 RFC 4622: Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP) <http://tools.ietf.org/html/rfc4622>." > RFC 4646 RFC 4646: Tags for Identifying Languages <http://tools.ietf.org/html/rfc4646>." > +RFC 4648 RFC 4648: The Base16, Base32, and Base64 Data Encodings <http://tools.ietf.org/html/rfc4648>." > RFC 4732 RFC 4732: Internet Denial-of-Service Considerations <http://tools.ietf.org/html/rfc4732>." > RFC 4733 RFC 4733: RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals <http://tools.ietf.org/html/rfc4733>." >