Пример #1
0
        private void _read()
        {
            _contentType = ((TlsContentType)m_io.ReadU1());
            _version     = new TlsVersion(m_io, this, m_root);
            _length      = m_io.ReadU2be();
            switch (ContentType)
            {
            case TlsContentType.Handshake: {
                __raw_fragment = m_io.ReadBytes(Length);
                var io___raw_fragment = new KaitaiStream(__raw_fragment);
                _fragment = new TlsHandshake(io___raw_fragment, this, m_root);
                break;
            }

            case TlsContentType.ApplicationData: {
                __raw_fragment = m_io.ReadBytes(Length);
                var io___raw_fragment = new KaitaiStream(__raw_fragment);
                _fragment = new TlsApplicationData(io___raw_fragment, this, m_root);
                break;
            }

            case TlsContentType.ChangeCipherSpec: {
                __raw_fragment = m_io.ReadBytes(Length);
                var io___raw_fragment = new KaitaiStream(__raw_fragment);
                _fragment = new TlsChangeCipherSpec(io___raw_fragment, this, m_root);
                break;
            }

            case TlsContentType.Alert: {
                __raw_fragment = m_io.ReadBytes(Length);
                var io___raw_fragment = new KaitaiStream(__raw_fragment);
                _fragment = new TlsEncryptedMessage(io___raw_fragment, this, m_root);
                break;
            }

            default: {
                __raw_fragment = m_io.ReadBytes(Length);
                var io___raw_fragment = new KaitaiStream(__raw_fragment);
                _fragment = new TlsEncryptedMessage(io___raw_fragment, this, m_root);
                break;
            }
            }
            if (ContentType == TlsContentType.ChangeCipherSpec)
            {
                _finished = new TlsFinished(m_io, this, m_root);
            }
        }
Пример #2
0
        private void _read()
        {
            _contentType = ((TlsContentType)m_io.ReadU1());
            _version     = m_io.ReadU2be();
            _length      = m_io.ReadU2be();
            switch (ContentType)
            {
            case TlsContentType.Handshake: {
                __raw_record = m_io.ReadBytes(Length);
                var io___raw_record = new KaitaiStream(__raw_record);
                _record = new TlsHandshakeProtocol(io___raw_record, this, m_root);
                break;
            }

            case TlsContentType.ApplicationData: {
                __raw_record = m_io.ReadBytes(Length);
                var io___raw_record = new KaitaiStream(__raw_record);
                _record = new TlsApplicationData(io___raw_record, this, m_root);
                break;
            }

            case TlsContentType.ChangeCipherSpec: {
                __raw_record = m_io.ReadBytes(Length);
                var io___raw_record = new KaitaiStream(__raw_record);
                _record = new TlsChangeCipherSpec(io___raw_record, this, m_root);
                break;
            }

            case TlsContentType.Alert: {
                __raw_record = m_io.ReadBytes(Length);
                var io___raw_record = new KaitaiStream(__raw_record);
                _record = new TlsEncryptedMessage(io___raw_record, this, m_root);
                break;
            }

            default: {
                __raw_record = m_io.ReadBytes(Length);
                var io___raw_record = new KaitaiStream(__raw_record);
                _record = new TlsEncryptedMessage(io___raw_record, this, m_root);
                break;
            }
            }
        }
Пример #3
0
            private void _parse()
            {
                _handshakeType = ((TlsRecord.TlsHandshakeType)m_io.ReadU1());
                _bodyLength    = new TlsLength(m_io, this, m_root);
                switch (HandshakeType)
                {
                case TlsRecord.TlsHandshakeType.HelloRequest: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsEmpty(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.Certificate: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsCertificate(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.CertificateVerify: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsCertificateVerify(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.ServerKeyExchange: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsServerKeyExchange(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.ClientHello: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsClientHello(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.Finished: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsFinished(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.ClientKeyExchange: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsClientKeyExchange(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.ServerHello: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsServerHello(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.CertificateRequest: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsCertificateRequest(io___raw_body, this, m_root);
                    break;
                }

                case TlsRecord.TlsHandshakeType.ServerHelloDone: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsServerHelloDone(io___raw_body, this, m_root);
                    break;
                }

                default: {
                    __raw_body = m_io.ReadBytes((M_Parent.Length - 4));
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TlsEncryptedMessage(io___raw_body, this, m_root);
                    break;
                }
                }
            }