/// <summary>
        /// </summary>
        /// <param name="e">
        /// </param>
        public override void Parse(Node e)
        {
            if (e.GetType() == typeof(Challenge))
            {
                var c = e as Challenge;

                var step1 = new Step1(c.TextBase64);
                if (step1.Rspauth == null)
                {
                    // response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9ImduYXVjayIscmVhbG09IiIsbm9uY2U9IjM4MDQzMjI1MSIsY25vbmNlPSIxNDE4N2MxMDUyODk3N2RiMjZjOWJhNDE2ZDgwNDI4MSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC9qYWJiZXIucnUiLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9NDcwMTI5NDU4Y2EwOGVjYjhhYTIxY2UzMDhhM2U5Nzc
                    var s2 = new Step2(step1, base.Username, base.Password, base.Server);
                    var r  = new Response(s2.ToString());
                    //base.XmppClientConnection.Send(r);
                }
                else
                {
                    // SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
                    //base.XmppClientConnection.Send(new Response());
                }
            }
        }
Esempio n. 2
0
        public override void Parse(Node e)
        {
            if ( e.GetType() == typeof(protocol.sasl.Challenge) )
            {
                protocol.sasl.Challenge c = e as protocol.sasl.Challenge;

                sasl.DigestMD5.Step1 step1 = new sasl.DigestMD5.Step1(c.TextBase64);
                if (step1.Rspauth == null)
                {
                    //response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9ImduYXVjayIscmVhbG09IiIsbm9uY2U9IjM4MDQzMjI1MSIsY25vbmNlPSIxNDE4N2MxMDUyODk3N2RiMjZjOWJhNDE2ZDgwNDI4MSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC9qYWJiZXIucnUiLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9NDcwMTI5NDU4Y2EwOGVjYjhhYTIxY2UzMDhhM2U5Nzc
                    sasl.DigestMD5.Step2 s2 = new agsXMPP.sasl.DigestMD5.Step2(step1, base.Username, base.Password, base.Server);
                    protocol.sasl.Response r = new agsXMPP.protocol.sasl.Response(s2.ToString());
                    base.XmppClientConnection.Send(r);
                }
                else
                {
                    // SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
                    base.XmppClientConnection.Send(new protocol.sasl.Response());
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// builds a step2 message reply to the given step1 message
        /// </summary>
        /// <param name="step1"></param>
        public Step2(Step1 step1, string username, string password, string server)
        {
            this.Nonce		= step1.Nonce;

            // fixed for SASL n amessage servers (jabberd 1.x)
            if (SupportsAuth(step1.Qop))
                this.Qop        = "auth";

            this.Realm		= step1.Realm;
            this.Charset	= step1.Charset;
            this.Algorithm	= step1.Algorithm;

            this.Username	= username;
            this.Password	= password;
            this.Server		= server;

            GenerateCnonce();
            GenerateNc();
            GenerateDigestUri();
            GenerateResponse();
        }
Esempio n. 4
0
        /// <summary>
        /// builds a step2 message reply to the given step1 message
        /// </summary>
        /// <param name="step1">
        /// </param>
        /// <param name="username">
        /// </param>
        /// <param name="password">
        /// </param>
        /// <param name="server">
        /// </param>
        public Step2(Step1 step1, string username, string password, string server)
        {
            Nonce = step1.Nonce;

            // fixed for SASL n amessage servers (jabberd 1.x)
            if (SupportsAuth(step1.Qop))
            {
                Qop = "auth";
            }

            Realm     = step1.Realm;
            Charset   = step1.Charset;
            Algorithm = step1.Algorithm;

            Username = username;
            Password = password;
            Server   = server;

            GenerateCnonce();
            GenerateNc();
            GenerateDigestUri();
            GenerateResponse();
        }