Example #1
0
    def __init__(self,
                 in_code,
                 seq_number,
                 ack_number,
                 d_port,
                 s_port,
                 win_size=0,
                 data=b'',
                 fin=False,
                 syn=False):
        if in_code == 4:  # ack packet
            Header.__init__(self,
                            seq_number,
                            s_port,
                            d_port,
                            ack_number,
                            ack=True,
                            win_size=win_size,
                            syn=syn)
            self.data = data

        if in_code == 3:  # data packet
            Header.__init__(self,
                            seq_number,
                            s_port,
                            d_port,
                            ack_number,
                            fin=fin)
            self.data = bitstring.BitArray(data)
Example #2
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Accept"
     self.max_types = 10  # Allow this many types
     self.valid_media_range = {
         "application": [
             "javascript", "json", "x-www-form-urlencoded", "xml", "zip",
             "pdf", "sql", "graphsql", "ld+json", "msword",
             "vnd.openxmlformats-officedocument.wordprocessingml.document",
             "vnd.ms-excel",
             "vnd.openxmlformats-officedocument.spreadsheetml.sheet",
             "vnd.ms-powerpoint",
             "vnd.openxmlformats-officedocument.presentationml.presentation",
             "vnd.oasis.opendocument.text", "*"
         ],
         "audio": ["mpeg", "ogg", "*"],
         "multipart": ["form-data", "*"],
         "text": ["css", "html", "csv", "plain", "*"],
         "image": ["png", "jpeg", "gif", "*"],
         "*": ["*"]
     }
     self.valid_param_range = {
         "q": [str(float(i) / 10) for i in range(11)],
         "charset": ["UTF-8"]
     }
     self.value = self.generate_valid_value()
Example #3
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Accept-Control-Request-Headers"
     self.max_headers = 10
     self.headers = [
         "Accept", "Accept-Charset", "Accept-Datetime", "Accept-Encoding",
         "Accept-Language", "Access-Control-Request-Method",
         "Access-Control-Request-Headers"
     ]
     self.value = self.generate_valid_value()
Example #4
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Accept-Encoding"
     self.max_types = 10  # Allow this many types
     self.valid_encoding_values = [
         "*", "aes128gcm", "br", "compress", "deflate", "exi", "gzip",
         "identity", "pack200-gzip", "x-compress", "x-gzip", "z-std",
         "bzip2", "lzma", "peerdist", "sdch", "xpress", "xz"
     ]
     self.value = self.generate_valid_value()
Example #5
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Accept-Language"
     self.max_types = 10  # Allow this many types
     self.valid_prefix_values = [
         "ar", "ms", "zh", "lv", "sw", "uz", "fr", "de", "be", "tw", "pt",
         "gl", "oc", "hy", "az", "ba", "kk", "ky", "tk", "tt", "en", "sa",
         "eu", "sl", "sr", "nn", "eo", "bg", "rm", "kw", "pl", "ru", "el",
         "vo", "es", "ca"
     ]
     self.valid_subtag_values = [
         "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay",
         "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", "br", "bs",
         "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", "cy", "da", "de",
         "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff",
         "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", "gn", "gu", "gv",
         "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", "id",
         "ie", "ig", "ii", "ik", "in", "io", "is", "it", "iu", "iw", "ja",
         "ji", "jv", "jw", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn",
         "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", "li",
         "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", "ml", "mn",
         "mo", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl",
         "nn", "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa",
         "pi", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa",
         "sc", "sd", "se", "sg", "sh", "si", "sk", "sl", "sm", "sn", "so",
         "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", "te", "tg", "th",
         "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", "ug",
         "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo",
         "za", "zh", "zu", "AA", "AC", "AD", "AE", "AF", "AG", "AI", "AL",
         "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ",
         "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM",
         "BN", "BO", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BY", "BZ",
         "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN",
         "CO", "CP", "CR", "CS", "CU", "CV", "CW", "CX", "CY", "CZ", "DD",
         "DE", "DG", "DJ", "DK", "DM", "DO", "DZ", "EA", "EC", "EE", "EG",
         "EH", "ER", "ES", "ET", "EU", "EZ", "FI", "FJ", "FK", "FM", "FO",
         "FR", "FX", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL",
         "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK",
         "HM", "HN", "HR", "HT", "HU", "IC", "ID", "IE", "IL", "IM", "IN",
         "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG",
         "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB",
         "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC",
         "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP",
         "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA",
         "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NT", "NU",
         "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN",
         "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW",
         "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL",
         "SM", "SN", "SO", "SR", "SS", "ST", "SU", "SV", "SX", "SY", "SZ",
         "TA", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN",
         "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "UN",
         "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF",
         "WS", "YD", "YE", "YT", "YU", "ZA", "ZM", "ZR", "ZW", "ZZ"
     ]
     self.value = self.generate_valid_value()
