Compute the base64 value over the [authzid]\0authcid\0password string,

thus excluding the trailing NULL byte.

This change has already been committed to trunk, see #11644.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@96797 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Philippe Sultan
2008-01-07 14:25:29 +00:00
parent b11422fe8f
commit e531dcb1af

View File

@@ -583,7 +583,12 @@ static int aji_act_hook(void *data, int type, iks *node)
iks_insert_attrib(x, "xmlns", IKS_NS_XMPP_SASL);
iks_insert_attrib(x, "mechanism", "PLAIN");
sprintf(s, "%c%s%c%s", 0, client->jid->user, 0, client->password);
ast_base64encode(base64, (const unsigned char *) s, len, len * 2);
/* exclude the NULL training byte from the base64 encoding operation
as some XMPP servers will refuse it.
The format for authentication is [authzid]\0authcid\0password
not [authzid]\0authcid\0password\0 */
ast_base64encode(base64, (const unsigned char *) s, len - 1, len * 2);
iks_insert_cdata(x, base64, 0);
iks_send(client->p, x);
iks_delete(x);