Esempio n. 1
0
    def encode(self, records):
        if isinstance(records, Protocol):
            records = [records]

        pkgs = []
        for record in records:
            if not isinstance(record, Protocol):
                raise TypeError("Record must be of type flextls.protocol.Protocol()")

            self.state.update(record)

            if isinstance(record, DTLSv10Handshake):
                record.message_seq = self._handshake_next_send_seq
                self._handshake_next_send_seq += 1

            dtls_record = DTLSv10Record(
                connection=self
            )
            ver_major, ver_minor = helper.get_tls_version(self._cur_protocol_version)
            dtls_record.version.major = ver_major
            dtls_record.version.minor = ver_minor
            dtls_record.set_payload(record)
            dtls_record.epoch = self._epoch
            dtls_record.sequence_number = self._record_next_send_seq

            pkgs.append(dtls_record.encode())
            self._record_next_send_seq += 1

        return pkgs
Esempio n. 2
0
    def encode(self, records):
        if isinstance(records, Protocol):
            records = [records]

        pkgs = []
        for record in records:
            if isinstance(record, Protocol):
                self.state.update(record)
                tls_record = SSLv3Record(
                    connection=self
                )
                ver_major, ver_minor = helper.get_tls_version(self._cur_protocol_version)
                tls_record.version.major = ver_major
                tls_record.version.minor = ver_minor
                tls_record.set_payload(record)
                pkgs.append(tls_record.encode())
            else:
                raise TypeError("Record must be of type flextls.protocol.Protocol()")

        return pkgs