Example #6
0
    def __init__(self, code, filename, seq_num, s_port, d_port):

        if code == 1:
            Header.__init__(self, seq_num, s_port, d_port, 0, syn=True)
        else:
            Header.__init__(self,
                            seq_num,
                            s_port,
                            d_port,
                            0,
                            write=True,
                            syn=True)

        self.data = bitstring.Bits(filename.encode('utf-8'))
Example #7
0
 def __init__(self,
              err_code,
              d_port,
              s_port,
              seq_num,
              ack_num=0,
              in_message=''):
     # Since this is just for errors, only one op code is available
     Header.__init__(self,
                     seq_num,
                     s_port,
                     d_port,
                     fin=True,
                     ack_num=ack_num)
     # Implementing the error message
     # 0 Not defined, see error message (if any).
     # 1 File not found.
     # 2 Access violation.
     # 3 Disk full or allocation exceeded.
     # 4 Illegal TFTP operation.
     # 5 Unknown transfer ID.
     # 6 File already exists.
     # 7 No such user.
     if err_code == 0:
         message = in_message
     elif err_code == 1:
         message = 'File not found.'
     elif err_code == 3:
         message = 'Disk full or allocation exceeded.'
     elif err_code == 5:
         message = "Unknown transfer ID."
     elif err_code == 6:
         message = "File already exists."
     else:
         message = "Unknown Error"
     self.error = bitstring.BitArray(message.encode('utf-8'))
     self.error_code = err_code
Example #8
0
	def __init__(self, params=None):
		Header.__init__(self, params)
		self.max_size = 10
		self.name = "Forwarded"
		self.value = self.generate_valid_value()
Example #9
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.max_tags = 3
     self.max_tag_size = 10
     self.name = "If-Match"
     self.value = self.generate_valid_value()
Example #10
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Content-Length"
     self.value = self.generate_valid_value()
Example #11
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "If-Unmodified-Since"
     self.value = self.generate_valid_value()
Example #12
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.max_size = 20
     self.name = "Host"
     self.value = self.generate_valid_value()
Example #13
0
	def __init__(self, params=None):
		Header.__init__(self, params)
		self.name = "Accept-Control-Request-Method"
		self.methods = ["GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE"]
		self.value = self.generate_valid_value()
Example #14
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.max_size = 30
     self.name = "Referer"
     self.value = self.generate_valid_value()
Example #15
0
	def __init__(self, params=None):
		Header.__init__(self, params)
		self.name = "Upgrade"
		self.value = self.generate_valid_value()
Example #16
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Connection"
     self.maximum = 10
     self.value = self.generate_valid_value()
Example #17
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Proxy-Authorization"
     self.auth = Authorization()
     self.value = self.generate_valid_value()
