I’'m not sure if you are referring to the authentication procedure with XMPP servers. Smack implements the url=http://www.jabber.org/jeps/jep-0078.html"JEP-0078: Non-SASL Authentication"[/url] in order to achieve the client-server authentication which is the standard specified by XMPP.
We could say that there are four conceptual steps involved in this procedure.
Client Opens Stream to Server
Server Opens Streams to Client
Client Requests Authentication Fields from Server
Client Provides Required Information (Digest)
For each step there is an XML message involved. In this examples you can see that it is required to send a packet of type GET in step 3 before you send the SET packet.
In fact, My script using smack works fine on Jabber servers I’'ve tested (Jabber.com, local jabberd, …).
But didn’'t work on the server I tried to reach.
This is because it’'s a private server based on Jabberd that absolutely required a particular resource (not easy to find out). The response from server was to strange.