ServerClientSpecReceived() private method

private ServerClientSpecReceived ( ) : void
return void
Ejemplo n.º 1
0
        /**
         * This method is called, when a change cipher spec message is received.
         *
         * @throws IOException If the message has an invalid content or the
         *                     handshake is not in the correct state.
         */
        private void ProcessChangeCipherSpec()
        {
            while (changeCipherSpecQueue.Available > 0)
            {
                /*
                 * A change cipher spec message is only one byte with the value 1.
                 */
                byte[] b = new byte[1];
                changeCipherSpecQueue.Read(b, 0, 1, 0);
                changeCipherSpecQueue.RemoveData(1);
                if (b[0] != 1)
                {
                    /*
                     * This should never happen.
                     */
                    this.FailWithError(AL_fatal, AP_unexpected_message);
                }

                /*
                 * Check if we are in the correct connection state.
                 */
                if (this.connection_state != CS_CLIENT_FINISHED_SEND)
                {
                    this.FailWithError(AL_fatal, AP_handshake_failure);
                }

                rs.ServerClientSpecReceived();

                this.connection_state = CS_SERVER_CHANGE_CIPHER_SPEC_RECEIVED;
            }
        }
Ejemplo n.º 2
0
        /**
         * This method is called, when a change cipher spec message is received.
         *
         * @throws IOException If the message has an invalid content or the
         *                     handshake is not in the correct state.
         */
        private void ProcessChangeCipherSpec(byte[] buf, int off, int len)
        {
            for (int i = 0; i < len; ++i)
            {
                if (buf[off + i] != 1)
                {
                    this.FailWithError(AlertLevel.fatal, AlertDescription.decode_error);
                }

                /*
                 * Check if we are in the correct connection state.
                 */
                if (this.connection_state != CS_CLIENT_FINISHED_SEND)
                {
                    this.FailWithError(AlertLevel.fatal, AlertDescription.unexpected_message);
                }

                rs.ServerClientSpecReceived();

                this.connection_state = CS_SERVER_CHANGE_CIPHER_SPEC_RECEIVED;
            }
        }