Problems with compression(JEP 0138) when using wildifire server

Hi,

I seem to be running into problems while trying out compression(JEP-0138) with wildfire. I’'m following the recommeded order of stream feature negotiation (JEP-0170), TLS-SASL- Compression, after succesfully negotiating SASL(Plain) , i start the compression process, upon sending the initial stream, the wildfire server replies back with SASL mechanisms again!!! …Is this correct, assuming that this is correct i once again do a SASL plain authentication after which the server just closes the connection. Is there a bug in the server or am i doing something worng?

regards

Venky

Venky,

What library or client are you using to test stream compression with?

Regards,

Matt

Hi Matt,

I’‘m writing a client application on the pocket pc. I’'ve tried compression with a zlib ‘‘port’’ on win ce as well as a .net(SharpZipLib) library which does zlib compression. In both the case , the server sends me a compressed reply after i send the initial stream packet .Any subsequent messages sent to the server results in the server closing the stream.

Venky

Hey Venky,

I just tried using TLS + SASL + compression from a Smack client and this is the flow of exchanged XML:

SENT:

As you can see in this case there is no SASL offering after compression was negotiated. Could you post your exchanged XML so we can compare them and find out the problem.

Thanks,

– Gato

Hi, while working on my IM client Pandion I came across this same strange behaviour in Openfire 3.6.4 where the flow goes:

TCP connect > Stream > TLS > Stream > SASL > Stream > Compression > Stream > SASL > Stream > Bind > Session > Done.

This is the connection log:

EVNT: Connecting to acme.com
SENT: <?xml version="1.0"?>
SENT: <stream:stream to=“acme.com” xml:lang=“en” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” version=“1.0”>
RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“acme.com” id=“30e09bd9” xml:lang=“en” version=“1.0”>
RECV: <stream:features xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams”>DIGEST-MD5PLAINANONYMOUSCRAM-MD5</mech anism>zlib</stream:features>
SENT:
RECV:
SENT: <stream:stream to=“acme.com” xml:lang=“en” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” version=“1.0”>
RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“acme.com” id=“30e09bd9” xml:lang=“en” version=“1.0”>
RECV: <stream:features xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams”>DIGEST-MD5PLAINANONYMOUSCRAM-MD5</mech anism>zlib</stream:features>
SENT:
RECV: cmVhbG09ImFjbWUuY29tIixub25jZT0iM2hhb2 1COFFaTXU2djBGKzUwSWFoNHo1SHZUMXZYKzA1RUptOHRiRCIscW9wPSJhdXRoIixjaGFyc2V0PXV0Zi 04LGFsZ29yaXRobT1tZDUtc2Vzcw==
SASL: realm=“acme.com”,nonce=“3haomB8QZMu6v0F+50Iah4z5HvT1vX+05EJm8tbD”,qop=“auth”,ch arset=utf-8,algorithm=md5-sess
SENT: dXNlcm5hbWU9InJpbmdvIixyZWFsbT0iYWNtZS 5jb20iLG5vbmNlPSIzaGFvbUI4UVpNdTZ2MEYrNTBJYWg0ejVIdlQxdlgrMDVFSm04dGJEIixjbm9uY2 U9ImM5NzAzMDFiYzIxMzlmNWRlZmIzN2ZiYTQ1YjUwZDY3NGZkNmE0YzMiLG5jPTAwMDAwMDAxLHFvcD 1hdXRoLGRpZ2VzdC11cmk9InhtcHAvYWNtZS5jb20iLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9MzJiMT g0MzQ0YzM5MmQ4ODgzMzdlYzIzMjljY2NkNzY=
SASL: username=“ringo”,realm=“acme.com”,nonce=“3haomB8QZMu6v0F+50Iah4z5HvT1vX+05EJm8t bD”,cnonce=“c970301bc2139f5defb37fba45b50d674fd6a4c3”,nc=00000001,qop=auth,diges t-uri=“xmpp/acme.com”,charset=utf-8,response=32b184344c392d888337ec2329cccd76
RECV: cnNwYXV0aD1hZGYwNzU4N2RiZTk0OTMwNWZlYT AxNWIwNzdmNmYzZg==
SENT: <stream:stream to=“acme.com” xml:lang=“en” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” version=“1.0”>
RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“acme.com” id=“30e09bd9” xml:lang=“en” version=“1.0”>
RECV: <stream:features xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams”>zlib</stream:features>
SENT: zlib
RECV:
SENT: <stream:stream to=“acme.com” xml:lang=“en” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” version=“1.0”>
RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“acme.com” id=“30e09bd9” xml:lang=“en” version=“1.0”>
RECV: <stream:features xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams”>DIGEST-MD5PLAINANONYMOUSCRAM-MD5</mech anism></stream:features>
SENT:
RECV: cmVhbG09ImFjbWUuY29tIixub25jZT0ibFZTNW FKVmlGbWlCeDBJNjE0S08xbWlNSExIVXJLdUl2ZWdsMUZYcCIscW9wPSJhdXRoIixjaGFyc2V0PXV0Zi 04LGFsZ29yaXRobT1tZDUtc2Vzcw==
SASL: realm=“acme.com”,nonce=“lVS5aJViFmiBx0I614KO1miMHLHUrKuIvegl1FXp”,qop=“auth”,ch arset=utf-8,algorithm=md5-sess
SENT: dXNlcm5hbWU9InJpbmdvIixyZWFsbT0iYWNtZS 5jb20iLG5vbmNlPSJsVlM1YUpWaUZtaUJ4MEk2MTRLTzFtaU1ITEhVckt1SXZlZ2wxRlhwIixjbm9uY2 U9IjMyYWQxZmMyZjZjOTI2MDcyYWQ1ODhkZDhmZGY2ZWM1YTY4NmJjMTgiLG5jPTAwMDAwMDAxLHFvcD 1hdXRoLGRpZ2VzdC11cmk9InhtcHAvYWNtZS5jb20iLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9YjRjYz g0OGQxNGI0Mzg5ZjkyYjhjYTY1NGI2OTA4OTQ=
SASL: username=“ringo”,realm=“acme.com”,nonce=“lVS5aJViFmiBx0I614KO1miMHLHUrKuIvegl1F Xp”,cnonce=“32ad1fc2f6c926072ad588dd8fdf6ec5a686bc18”,nc=00000001,qop=auth,diges t-uri=“xmpp/acme.com”,charset=utf-8,response=b4cc848d14b4389f92b8ca654b690894
RECV: cnNwYXV0aD1kNGVjNmNlNDBkMjViZDBhZjVjOT k4OGM5YWIyMjViOA==
SENT: <stream:stream to=“acme.com” xml:lang=“en” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” version=“1.0”>
RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=“http://etherx.jabber.org/streams” xmlns=“jabber:client” from=“acme.com” id=“30e09bd9” xml:lang=“en” version=“1.0”>
RECV: <stream:features xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams”></stream:features>
SENT: Pandion</i q>
RECV: ringo@acme.com/Pandion
SENT:
RECV: