def extract_packet(self, cls, s): if len(s) > 0: try: c = cls(s) except ASN1F_badsequence: c = packet.Raw(s) cpad = c.getlayer(packet.Raw) s = "" if cpad is not None: s = cpad.load del (cpad.underlayer.payload) return c, s else: return None, s
def extract_packet(self, cls, # type: Type[ASN1_Packet] s, # type: bytes _underlayer=None # type: Optional[ASN1_Packet] ): # type: (...) -> Tuple[ASN1_Packet, bytes] try: c = cls(s, _underlayer=_underlayer) except ASN1F_badsequence: c = packet.Raw(s, _underlayer=_underlayer) cpad = c.getlayer(packet.Raw) s = b"" if cpad is not None: s = cpad.load if cpad.underlayer: del(cpad.underlayer.payload) return c, s
#### srv_max_frm_sz = 1 << 14 srv_hdr_tbl_sz = 4096 srv_max_hdr_tbl_sz = 0 srv_global_window = 1<<14 for setting in srv_set.payload.settings: if setting.id == h2.H2Setting.SETTINGS_HEADER_TABLE_SIZE: srv_hdr_tbl_sz = setting.value elif setting.id == h2.H2Setting.SETTINGS_MAX_HEADER_LIST_SIZE: srv_max_hdr_tbl_sz = setting.value elif setting.id == h2.H2Setting.SETTINGS_INITIAL_WINDOW_SIZE: srv_global_window = setting.value #### import scapy.packet as packet srv_global_window -=len(h2.H2_CLIENT_CONNECTION_PREFACE) assert(srv_global_window >=0) print ss.send(packet.Raw(h2.H2_CLIENT_CONNECTION_PREFACE)) #### set_ack = h2.H2Frame(flags={'A'}) / h2.H2SettingsFrame() set_ack.show()