Example #18
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Accept-Charset"
     self.max_types = 10  # Allow this many types
     self.valid_charset_values = [
         "US-ASCII", "ISO_8859-1:1987", "ISO_8859-2:1987",
         "ISO_8859-3:1988", "ISO_8859-4:1988", "ISO_8859-5:1988",
         "ISO_8859-6:1987", "ISO_8859-7:1987", "ISO_8859-8:1988",
         "ISO_8859-9:1989", "ISO-8859-10", "ISO_6937-2-add", "JIS_X0201",
         "JIS_Encoding", "Shift_JIS",
         "Extended_UNIX_Code_Packed_Format_for_Japanese",
         "Extended_UNIX_Code_Fixed_Width_for_Japanese", "BS_4730",
         "SEN_850200_C", "IT", "ES", "DIN_66003", "NS_4551-1",
         "NF_Z_62-010", "ISO-10646-UTF-1", "ISO_646.basic:1983",
         "INVARIANT", "ISO_646.irv:1983", "NATS-SEFI", "NATS-SEFI-ADD",
         "NATS-DANO", "NATS-DANO-ADD", "SEN_850200_B", "KS_C_5601-1987",
         "ISO-2022-KR", "EUC-KR", "ISO-2022-JP", "ISO-2022-JP-2",
         "JIS_C6220-1969-jp", "JIS_C6220-1969-ro", "PT", "greek7-old",
         "latin-greek", "NF_Z_62-010_(1973)", "Latin-greek-1", "ISO_5427",
         "JIS_C6226-1978", "BS_viewdata", "INIS", "INIS-8", "INIS-cyrillic",
         "ISO_5427:1981", "ISO_5428:1980", "GB_1988-80", "GB_2312-80",
         "NS_4551-2", "videotex-suppl", "PT2", "ES2", "MSZ_7795.3",
         "JIS_C6226-1983", "greek7", "ASMO_449", "iso-ir-90",
         "JIS_C6229-1984-a", "JIS_C6229-1984-b", "JIS_C6229-1984-b-add",
         "JIS_C6229-1984-hand", "JIS_C6229-1984-hand-add",
         "JIS_C6229-1984-kana", "ISO_2033-1983", "ANSI_X3.110-1983",
         "T.61-7bit", "T.61-8bit", "ECMA-cyrillic", "CSA_Z243.4-1985-1",
         "CSA_Z243.4-1985-2", "CSA_Z243.4-1985-gr", "ISO_8859-6-E",
         "ISO_8859-6-I", "T.101-G2", "ISO_8859-8-E", "ISO_8859-8-I",
         "CSN_369103", "JUS_I.B1.002", "IEC_P27-1", "JUS_I.B1.003-serb",
         "JUS_I.B1.003-mac", "greek-ccitt", "NC_NC00-10:81",
         "ISO_6937-2-25", "GOST_19768-74", "ISO_8859-supp", "ISO_10367-box",
         "latin-lap", "JIS_X0212-1990", "DS_2089", "us-dk", "dk-us",
         "KSC5636", "UNICODE-1-1-UTF-7", "ISO-2022-CN", "ISO-2022-CN-EXT",
         "UTF-8", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15",
         "ISO-8859-16", "GBK", "GB18030", "OSD_EBCDIC_DF04_15",
         "OSD_EBCDIC_DF03_IRV", "OSD_EBCDIC_DF04_1", "ISO-11548-1",
         "KZ-1048", "ISO-10646-UCS-2", "ISO-10646-UCS-4",
         "ISO-10646-UCS-Basic", "ISO-10646-Unicode-Latin1", "ISO-10646-J-1",
         "ISO-Unicode-IBM-1261", "ISO-Unicode-IBM-1268",
         "ISO-Unicode-IBM-1276", "ISO-Unicode-IBM-1264",
         "ISO-Unicode-IBM-1265", "UNICODE-1-1", "SCSU", "UTF-7", "UTF-16BE",
         "UTF-16LE", "UTF-16", "CESU-8", "UTF-32", "UTF-32BE", "UTF-32LE",
         "BOCU-1", "ISO-8859-1-Windows-3.0-Latin-1",
         "ISO-8859-1-Windows-3.1-Latin-1", "ISO-8859-2-Windows-Latin-2",
         "ISO-8859-9-Windows-Latin-5", "hp-roman8",
         "Adobe-Standard-Encoding", "Ventura-US", "Ventura-International",
         "DEC-MCS", "IBM850", "PC8-Danish-Norwegian", "IBM862",
         "PC8-Turkish", "IBM-Symbols", "IBM-Thai", "HP-Legal", "HP-Pi-font",
         "HP-Math8", "Adobe-Symbol-Encoding", "HP-DeskTop", "Ventura-Math",
         "Microsoft-Publishing", "Windows-31J", "GB2312", "Big5",
         "macintosh", "IBM037", "IBM038", "IBM273", "IBM274", "IBM275",
         "IBM277", "IBM278", "IBM280", "IBM281", "IBM284", "IBM285",
         "IBM290", "IBM297", "IBM420", "IBM423", "IBM424", "IBM437",
         "IBM500", "IBM851", "IBM852", "IBM855", "IBM857", "IBM860",
         "IBM861", "IBM863", "IBM864", "IBM865", "IBM868", "IBM869",
         "IBM870", "IBM871", "IBM880", "IBM891", "IBM903", "IBM904",
         "IBM905", "IBM918", "IBM1026", "EBCDIC-AT-DE", "EBCDIC-AT-DE-A",
         "EBCDIC-CA-FR", "EBCDIC-DK-NO", "EBCDIC-DK-NO-A", "EBCDIC-FI-SE",
         "EBCDIC-FI-SE-A", "EBCDIC-FR", "EBCDIC-IT", "EBCDIC-PT",
         "EBCDIC-ES", "EBCDIC-ES-A", "EBCDIC-ES-S", "EBCDIC-UK",
         "EBCDIC-US", "UNKNOWN-8BIT", "MNEMONIC", "MNEM", "VISCII", "VIQR",
         "KOI8-R", "HZ-GB-2312", "IBM866", "IBM775", "KOI8-U", "IBM00858",
         "IBM00924", "IBM01140", "IBM01141", "IBM01142", "IBM01143",
         "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148",
         "IBM01149", "Big5-HKSCS", "IBM1047", "PTCP154", "Amiga-1251",
         "KOI7-switched", "BRF", "TSCII", "CP51932", "windows-874",
         "windows-1250", "windows-1251", "windows-1252", "windows-1253",
         "windows-1254", "windows-1255", "windows-1256", "windows-1257",
         "windows-1258", "TIS-620", "CP50220"
     ]
     self.value = self.generate_valid_value()
Example #19
0
	def __init__(self, params=None):
		Header.__init__(self, params)
		self.name = "Authorization"
		self.max_length = 20
		self.value = self.generate_valid_value()
Example #20
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.name = "Cache-Control"
     self.value = self.generate_valid_value()
Example #21
0
 def __init__(self, params=None):
     Header.__init__(self, params)
     self.max_chars = 20
     self.name = "Cookie"
     self.value = self.generate_valid_value()