For SleekXMPP, I applied the limit to the pre-base64 data because I apparently 
didn't read the XEP closely enough.

I'll fix that shortly though using the 3*floor(X/4) formula.

- Lance

On May 23, 2012, at 11:34 AM, Matthew Wild wrote:

> On 23 May 2012 02:52, Peter Saint-Andre <stpe...@stpeter.im> wrote:
>> On 5/22/12 4:13 PM, Matthew Wild wrote:
>>> Old draft alert! I really thought I had sent this... sorry.
>>> 
>>> On 31 January 2012 09:07, Sergey Dobrov <bin...@jrudevels.org> wrote:
>>>> On 01/31/2012 05:54 AM, Peter Saint-Andre wrote:
>>>>> At its meeting on December 20, 2011, the XMPP Council agreed to issue
>>>>> a "Call for Experience" regarding XEP-0047 (In-Band Bytestreams), in
>>>>> preparation for perhaps advancing this specification from Draft to
>>>>> Final in the XSF's standards process. To help the Council decide
>>>>> whether this XEP is ready to advance to a status of Final, the Council
>>>>> would like to gather the following information:
>>>>> 
>>>>> 1. What software has implemented XEP-0047? Please note that the
>>>>> protocol must be implemented in at least two separate codebases (and
>>>>> preferably more).
>>>> 
>>>> I have tested XEP-47 implementations in tkabber and Vacuum-IM. Also, I
>>>> have my own implementation in my experimental library named "twilix"
>>>> which is an high level wrapper on top of twisted library. This
>>>> implementation is used now to pass attachments to my experimental
>>>> microblogging platform implementation (named LiJ) which based on
>>>> XEP-277. The source code of the implementation is placed here:
>>>> https://github.com/xamvz/twilix/blob/master/twilix/bytestreams/ibb/base.py
>>>> 
>>>>> 
>>>>> 2. Have developers experienced any problems with the protocol as defined
>>>>> in XEP-0047? If so, please describe the problems and, if possible,
>>>>> suggested solutions.
>>>> 
>>>> The only problem I remember with the XEP is in this paragraph:
>>>> 
>>>>> The base64-encoded data to be sent, prior to any wrapping in the <data/> 
>>>>> element and IQ or message stanza, MUST NOT be larger than the 
>>>>> 'block-size' determined in the bytestream negotiation.
>>>> 
>>>> It's not clear for me when I have to check the length of the block: for
>>>> raw data or for base64 encoded? In the last case it's hard to do such
>>>> encoding. I implemented the last case for the first time but then I
>>>> noticed that Vacuum-IM checks it for raw data and so my implementation
>>>> said that Vacuum-IM sends inappropriate packets, so for now I am
>>>> checking a raw data. Maybe it will be good to specify this thing more
>>>> clearly.
>>>> 
>>> 
>>> It seems overall pretty clear to me that the XEP says the block-size
>>> limit applies to the data after base64-encoding. This does make it a
>>> bit more awkward than it should be in my opinion, and I'm not
>>> surprised clients interpret it differently.
>>> 
>>> The maximum amount of data you can fit into X bytes of base64 is
>>> 3*floor(X/4)... so for 4096 bytes of base64, 3072 bytes of data can be
>>> sent. Not hard to figure out, but perhaps "too hard", and for the sake
>>> of simplicity should be relaxed. If we do relax it (and make the limit
>>> apply to pre-base64 length) then we should decrease the recommended
>>> block size accordingly.
>> 
>> It seems that at least an implementation note about that little
>> calculation would be helpful. I don't particularly see a reason to
>> change the spec on this point, but it's not a hill for me to die on.
> 
> My preference (and I would imagine the preference of all developers)
> would be for the limit to apply to the input data. If people have
> already implemented with the current text though then I agree it makes
> sense to leave it.
> 
> On the other hand from the (little) evidence we have that it's not
> entirely clear what interpretation existing implementations have
> adopted. It wouldn't surprise me at all if the majority are applying
> the limit to the pre-base64 data, and in that case I think the XEP
> should be amended accordingly.
> 
> But we need that data before making such a move. People with IBB
> implementations, speak up!
> 
> Regards,
> Matthew

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to