1# Copyright (c) 2017, The MITRE Corporation. All rights reserved. 2# See LICENSE.txt for complete terms. 3 4import sys 5 6from mixbox.binding_utils import * 7from . import cybox_common 8from . import address_object 9from . import port_object 10from . import uri_object 11 12 13class HTTPRequestResponseType(GeneratedsSuper): 14 """The HTTPRequestResponseType captures a single HTTP request/response 15 pair.The ordinal_position attribute specifies the ordinal 16 positioning of the HTTP request/response pair in the context of 17 the HTTP session. This may be useful in certain cases for 18 preserving observed HTTP request/response ordering.""" 19 subclass = None 20 superclass = None 21 def __init__(self, ordinal_position=None, HTTP_Client_Request=None, HTTP_Provisional_Server_Response=None, HTTP_Server_Response=None): 22 self.ordinal_position = _cast(int, ordinal_position) 23 self.HTTP_Client_Request = HTTP_Client_Request 24 self.HTTP_Provisional_Server_Response = HTTP_Provisional_Server_Response 25 self.HTTP_Server_Response = HTTP_Server_Response 26 def factory(*args_, **kwargs_): 27 if HTTPRequestResponseType.subclass: 28 return HTTPRequestResponseType.subclass(*args_, **kwargs_) 29 else: 30 return HTTPRequestResponseType(*args_, **kwargs_) 31 factory = staticmethod(factory) 32 def get_HTTP_Client_Request(self): return self.HTTP_Client_Request 33 def set_HTTP_Client_Request(self, HTTP_Client_Request): self.HTTP_Client_Request = HTTP_Client_Request 34 def get_HTTP_Provisional_Server_Response(self): return self.HTTP_Provisional_Server_Response 35 def set_HTTP_Provisional_Server_Response(self, HTTP_Provisional_Server_Response): self.HTTP_Provisional_Server_Response = HTTP_Provisional_Server_Response 36 def get_HTTP_Server_Response(self): return self.HTTP_Server_Response 37 def set_HTTP_Server_Response(self, HTTP_Server_Response): self.HTTP_Server_Response = HTTP_Server_Response 38 def get_ordinal_position(self): return self.ordinal_position 39 def set_ordinal_position(self, ordinal_position): self.ordinal_position = ordinal_position 40 def hasContent_(self): 41 if ( 42 self.HTTP_Client_Request is not None or 43 self.HTTP_Provisional_Server_Response is not None or 44 self.HTTP_Server_Response is not None 45 ): 46 return True 47 else: 48 return False 49 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestResponseType', namespacedef_='', pretty_print=True): 50 if pretty_print: 51 eol_ = '\n' 52 else: 53 eol_ = '' 54 showIndent(lwrite, level, pretty_print) 55 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 56 already_processed = set() 57 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPRequestResponseType') 58 if self.hasContent_(): 59 lwrite('>%s' % (eol_, )) 60 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 61 showIndent(lwrite, level, pretty_print) 62 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 63 else: 64 lwrite('/>%s' % (eol_, )) 65 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPRequestResponseType'): 66 if self.ordinal_position is not None: 67 68 lwrite(' ordinal_position="%s"' % self.gds_format_integer(self.ordinal_position, input_name='ordinal_position')) 69 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestResponseType', fromsubclass_=False, pretty_print=True): 70 if pretty_print: 71 eol_ = '\n' 72 else: 73 eol_ = '' 74 if self.HTTP_Client_Request is not None: 75 self.HTTP_Client_Request.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Client_Request', pretty_print=pretty_print) 76 if self.HTTP_Provisional_Server_Response is not None: 77 self.HTTP_Provisional_Server_Response.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Provisional_Server_Response', pretty_print=pretty_print) 78 if self.HTTP_Server_Response is not None: 79 self.HTTP_Server_Response.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Server_Response', pretty_print=pretty_print) 80 def build(self, node): 81 self.__sourcenode__ = node 82 already_processed = set() 83 self.buildAttributes(node, node.attrib, already_processed) 84 for child in node: 85 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 86 self.buildChildren(child, node, nodeName_) 87 def buildAttributes(self, node, attrs, already_processed): 88 value = find_attr_value_('ordinal_position', node) 89 if value is not None: 90 91 try: 92 self.ordinal_position = int(value) 93 except ValueError as exp: 94 raise_parse_error(node, 'Bad integer attribute: %s' % exp) 95 if self.ordinal_position < 0: 96 raise_parse_error(node, 'Invalid NonNegativeInteger') 97 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 98 if nodeName_ == 'HTTP_Client_Request': 99 obj_ = HTTPClientRequestType.factory() 100 obj_.build(child_) 101 self.set_HTTP_Client_Request(obj_) 102 elif nodeName_ == 'HTTP_Provisional_Server_Response': 103 obj_ = HTTPServerResponseType.factory() 104 obj_.build(child_) 105 self.set_HTTP_Provisional_Server_Response(obj_) 106 elif nodeName_ == 'HTTP_Server_Response': 107 obj_ = HTTPServerResponseType.factory() 108 obj_.build(child_) 109 self.set_HTTP_Server_Response(obj_) 110 111class HTTPClientRequestType(GeneratedsSuper): 112 """The HTTPClientRequestType field captures the details of an HTTP 113 client request.""" 114 115 subclass = None 116 superclass = None 117 def __init__(self, HTTP_Request_Line=None, HTTP_Request_Header=None, HTTP_Message_Body=None): 118 self.HTTP_Request_Line = HTTP_Request_Line 119 self.HTTP_Request_Header = HTTP_Request_Header 120 self.HTTP_Message_Body = HTTP_Message_Body 121 def factory(*args_, **kwargs_): 122 if HTTPClientRequestType.subclass: 123 return HTTPClientRequestType.subclass(*args_, **kwargs_) 124 else: 125 return HTTPClientRequestType(*args_, **kwargs_) 126 factory = staticmethod(factory) 127 def get_HTTP_Request_Line(self): return self.HTTP_Request_Line 128 def set_HTTP_Request_Line(self, HTTP_Request_Line): self.HTTP_Request_Line = HTTP_Request_Line 129 def get_HTTP_Request_Header(self): return self.HTTP_Request_Header 130 def set_HTTP_Request_Header(self, HTTP_Request_Header): self.HTTP_Request_Header = HTTP_Request_Header 131 def get_HTTP_Message_Body(self): return self.HTTP_Message_Body 132 def set_HTTP_Message_Body(self, HTTP_Message_Body): self.HTTP_Message_Body = HTTP_Message_Body 133 def hasContent_(self): 134 if ( 135 self.HTTP_Request_Line is not None or 136 self.HTTP_Request_Header is not None or 137 self.HTTP_Message_Body is not None 138 ): 139 return True 140 else: 141 return False 142 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPClientRequestType', namespacedef_='', pretty_print=True): 143 if pretty_print: 144 eol_ = '\n' 145 else: 146 eol_ = '' 147 showIndent(lwrite, level, pretty_print) 148 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 149 already_processed = set() 150 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPClientRequestType') 151 if self.hasContent_(): 152 lwrite('>%s' % (eol_, )) 153 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 154 showIndent(lwrite, level, pretty_print) 155 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 156 else: 157 lwrite('/>%s' % (eol_, )) 158 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPClientRequestType'): 159 pass 160 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPClientRequestType', fromsubclass_=False, pretty_print=True): 161 if pretty_print: 162 eol_ = '\n' 163 else: 164 eol_ = '' 165 if self.HTTP_Request_Line is not None: 166 self.HTTP_Request_Line.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Request_Line', pretty_print=pretty_print) 167 if self.HTTP_Request_Header is not None: 168 self.HTTP_Request_Header.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Request_Header', pretty_print=pretty_print) 169 if self.HTTP_Message_Body is not None: 170 self.HTTP_Message_Body.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Message_Body', pretty_print=pretty_print) 171 def build(self, node): 172 self.__sourcenode__ = node 173 already_processed = set() 174 self.buildAttributes(node, node.attrib, already_processed) 175 for child in node: 176 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 177 self.buildChildren(child, node, nodeName_) 178 def buildAttributes(self, node, attrs, already_processed): 179 pass 180 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 181 if nodeName_ == 'HTTP_Request_Line': 182 obj_ = HTTPRequestLineType.factory() 183 obj_.build(child_) 184 self.set_HTTP_Request_Line(obj_) 185 elif nodeName_ == 'HTTP_Request_Header': 186 obj_ = HTTPRequestHeaderType.factory() 187 obj_.build(child_) 188 self.set_HTTP_Request_Header(obj_) 189 elif nodeName_ == 'HTTP_Message_Body': 190 obj_ = HTTPMessageType.factory() 191 obj_.build(child_) 192 self.set_HTTP_Message_Body(obj_) 193# end class HTTPClientRequestType 194 195class HTTPServerResponseType(GeneratedsSuper): 196 """The HTTPServerResponseType captures the details of an HTTP server 197 response.""" 198 199 subclass = None 200 superclass = None 201 def __init__(self, HTTP_Status_Line=None, HTTP_Response_Header=None, HTTP_Message_Body=None): 202 self.HTTP_Status_Line = HTTP_Status_Line 203 self.HTTP_Response_Header = HTTP_Response_Header 204 self.HTTP_Message_Body = HTTP_Message_Body 205 def factory(*args_, **kwargs_): 206 if HTTPServerResponseType.subclass: 207 return HTTPServerResponseType.subclass(*args_, **kwargs_) 208 else: 209 return HTTPServerResponseType(*args_, **kwargs_) 210 factory = staticmethod(factory) 211 def get_HTTP_Status_Line(self): return self.HTTP_Status_Line 212 def set_HTTP_Status_Line(self, HTTP_Status_Line): self.HTTP_Status_Line = HTTP_Status_Line 213 def get_HTTP_Response_Header(self): return self.HTTP_Response_Header 214 def set_HTTP_Response_Header(self, HTTP_Response_Header): self.HTTP_Response_Header = HTTP_Response_Header 215 def get_HTTP_Message_Body(self): return self.HTTP_Message_Body 216 def set_HTTP_Message_Body(self, HTTP_Message_Body): self.HTTP_Message_Body = HTTP_Message_Body 217 def hasContent_(self): 218 if ( 219 self.HTTP_Status_Line is not None or 220 self.HTTP_Response_Header is not None or 221 self.HTTP_Message_Body is not None 222 ): 223 return True 224 else: 225 return False 226 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPServerResponseType', namespacedef_='', pretty_print=True): 227 if pretty_print: 228 eol_ = '\n' 229 else: 230 eol_ = '' 231 showIndent(lwrite, level, pretty_print) 232 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 233 already_processed = set() 234 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPServerResponseType') 235 if self.hasContent_(): 236 lwrite('>%s' % (eol_, )) 237 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 238 showIndent(lwrite, level, pretty_print) 239 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 240 else: 241 lwrite('/>%s' % (eol_, )) 242 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPServerResponseType'): 243 pass 244 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPServerResponseType', fromsubclass_=False, pretty_print=True): 245 if pretty_print: 246 eol_ = '\n' 247 else: 248 eol_ = '' 249 if self.HTTP_Status_Line is not None: 250 self.HTTP_Status_Line.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Status_Line', pretty_print=pretty_print) 251 if self.HTTP_Response_Header is not None: 252 self.HTTP_Response_Header.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Response_Header', pretty_print=pretty_print) 253 if self.HTTP_Message_Body is not None: 254 self.HTTP_Message_Body.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Message_Body', pretty_print=pretty_print) 255 def build(self, node): 256 self.__sourcenode__ = node 257 already_processed = set() 258 self.buildAttributes(node, node.attrib, already_processed) 259 for child in node: 260 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 261 self.buildChildren(child, node, nodeName_) 262 def buildAttributes(self, node, attrs, already_processed): 263 pass 264 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 265 if nodeName_ == 'HTTP_Status_Line': 266 obj_ = HTTPStatusLineType.factory() 267 obj_.build(child_) 268 self.set_HTTP_Status_Line(obj_) 269 elif nodeName_ == 'HTTP_Response_Header': 270 obj_ = HTTPResponseHeaderType.factory() 271 obj_.build(child_) 272 self.set_HTTP_Response_Header(obj_) 273 elif nodeName_ == 'HTTP_Message_Body': 274 obj_ = HTTPMessageType.factory() 275 obj_.build(child_) 276 self.set_HTTP_Message_Body(obj_) 277# end class HTTPServerResponseType 278 279class HTTPRequestLineType(GeneratedsSuper): 280 """The HTTPRequestLineType captures a single HTTP request line.""" 281 282 subclass = None 283 superclass = None 284 def __init__(self, HTTP_Method=None, Value=None, Version=None): 285 self.HTTP_Method = HTTP_Method 286 self.Value = Value 287 self.Version = Version 288 def factory(*args_, **kwargs_): 289 if HTTPRequestLineType.subclass: 290 return HTTPRequestLineType.subclass(*args_, **kwargs_) 291 else: 292 return HTTPRequestLineType(*args_, **kwargs_) 293 factory = staticmethod(factory) 294 def get_HTTP_Method(self): return self.HTTP_Method 295 def set_HTTP_Method(self, HTTP_Method): self.HTTP_Method = HTTP_Method 296 def validate_HTTPMethodType(self, value): 297 # Validate type HTTPMethodType, a restriction on None. 298 pass 299 def get_Value(self): return self.Value 300 def set_Value(self, Value): self.Value = Value 301 def validate_StringObjectPropertyType(self, value): 302 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 303 pass 304 def get_Version(self): return self.Version 305 def set_Version(self, Version): self.Version = Version 306 def hasContent_(self): 307 if ( 308 self.HTTP_Method is not None or 309 self.Value is not None or 310 self.Version is not None 311 ): 312 return True 313 else: 314 return False 315 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestLineType', namespacedef_='', pretty_print=True): 316 if pretty_print: 317 eol_ = '\n' 318 else: 319 eol_ = '' 320 showIndent(lwrite, level, pretty_print) 321 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 322 already_processed = set() 323 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPRequestLineType') 324 if self.hasContent_(): 325 lwrite('>%s' % (eol_, )) 326 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 327 showIndent(lwrite, level, pretty_print) 328 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 329 else: 330 lwrite('/>%s' % (eol_, )) 331 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPRequestLineType'): 332 pass 333 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestLineType', fromsubclass_=False, pretty_print=True): 334 if pretty_print: 335 eol_ = '\n' 336 else: 337 eol_ = '' 338 if self.HTTP_Method is not None: 339 # Temporary fix for forcing datatype output 340 #self.HTTP_Method.datatype = 'string' 341 self.HTTP_Method.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Method', pretty_print=pretty_print) 342 if self.Value is not None: 343 self.Value.export(lwrite, level, 'HTTPSessionObj:', name_='Value', pretty_print=pretty_print) 344 if self.Version is not None: 345 self.Version.export(lwrite, level, 'HTTPSessionObj:', name_='Version', pretty_print=pretty_print) 346 def build(self, node): 347 self.__sourcenode__ = node 348 already_processed = set() 349 self.buildAttributes(node, node.attrib, already_processed) 350 for child in node: 351 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 352 self.buildChildren(child, node, nodeName_) 353 def buildAttributes(self, node, attrs, already_processed): 354 pass 355 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 356 if nodeName_ == 'HTTP_Method': 357 obj_ = HTTPMethodType.factory() 358 obj_.build(child_) 359 self.set_HTTP_Method(obj_) 360 elif nodeName_ == 'Value': 361 obj_ = cybox_common.StringObjectPropertyType.factory() 362 obj_.build(child_) 363 self.set_Value(obj_) 364 elif nodeName_ == 'Version': 365 obj_ = cybox_common.StringObjectPropertyType.factory() 366 obj_.build(child_) 367 self.set_Version(obj_) 368# end class HTTPRequestLineType 369 370class HTTPRequestHeaderType(GeneratedsSuper): 371 """The HTTPRequestHeaderType captures the raw or parsed header of an 372 HTTP request.""" 373 374 subclass = None 375 superclass = None 376 def __init__(self, Raw_Header=None, Parsed_Header=None): 377 self.Raw_Header = Raw_Header 378 self.Parsed_Header = Parsed_Header 379 def factory(*args_, **kwargs_): 380 if HTTPRequestHeaderType.subclass: 381 return HTTPRequestHeaderType.subclass(*args_, **kwargs_) 382 else: 383 return HTTPRequestHeaderType(*args_, **kwargs_) 384 factory = staticmethod(factory) 385 def get_Raw_Header(self): return self.Raw_Header 386 def set_Raw_Header(self, Raw_Header): self.Raw_Header = Raw_Header 387 def validate_StringObjectPropertyType(self, value): 388 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 389 pass 390 def get_Parsed_Header(self): return self.Parsed_Header 391 def set_Parsed_Header(self, Parsed_Header): self.Parsed_Header = Parsed_Header 392 def hasContent_(self): 393 if ( 394 self.Raw_Header is not None or 395 self.Parsed_Header is not None 396 ): 397 return True 398 else: 399 return False 400 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderType', namespacedef_='', pretty_print=True): 401 if pretty_print: 402 eol_ = '\n' 403 else: 404 eol_ = '' 405 showIndent(lwrite, level, pretty_print) 406 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 407 already_processed = set() 408 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPRequestHeaderType') 409 if self.hasContent_(): 410 lwrite('>%s' % (eol_, )) 411 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 412 showIndent(lwrite, level, pretty_print) 413 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 414 else: 415 lwrite('/>%s' % (eol_, )) 416 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderType'): 417 pass 418 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderType', fromsubclass_=False, pretty_print=True): 419 if pretty_print: 420 eol_ = '\n' 421 else: 422 eol_ = '' 423 if self.Raw_Header is not None: 424 if self.Raw_Header.get_valueOf_() is not None: 425 value = self.Raw_Header.get_valueOf_() 426 if not value.startswith('<![CDATA['): 427 value = '<![CDATA[' + value + ']]>' 428 self.Raw_Header.set_valueOf_(value) 429 self.Raw_Header.export(lwrite, level, 'HTTPSessionObj:', name_='Raw_Header', pretty_print=pretty_print) 430 if self.Parsed_Header is not None: 431 self.Parsed_Header.export(lwrite, level, 'HTTPSessionObj:', name_='Parsed_Header', pretty_print=pretty_print) 432 def build(self, node): 433 self.__sourcenode__ = node 434 already_processed = set() 435 self.buildAttributes(node, node.attrib, already_processed) 436 for child in node: 437 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 438 self.buildChildren(child, node, nodeName_) 439 def buildAttributes(self, node, attrs, already_processed): 440 pass 441 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 442 if nodeName_ == 'Raw_Header': 443 obj_ = cybox_common.StringObjectPropertyType.factory() 444 obj_.build(child_) 445 self.set_Raw_Header(obj_) 446 elif nodeName_ == 'Parsed_Header': 447 obj_ = HTTPRequestHeaderFieldsType.factory() 448 obj_.build(child_) 449 self.set_Parsed_Header(obj_) 450# end class HTTPRequestHeaderType 451 452class HTTPRequestHeaderFieldsType(GeneratedsSuper): 453 """The HTTPRequestHeaderFieldsType captures parsed HTTP request header 454 fields.""" 455 456 subclass = None 457 superclass = None 458 def __init__(self, Accept=None, Accept_Charset=None, Accept_Language=None, Accept_Datetime=None, Accept_Encoding=None, Authorization=None, Cache_Control=None, Connection=None, Cookie=None, Content_Length=None, Content_MD5=None, Content_Type=None, Date=None, Expect=None, From=None, Host=None, If_Match=None, If_Modified_Since=None, If_None_Match=None, If_Range=None, If_Unmodified_Since=None, Max_Forwards=None, Pragma=None, Proxy_Authorization=None, Range=None, Referer=None, TE=None, User_Agent=None, Via=None, Warning=None, DNT=None, X_Requested_With=None, X_Forwarded_For=None, X_Forwarded_Proto=None, X_ATT_DeviceId=None, X_Wap_Profile=None): 459 self.Accept = Accept 460 self.Accept_Charset = Accept_Charset 461 self.Accept_Language = Accept_Language 462 self.Accept_Datetime = Accept_Datetime 463 self.Accept_Encoding = Accept_Encoding 464 self.Authorization = Authorization 465 self.Cache_Control = Cache_Control 466 self.Connection = Connection 467 self.Cookie = Cookie 468 self.Content_Length = Content_Length 469 self.Content_MD5 = Content_MD5 470 self.Content_Type = Content_Type 471 self.Date = Date 472 self.Expect = Expect 473 self.From = From 474 self.Host = Host 475 self.If_Match = If_Match 476 self.If_Modified_Since = If_Modified_Since 477 self.If_None_Match = If_None_Match 478 self.If_Range = If_Range 479 self.If_Unmodified_Since = If_Unmodified_Since 480 self.Max_Forwards = Max_Forwards 481 self.Pragma = Pragma 482 self.Proxy_Authorization = Proxy_Authorization 483 self.Range = Range 484 self.Referer = Referer 485 self.TE = TE 486 self.User_Agent = User_Agent 487 self.Via = Via 488 self.Warning = Warning 489 self.DNT = DNT 490 self.X_Requested_With = X_Requested_With 491 self.X_Forwarded_For = X_Forwarded_For 492 self.X_Forwarded_Proto = X_Forwarded_Proto 493 self.X_ATT_DeviceId = X_ATT_DeviceId 494 self.X_Wap_Profile = X_Wap_Profile 495 def factory(*args_, **kwargs_): 496 if HTTPRequestHeaderFieldsType.subclass: 497 return HTTPRequestHeaderFieldsType.subclass(*args_, **kwargs_) 498 else: 499 return HTTPRequestHeaderFieldsType(*args_, **kwargs_) 500 factory = staticmethod(factory) 501 def get_Accept(self): return self.Accept 502 def set_Accept(self, Accept): self.Accept = Accept 503 def validate_StringObjectPropertyType(self, value): 504 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 505 pass 506 def get_Accept_Charset(self): return self.Accept_Charset 507 def set_Accept_Charset(self, Accept_Charset): self.Accept_Charset = Accept_Charset 508 def get_Accept_Language(self): return self.Accept_Language 509 def set_Accept_Language(self, Accept_Language): self.Accept_Language = Accept_Language 510 def get_Accept_Datetime(self): return self.Accept_Datetime 511 def set_Accept_Datetime(self, Accept_Datetime): self.Accept_Datetime = Accept_Datetime 512 def get_Accept_Encoding(self): return self.Accept_Encoding 513 def set_Accept_Encoding(self, Accept_Encoding): self.Accept_Encoding = Accept_Encoding 514 def get_Authorization(self): return self.Authorization 515 def set_Authorization(self, Authorization): self.Authorization = Authorization 516 def get_Cache_Control(self): return self.Cache_Control 517 def set_Cache_Control(self, Cache_Control): self.Cache_Control = Cache_Control 518 def get_Connection(self): return self.Connection 519 def set_Connection(self, Connection): self.Connection = Connection 520 def get_Cookie(self): return self.Cookie 521 def set_Cookie(self, Cookie): self.Cookie = Cookie 522 def get_Content_Length(self): return self.Content_Length 523 def set_Content_Length(self, Content_Length): self.Content_Length = Content_Length 524 def validate_IntegerObjectPropertyType(self, value): 525 # Validate type cybox_common.IntegerObjectPropertyType, a restriction on None. 526 pass 527 def get_Content_MD5(self): return self.Content_MD5 528 def set_Content_MD5(self, Content_MD5): self.Content_MD5 = Content_MD5 529 def get_Content_Type(self): return self.Content_Type 530 def set_Content_Type(self, Content_Type): self.Content_Type = Content_Type 531 def get_Date(self): return self.Date 532 def set_Date(self, Date): self.Date = Date 533 def validate_DateTimeObjectPropertyType(self, value): 534 # Validate type cybox_common.DateTimeObjectPropertyType, a restriction on None. 535 pass 536 def get_Expect(self): return self.Expect 537 def set_Expect(self, Expect): self.Expect = Expect 538 def get_From(self): return self.From 539 def set_From(self, From): self.From = From 540 def get_Host(self): return self.Host 541 def set_Host(self, Host): self.Host = Host 542 def get_If_Match(self): return self.If_Match 543 def set_If_Match(self, If_Match): self.If_Match = If_Match 544 def get_If_Modified_Since(self): return self.If_Modified_Since 545 def set_If_Modified_Since(self, If_Modified_Since): self.If_Modified_Since = If_Modified_Since 546 def get_If_None_Match(self): return self.If_None_Match 547 def set_If_None_Match(self, If_None_Match): self.If_None_Match = If_None_Match 548 def get_If_Range(self): return self.If_Range 549 def set_If_Range(self, If_Range): self.If_Range = If_Range 550 def get_If_Unmodified_Since(self): return self.If_Unmodified_Since 551 def set_If_Unmodified_Since(self, If_Unmodified_Since): self.If_Unmodified_Since = If_Unmodified_Since 552 def get_Max_Forwards(self): return self.Max_Forwards 553 def set_Max_Forwards(self, Max_Forwards): self.Max_Forwards = Max_Forwards 554 def get_Pragma(self): return self.Pragma 555 def set_Pragma(self, Pragma): self.Pragma = Pragma 556 def get_Proxy_Authorization(self): return self.Proxy_Authorization 557 def set_Proxy_Authorization(self, Proxy_Authorization): self.Proxy_Authorization = Proxy_Authorization 558 def get_Range(self): return self.Range 559 def set_Range(self, Range): self.Range = Range 560 def get_Referer(self): return self.Referer 561 def set_Referer(self, Referer): self.Referer = Referer 562 def get_TE(self): return self.TE 563 def set_TE(self, TE): self.TE = TE 564 def get_User_Agent(self): return self.User_Agent 565 def set_User_Agent(self, User_Agent): self.User_Agent = User_Agent 566 def get_Via(self): return self.Via 567 def set_Via(self, Via): self.Via = Via 568 def get_Warning(self): return self.Warning 569 def set_Warning(self, Warning): self.Warning = Warning 570 def get_DNT(self): return self.DNT 571 def set_DNT(self, DNT): self.DNT = DNT 572 def get_X_Requested_With(self): return self.X_Requested_With 573 def set_X_Requested_With(self, X_Requested_With): self.X_Requested_With = X_Requested_With 574 def get_X_Forwarded_For(self): return self.X_Forwarded_For 575 def set_X_Forwarded_For(self, X_Forwarded_For): self.X_Forwarded_For = X_Forwarded_For 576 def get_X_Forwarded_Proto(self): return self.X_Forwarded_Proto 577 def set_X_Forwarded_Proto(self, X_Forwarded_Proto): self.X_Forwarded_Proto = X_Forwarded_Proto 578 def get_X_ATT_DeviceId(self): return self.X_ATT_DeviceId 579 def set_X_ATT_DeviceId(self, X_ATT_DeviceId): self.X_ATT_DeviceId = X_ATT_DeviceId 580 def get_X_Wap_Profile(self): return self.X_Wap_Profile 581 def set_X_Wap_Profile(self, X_Wap_Profile): self.X_Wap_Profile = X_Wap_Profile 582 def hasContent_(self): 583 if ( 584 self.Accept is not None or 585 self.Accept_Charset is not None or 586 self.Accept_Language is not None or 587 self.Accept_Datetime is not None or 588 self.Accept_Encoding is not None or 589 self.Authorization is not None or 590 self.Cache_Control is not None or 591 self.Connection is not None or 592 self.Cookie is not None or 593 self.Content_Length is not None or 594 self.Content_MD5 is not None or 595 self.Content_Type is not None or 596 self.Date is not None or 597 self.Expect is not None or 598 self.From is not None or 599 self.Host is not None or 600 self.If_Match is not None or 601 self.If_Modified_Since is not None or 602 self.If_None_Match is not None or 603 self.If_Range is not None or 604 self.If_Unmodified_Since is not None or 605 self.Max_Forwards is not None or 606 self.Pragma is not None or 607 self.Proxy_Authorization is not None or 608 self.Range is not None or 609 self.Referer is not None or 610 self.TE is not None or 611 self.User_Agent is not None or 612 self.Via is not None or 613 self.Warning is not None or 614 self.DNT is not None or 615 self.X_Requested_With is not None or 616 self.X_Forwarded_For is not None or 617 self.X_Forwarded_Proto is not None or 618 self.X_ATT_DeviceId is not None or 619 self.X_Wap_Profile is not None 620 ): 621 return True 622 else: 623 return False 624 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderFieldsType', namespacedef_='', pretty_print=True): 625 if pretty_print: 626 eol_ = '\n' 627 else: 628 eol_ = '' 629 showIndent(lwrite, level, pretty_print) 630 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 631 already_processed = set() 632 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPRequestHeaderFieldsType') 633 if self.hasContent_(): 634 lwrite('>%s' % (eol_, )) 635 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 636 showIndent(lwrite, level, pretty_print) 637 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 638 else: 639 lwrite('/>%s' % (eol_, )) 640 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderFieldsType'): 641 pass 642 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPRequestHeaderFieldsType', fromsubclass_=False, pretty_print=True): 643 if pretty_print: 644 eol_ = '\n' 645 else: 646 eol_ = '' 647 if self.Accept is not None: 648 self.Accept.export(lwrite, level, 'HTTPSessionObj:', name_='Accept', pretty_print=pretty_print) 649 if self.Accept_Charset is not None: 650 self.Accept_Charset.export(lwrite, level, 'HTTPSessionObj:', name_='Accept_Charset', pretty_print=pretty_print) 651 if self.Accept_Language is not None: 652 self.Accept_Language.export(lwrite, level, 'HTTPSessionObj:', name_='Accept_Language', pretty_print=pretty_print) 653 if self.Accept_Datetime is not None: 654 self.Accept_Datetime.export(lwrite, level, 'HTTPSessionObj:', name_='Accept_Datetime', pretty_print=pretty_print) 655 if self.Accept_Encoding is not None: 656 self.Accept_Encoding.export(lwrite, level, 'HTTPSessionObj:', name_='Accept_Encoding', pretty_print=pretty_print) 657 if self.Authorization is not None: 658 self.Authorization.export(lwrite, level, 'HTTPSessionObj:', name_='Authorization', pretty_print=pretty_print) 659 if self.Cache_Control is not None: 660 self.Cache_Control.export(lwrite, level, 'HTTPSessionObj:', name_='Cache_Control', pretty_print=pretty_print) 661 if self.Connection is not None: 662 self.Connection.export(lwrite, level, 'HTTPSessionObj:', name_='Connection', pretty_print=pretty_print) 663 if self.Cookie is not None: 664 self.Cookie.export(lwrite, level, 'HTTPSessionObj:', name_='Cookie', pretty_print=pretty_print) 665 if self.Content_Length is not None: 666 self.Content_Length.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Length', pretty_print=pretty_print) 667 if self.Content_MD5 is not None: 668 self.Content_MD5.export(lwrite, level, 'HTTPSessionObj:', name_='Content_MD5', pretty_print=pretty_print) 669 if self.Content_Type is not None: 670 self.Content_Type.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Type', pretty_print=pretty_print) 671 if self.Date is not None: 672 self.Date.export(lwrite, level, 'HTTPSessionObj:', name_='Date', pretty_print=pretty_print) 673 if self.Expect is not None: 674 self.Expect.export(lwrite, level, 'HTTPSessionObj:', name_='Expect', pretty_print=pretty_print) 675 if self.From is not None: 676 self.From.export(lwrite, level, 'HTTPSessionObj:', name_='From', pretty_print=pretty_print) 677 if self.Host is not None: 678 self.Host.export(lwrite, level, 'HTTPSessionObj:', name_='Host', pretty_print=pretty_print) 679 if self.If_Match is not None: 680 self.If_Match.export(lwrite, level, 'HTTPSessionObj:', name_='If_Match', pretty_print=pretty_print) 681 if self.If_Modified_Since is not None: 682 self.If_Modified_Since.export(lwrite, level, 'HTTPSessionObj:', name_='If_Modified_Since', pretty_print=pretty_print) 683 if self.If_None_Match is not None: 684 self.If_None_Match.export(lwrite, level, 'HTTPSessionObj:', name_='If_None_Match', pretty_print=pretty_print) 685 if self.If_Range is not None: 686 self.If_Range.export(lwrite, level, 'HTTPSessionObj:', name_='If_Range', pretty_print=pretty_print) 687 if self.If_Unmodified_Since is not None: 688 self.If_Unmodified_Since.export(lwrite, level, 'HTTPSessionObj:', name_='If_Unmodified_Since', pretty_print=pretty_print) 689 if self.Max_Forwards is not None: 690 self.Max_Forwards.export(lwrite, level, 'HTTPSessionObj:', name_='Max_Forwards', pretty_print=pretty_print) 691 if self.Pragma is not None: 692 self.Pragma.export(lwrite, level, 'HTTPSessionObj:', name_='Pragma', pretty_print=pretty_print) 693 if self.Proxy_Authorization is not None: 694 self.Proxy_Authorization.export(lwrite, level, 'HTTPSessionObj:', name_='Proxy_Authorization', pretty_print=pretty_print) 695 if self.Range is not None: 696 self.Range.export(lwrite, level, 'HTTPSessionObj:', name_='Range', pretty_print=pretty_print) 697 if self.Referer is not None: 698 self.Referer.export(lwrite, level, 'HTTPSessionObj:', name_='Referer', pretty_print=pretty_print) 699 if self.TE is not None: 700 self.TE.export(lwrite, level, 'HTTPSessionObj:', name_='TE', pretty_print=pretty_print) 701 if self.User_Agent is not None: 702 self.User_Agent.export(lwrite, level, 'HTTPSessionObj:', name_='User_Agent', pretty_print=pretty_print) 703 if self.Via is not None: 704 self.Via.export(lwrite, level, 'HTTPSessionObj:', name_='Via', pretty_print=pretty_print) 705 if self.Warning is not None: 706 self.Warning.export(lwrite, level, 'HTTPSessionObj:', name_='Warning', pretty_print=pretty_print) 707 if self.DNT is not None: 708 self.DNT.export(lwrite, level, 'HTTPSessionObj:', name_='DNT', pretty_print=pretty_print) 709 if self.X_Requested_With is not None: 710 self.X_Requested_With.export(lwrite, level, 'HTTPSessionObj:', name_='X_Requested_With', pretty_print=pretty_print) 711 if self.X_Forwarded_For is not None: 712 self.X_Forwarded_For.export(lwrite, level, 'HTTPSessionObj:', name_='X_Forwarded_For', pretty_print=pretty_print) 713 if self.X_Forwarded_Proto is not None: 714 self.X_Forwarded_Proto.export(lwrite, level, 'HTTPSessionObj:', name_='X_Forwarded_Proto', pretty_print=pretty_print) 715 if self.X_ATT_DeviceId is not None: 716 self.X_ATT_DeviceId.export(lwrite, level, 'HTTPSessionObj:', name_='X_ATT_DeviceId', pretty_print=pretty_print) 717 if self.X_Wap_Profile is not None: 718 self.X_Wap_Profile.export(lwrite, level, 'HTTPSessionObj:', name_='X_Wap_Profile', pretty_print=pretty_print) 719 def build(self, node): 720 self.__sourcenode__ = node 721 already_processed = set() 722 self.buildAttributes(node, node.attrib, already_processed) 723 for child in node: 724 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 725 self.buildChildren(child, node, nodeName_) 726 def buildAttributes(self, node, attrs, already_processed): 727 pass 728 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 729 if nodeName_ == 'Accept': 730 obj_ = cybox_common.StringObjectPropertyType.factory() 731 obj_.build(child_) 732 self.set_Accept(obj_) 733 elif nodeName_ == 'Accept_Charset': 734 obj_ = cybox_common.StringObjectPropertyType.factory() 735 obj_.build(child_) 736 self.set_Accept_Charset(obj_) 737 elif nodeName_ == 'Accept_Language': 738 obj_ = cybox_common.StringObjectPropertyType.factory() 739 obj_.build(child_) 740 self.set_Accept_Language(obj_) 741 elif nodeName_ == 'Accept_Datetime': 742 obj_ = cybox_common.StringObjectPropertyType.factory() 743 obj_.build(child_) 744 self.set_Accept_Datetime(obj_) 745 elif nodeName_ == 'Accept_Encoding': 746 obj_ = cybox_common.StringObjectPropertyType.factory() 747 obj_.build(child_) 748 self.set_Accept_Encoding(obj_) 749 elif nodeName_ == 'Authorization': 750 obj_ = cybox_common.StringObjectPropertyType.factory() 751 obj_.build(child_) 752 self.set_Authorization(obj_) 753 elif nodeName_ == 'Cache_Control': 754 obj_ = cybox_common.StringObjectPropertyType.factory() 755 obj_.build(child_) 756 self.set_Cache_Control(obj_) 757 elif nodeName_ == 'Connection': 758 obj_ = cybox_common.StringObjectPropertyType.factory() 759 obj_.build(child_) 760 self.set_Connection(obj_) 761 elif nodeName_ == 'Cookie': 762 obj_ = cybox_common.StringObjectPropertyType.factory() 763 obj_.build(child_) 764 self.set_Cookie(obj_) 765 elif nodeName_ == 'Content_Length': 766 obj_ = cybox_common.IntegerObjectPropertyType.factory() 767 obj_.build(child_) 768 self.set_Content_Length(obj_) 769 elif nodeName_ == 'Content_MD5': 770 obj_ = cybox_common.StringObjectPropertyType.factory() 771 obj_.build(child_) 772 self.set_Content_MD5(obj_) 773 elif nodeName_ == 'Content_Type': 774 obj_ = cybox_common.StringObjectPropertyType.factory() 775 obj_.build(child_) 776 self.set_Content_Type(obj_) 777 elif nodeName_ == 'Date': 778 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 779 obj_.build(child_) 780 self.set_Date(obj_) 781 elif nodeName_ == 'Expect': 782 obj_ = cybox_common.StringObjectPropertyType.factory() 783 obj_.build(child_) 784 self.set_Expect(obj_) 785 elif nodeName_ == 'From': 786 obj_ = address_object.AddressObjectType.factory() 787 obj_.build(child_) 788 self.set_From(obj_) 789 elif nodeName_ == 'Host': 790 obj_ = HostFieldType.factory() 791 obj_.build(child_) 792 self.set_Host(obj_) 793 elif nodeName_ == 'If_Match': 794 obj_ = cybox_common.StringObjectPropertyType.factory() 795 obj_.build(child_) 796 self.set_If_Match(obj_) 797 elif nodeName_ == 'If_Modified_Since': 798 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 799 obj_.build(child_) 800 self.set_If_Modified_Since(obj_) 801 elif nodeName_ == 'If_None_Match': 802 obj_ = cybox_common.StringObjectPropertyType.factory() 803 obj_.build(child_) 804 self.set_If_None_Match(obj_) 805 elif nodeName_ == 'If_Range': 806 obj_ = cybox_common.StringObjectPropertyType.factory() 807 obj_.build(child_) 808 self.set_If_Range(obj_) 809 elif nodeName_ == 'If_Unmodified_Since': 810 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 811 obj_.build(child_) 812 self.set_If_Unmodified_Since(obj_) 813 elif nodeName_ == 'Max_Forwards': 814 obj_ = cybox_common.IntegerObjectPropertyType.factory() 815 obj_.build(child_) 816 self.set_Max_Forwards(obj_) 817 elif nodeName_ == 'Pragma': 818 obj_ = cybox_common.StringObjectPropertyType.factory() 819 obj_.build(child_) 820 self.set_Pragma(obj_) 821 elif nodeName_ == 'Proxy_Authorization': 822 obj_ = cybox_common.StringObjectPropertyType.factory() 823 obj_.build(child_) 824 self.set_Proxy_Authorization(obj_) 825 elif nodeName_ == 'Range': 826 obj_ = cybox_common.StringObjectPropertyType.factory() 827 obj_.build(child_) 828 self.set_Range(obj_) 829 elif nodeName_ == 'Referer': 830 obj_ = uri_object.URIObjectType.factory() 831 obj_.build(child_) 832 self.set_Referer(obj_) 833 elif nodeName_ == 'TE': 834 obj_ = cybox_common.StringObjectPropertyType.factory() 835 obj_.build(child_) 836 self.set_TE(obj_) 837 elif nodeName_ == 'User_Agent': 838 obj_ = cybox_common.StringObjectPropertyType.factory() 839 obj_.build(child_) 840 self.set_User_Agent(obj_) 841 elif nodeName_ == 'Via': 842 obj_ = cybox_common.StringObjectPropertyType.factory() 843 obj_.build(child_) 844 self.set_Via(obj_) 845 elif nodeName_ == 'Warning': 846 obj_ = cybox_common.StringObjectPropertyType.factory() 847 obj_.build(child_) 848 self.set_Warning(obj_) 849 elif nodeName_ == 'DNT': 850 obj_ = cybox_common.StringObjectPropertyType.factory() 851 obj_.build(child_) 852 self.set_DNT(obj_) 853 elif nodeName_ == 'X_Requested_With': 854 obj_ = cybox_common.StringObjectPropertyType.factory() 855 obj_.build(child_) 856 self.set_X_Requested_With(obj_) 857 elif nodeName_ == 'X_Forwarded_For': 858 obj_ = cybox_common.StringObjectPropertyType.factory() 859 obj_.build(child_) 860 self.set_X_Forwarded_For(obj_) 861 elif nodeName_ == 'X_Forwarded_Proto': 862 obj_ = cybox_common.StringObjectPropertyType.factory() 863 obj_.build(child_) 864 self.set_X_Forwarded_Proto(obj_) 865 elif nodeName_ == 'X_ATT_DeviceId': 866 obj_ = cybox_common.StringObjectPropertyType.factory() 867 obj_.build(child_) 868 self.set_X_ATT_DeviceId(obj_) 869 elif nodeName_ == 'X_Wap_Profile': 870 obj_ = uri_object.URIObjectType.factory() 871 obj_.build(child_) 872 self.set_X_Wap_Profile(obj_) 873# end class HTTPRequestHeaderFieldsType 874 875class HTTPResponseHeaderType(GeneratedsSuper): 876 """The HTTPResponseHeaderType captures the raw or parsed header of an 877 HTTP response.""" 878 879 subclass = None 880 superclass = None 881 def __init__(self, Raw_Header=None, Parsed_Header=None): 882 self.Raw_Header = Raw_Header 883 self.Parsed_Header = Parsed_Header 884 def factory(*args_, **kwargs_): 885 if HTTPResponseHeaderType.subclass: 886 return HTTPResponseHeaderType.subclass(*args_, **kwargs_) 887 else: 888 return HTTPResponseHeaderType(*args_, **kwargs_) 889 factory = staticmethod(factory) 890 def get_Raw_Header(self): return self.Raw_Header 891 def set_Raw_Header(self, Raw_Header): self.Raw_Header = Raw_Header 892 def validate_StringObjectPropertyType(self, value): 893 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 894 pass 895 def get_Parsed_Header(self): return self.Parsed_Header 896 def set_Parsed_Header(self, Parsed_Header): self.Parsed_Header = Parsed_Header 897 def hasContent_(self): 898 if ( 899 self.Raw_Header is not None or 900 self.Parsed_Header is not None 901 ): 902 return True 903 else: 904 return False 905 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderType', namespacedef_='', pretty_print=True): 906 if pretty_print: 907 eol_ = '\n' 908 else: 909 eol_ = '' 910 showIndent(lwrite, level, pretty_print) 911 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 912 already_processed = set() 913 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPResponseHeaderType') 914 if self.hasContent_(): 915 lwrite('>%s' % (eol_, )) 916 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 917 showIndent(lwrite, level, pretty_print) 918 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 919 else: 920 lwrite('/>%s' % (eol_, )) 921 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderType'): 922 pass 923 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderType', fromsubclass_=False, pretty_print=True): 924 if pretty_print: 925 eol_ = '\n' 926 else: 927 eol_ = '' 928 if self.Raw_Header is not None: 929 if self.Raw_Header.get_valueOf_() is not None: 930 value = self.Raw_Header.get_valueOf_() 931 if not value.startswith('<![CDATA['): 932 value = '<![CDATA[' + value + ']]>' 933 self.Raw_Header.set_valueOf_(value) 934 self.Raw_Header.export(lwrite, level, 'HTTPSessionObj:', name_='Raw_Header', pretty_print=pretty_print) 935 if self.Parsed_Header is not None: 936 self.Parsed_Header.export(lwrite, level, 'HTTPSessionObj:', name_='Parsed_Header', pretty_print=pretty_print) 937 def build(self, node): 938 self.__sourcenode__ = node 939 already_processed = set() 940 self.buildAttributes(node, node.attrib, already_processed) 941 for child in node: 942 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 943 self.buildChildren(child, node, nodeName_) 944 def buildAttributes(self, node, attrs, already_processed): 945 pass 946 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 947 if nodeName_ == 'Raw_Header': 948 obj_ = cybox_common.StringObjectPropertyType.factory() 949 obj_.build(child_) 950 self.set_Raw_Header(obj_) 951 elif nodeName_ == 'Parsed_Header': 952 obj_ = HTTPResponseHeaderFieldsType.factory() 953 obj_.build(child_) 954 self.set_Parsed_Header(obj_) 955# end class HTTPResponseHeaderType 956 957class HTTPResponseHeaderFieldsType(GeneratedsSuper): 958 """The HTTPRequestHeaderFieldsType captures parsed HTTP request header 959 fields.""" 960 961 subclass = None 962 superclass = None 963 def __init__(self, Access_Control_Allow_Origin=None, Accept_Ranges=None, Age=None, Cache_Control=None, Connection=None, Content_Encoding=None, Content_Language=None, Content_Length=None, Content_Location=None, Content_MD5=None, Content_Disposition=None, Content_Range=None, Content_Type=None, Date=None, ETag=None, Expires=None, Last_Modified=None, Link=None, Location=None, P3P=None, Pragma=None, Proxy_Authenticate=None, Refresh=None, Retry_After=None, Server=None, Set_Cookie=None, Strict_Transport_Security=None, Trailer=None, Transfer_Encoding=None, Vary=None, Via=None, Warning=None, WWW_Authenticate=None, X_Frame_Options=None, X_XSS_Protection=None, X_Content_Type_Options=None, X_Powered_By=None, X_UA_Compatible=None): 964 self.Access_Control_Allow_Origin = Access_Control_Allow_Origin 965 self.Accept_Ranges = Accept_Ranges 966 self.Age = Age 967 self.Cache_Control = Cache_Control 968 self.Connection = Connection 969 self.Content_Encoding = Content_Encoding 970 self.Content_Language = Content_Language 971 self.Content_Length = Content_Length 972 self.Content_Location = Content_Location 973 self.Content_MD5 = Content_MD5 974 self.Content_Disposition = Content_Disposition 975 self.Content_Range = Content_Range 976 self.Content_Type = Content_Type 977 self.Date = Date 978 self.ETag = ETag 979 self.Expires = Expires 980 self.Last_Modified = Last_Modified 981 self.Link = Link 982 self.Location = Location 983 self.P3P = P3P 984 self.Pragma = Pragma 985 self.Proxy_Authenticate = Proxy_Authenticate 986 self.Refresh = Refresh 987 self.Retry_After = Retry_After 988 self.Server = Server 989 self.Set_Cookie = Set_Cookie 990 self.Strict_Transport_Security = Strict_Transport_Security 991 self.Trailer = Trailer 992 self.Transfer_Encoding = Transfer_Encoding 993 self.Vary = Vary 994 self.Via = Via 995 self.Warning = Warning 996 self.WWW_Authenticate = WWW_Authenticate 997 self.X_Frame_Options = X_Frame_Options 998 self.X_XSS_Protection = X_XSS_Protection 999 self.X_Content_Type_Options = X_Content_Type_Options 1000 self.X_Powered_By = X_Powered_By 1001 self.X_UA_Compatible = X_UA_Compatible 1002 def factory(*args_, **kwargs_): 1003 if HTTPResponseHeaderFieldsType.subclass: 1004 return HTTPResponseHeaderFieldsType.subclass(*args_, **kwargs_) 1005 else: 1006 return HTTPResponseHeaderFieldsType(*args_, **kwargs_) 1007 factory = staticmethod(factory) 1008 def get_Access_Control_Allow_Origin(self): return self.Access_Control_Allow_Origin 1009 def set_Access_Control_Allow_Origin(self, Access_Control_Allow_Origin): self.Access_Control_Allow_Origin = Access_Control_Allow_Origin 1010 def validate_StringObjectPropertyType(self, value): 1011 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 1012 pass 1013 def get_Accept_Ranges(self): return self.Accept_Ranges 1014 def set_Accept_Ranges(self, Accept_Ranges): self.Accept_Ranges = Accept_Ranges 1015 def get_Age(self): return self.Age 1016 def set_Age(self, Age): self.Age = Age 1017 def validate_IntegerObjectPropertyType(self, value): 1018 # Validate type cybox_common.IntegerObjectPropertyType, a restriction on None. 1019 pass 1020 def get_Cache_Control(self): return self.Cache_Control 1021 def set_Cache_Control(self, Cache_Control): self.Cache_Control = Cache_Control 1022 def get_Connection(self): return self.Connection 1023 def set_Connection(self, Connection): self.Connection = Connection 1024 def get_Content_Encoding(self): return self.Content_Encoding 1025 def set_Content_Encoding(self, Content_Encoding): self.Content_Encoding = Content_Encoding 1026 def get_Content_Language(self): return self.Content_Language 1027 def set_Content_Language(self, Content_Language): self.Content_Language = Content_Language 1028 def get_Content_Length(self): return self.Content_Length 1029 def set_Content_Length(self, Content_Length): self.Content_Length = Content_Length 1030 def get_Content_Location(self): return self.Content_Location 1031 def set_Content_Location(self, Content_Location): self.Content_Location = Content_Location 1032 def get_Content_MD5(self): return self.Content_MD5 1033 def set_Content_MD5(self, Content_MD5): self.Content_MD5 = Content_MD5 1034 def get_Content_Disposition(self): return self.Content_Disposition 1035 def set_Content_Disposition(self, Content_Disposition): self.Content_Disposition = Content_Disposition 1036 def get_Content_Range(self): return self.Content_Range 1037 def set_Content_Range(self, Content_Range): self.Content_Range = Content_Range 1038 def get_Content_Type(self): return self.Content_Type 1039 def set_Content_Type(self, Content_Type): self.Content_Type = Content_Type 1040 def get_Date(self): return self.Date 1041 def set_Date(self, Date): self.Date = Date 1042 def validate_DateTimeObjectPropertyType(self, value): 1043 # Validate type cybox_common.DateTimeObjectPropertyType, a restriction on None. 1044 pass 1045 def get_ETag(self): return self.ETag 1046 def set_ETag(self, ETag): self.ETag = ETag 1047 def get_Expires(self): return self.Expires 1048 def set_Expires(self, Expires): self.Expires = Expires 1049 def get_Last_Modified(self): return self.Last_Modified 1050 def set_Last_Modified(self, Last_Modified): self.Last_Modified = Last_Modified 1051 def get_Link(self): return self.Link 1052 def set_Link(self, Link): self.Link = Link 1053 def get_Location(self): return self.Location 1054 def set_Location(self, Location): self.Location = Location 1055 def get_P3P(self): return self.P3P 1056 def set_P3P(self, P3P): self.P3P = P3P 1057 def get_Pragma(self): return self.Pragma 1058 def set_Pragma(self, Pragma): self.Pragma = Pragma 1059 def get_Proxy_Authenticate(self): return self.Proxy_Authenticate 1060 def set_Proxy_Authenticate(self, Proxy_Authenticate): self.Proxy_Authenticate = Proxy_Authenticate 1061 def get_Refresh(self): return self.Refresh 1062 def set_Refresh(self, Refresh): self.Refresh = Refresh 1063 def get_Retry_After(self): return self.Retry_After 1064 def set_Retry_After(self, Retry_After): self.Retry_After = Retry_After 1065 def get_Server(self): return self.Server 1066 def set_Server(self, Server): self.Server = Server 1067 def get_Set_Cookie(self): return self.Set_Cookie 1068 def set_Set_Cookie(self, Set_Cookie): self.Set_Cookie = Set_Cookie 1069 def get_Strict_Transport_Security(self): return self.Strict_Transport_Security 1070 def set_Strict_Transport_Security(self, Strict_Transport_Security): self.Strict_Transport_Security = Strict_Transport_Security 1071 def get_Trailer(self): return self.Trailer 1072 def set_Trailer(self, Trailer): self.Trailer = Trailer 1073 def get_Transfer_Encoding(self): return self.Transfer_Encoding 1074 def set_Transfer_Encoding(self, Transfer_Encoding): self.Transfer_Encoding = Transfer_Encoding 1075 def get_Vary(self): return self.Vary 1076 def set_Vary(self, Vary): self.Vary = Vary 1077 def get_Via(self): return self.Via 1078 def set_Via(self, Via): self.Via = Via 1079 def get_Warning(self): return self.Warning 1080 def set_Warning(self, Warning): self.Warning = Warning 1081 def get_WWW_Authenticate(self): return self.WWW_Authenticate 1082 def set_WWW_Authenticate(self, WWW_Authenticate): self.WWW_Authenticate = WWW_Authenticate 1083 def get_X_Frame_Options(self): return self.X_Frame_Options 1084 def set_X_Frame_Options(self, X_Frame_Options): self.X_Frame_Options = X_Frame_Options 1085 def get_X_XSS_Protection(self): return self.X_XSS_Protection 1086 def set_X_XSS_Protection(self, X_XSS_Protection): self.X_XSS_Protection = X_XSS_Protection 1087 def get_X_Content_Type_Options(self): return self.X_Content_Type_Options 1088 def set_X_Content_Type_Options(self, X_Content_Type_Options): self.X_Content_Type_Options = X_Content_Type_Options 1089 def get_X_Powered_By(self): return self.X_Powered_By 1090 def set_X_Powered_By(self, X_Powered_By): self.X_Powered_By = X_Powered_By 1091 def get_X_UA_Compatible(self): return self.X_UA_Compatible 1092 def set_X_UA_Compatible(self, X_UA_Compatible): self.X_UA_Compatible = X_UA_Compatible 1093 def hasContent_(self): 1094 if ( 1095 self.Access_Control_Allow_Origin is not None or 1096 self.Accept_Ranges is not None or 1097 self.Age is not None or 1098 self.Cache_Control is not None or 1099 self.Connection is not None or 1100 self.Content_Encoding is not None or 1101 self.Content_Language is not None or 1102 self.Content_Length is not None or 1103 self.Content_Location is not None or 1104 self.Content_MD5 is not None or 1105 self.Content_Disposition is not None or 1106 self.Content_Range is not None or 1107 self.Content_Type is not None or 1108 self.Date is not None or 1109 self.ETag is not None or 1110 self.Expires is not None or 1111 self.Last_Modified is not None or 1112 self.Link is not None or 1113 self.Location is not None or 1114 self.P3P is not None or 1115 self.Pragma is not None or 1116 self.Proxy_Authenticate is not None or 1117 self.Refresh is not None or 1118 self.Retry_After is not None or 1119 self.Server is not None or 1120 self.Set_Cookie is not None or 1121 self.Strict_Transport_Security is not None or 1122 self.Trailer is not None or 1123 self.Transfer_Encoding is not None or 1124 self.Vary is not None or 1125 self.Via is not None or 1126 self.Warning is not None or 1127 self.WWW_Authenticate is not None or 1128 self.X_Frame_Options is not None or 1129 self.X_XSS_Protection is not None or 1130 self.X_Content_Type_Options is not None or 1131 self.X_Powered_By is not None or 1132 self.X_UA_Compatible is not None 1133 ): 1134 return True 1135 else: 1136 return False 1137 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderFieldsType', namespacedef_='', pretty_print=True): 1138 if pretty_print: 1139 eol_ = '\n' 1140 else: 1141 eol_ = '' 1142 showIndent(lwrite, level, pretty_print) 1143 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1144 already_processed = set() 1145 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPResponseHeaderFieldsType') 1146 if self.hasContent_(): 1147 lwrite('>%s' % (eol_, )) 1148 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1149 showIndent(lwrite, level, pretty_print) 1150 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1151 else: 1152 lwrite('/>%s' % (eol_, )) 1153 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderFieldsType'): 1154 pass 1155 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPResponseHeaderFieldsType', fromsubclass_=False, pretty_print=True): 1156 if pretty_print: 1157 eol_ = '\n' 1158 else: 1159 eol_ = '' 1160 if self.Access_Control_Allow_Origin is not None: 1161 self.Access_Control_Allow_Origin.export(lwrite, level, 'HTTPSessionObj:', name_='Access_Control_Allow_Origin', pretty_print=pretty_print) 1162 if self.Accept_Ranges is not None: 1163 self.Accept_Ranges.export(lwrite, level, 'HTTPSessionObj:', name_='Accept_Ranges', pretty_print=pretty_print) 1164 if self.Age is not None: 1165 self.Age.export(lwrite, level, 'HTTPSessionObj:', name_='Age', pretty_print=pretty_print) 1166 if self.Cache_Control is not None: 1167 self.Cache_Control.export(lwrite, level, 'HTTPSessionObj:', name_='Cache_Control', pretty_print=pretty_print) 1168 if self.Connection is not None: 1169 self.Connection.export(lwrite, level, 'HTTPSessionObj:', name_='Connection', pretty_print=pretty_print) 1170 if self.Content_Encoding is not None: 1171 self.Content_Encoding.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Encoding', pretty_print=pretty_print) 1172 if self.Content_Language is not None: 1173 self.Content_Language.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Language', pretty_print=pretty_print) 1174 if self.Content_Length is not None: 1175 self.Content_Length.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Length', pretty_print=pretty_print) 1176 if self.Content_Location is not None: 1177 self.Content_Location.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Location', pretty_print=pretty_print) 1178 if self.Content_MD5 is not None: 1179 self.Content_MD5.export(lwrite, level, 'HTTPSessionObj:', name_='Content_MD5', pretty_print=pretty_print) 1180 if self.Content_Disposition is not None: 1181 self.Content_Disposition.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Disposition', pretty_print=pretty_print) 1182 if self.Content_Range is not None: 1183 self.Content_Range.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Range', pretty_print=pretty_print) 1184 if self.Content_Type is not None: 1185 self.Content_Type.export(lwrite, level, 'HTTPSessionObj:', name_='Content_Type', pretty_print=pretty_print) 1186 if self.Date is not None: 1187 self.Date.export(lwrite, level, 'HTTPSessionObj:', name_='Date', pretty_print=pretty_print) 1188 if self.ETag is not None: 1189 self.ETag.export(lwrite, level, 'HTTPSessionObj:', name_='ETag', pretty_print=pretty_print) 1190 if self.Expires is not None: 1191 self.Expires.export(lwrite, level, 'HTTPSessionObj:', name_='Expires', pretty_print=pretty_print) 1192 if self.Last_Modified is not None: 1193 self.Last_Modified.export(lwrite, level, 'HTTPSessionObj:', name_='Last_Modified', pretty_print=pretty_print) 1194 if self.Link is not None: 1195 self.Link.export(lwrite, level, 'HTTPSessionObj:', name_='Link', pretty_print=pretty_print) 1196 if self.Location is not None: 1197 self.Location.export(lwrite, level, 'HTTPSessionObj:', name_='Location', pretty_print=pretty_print) 1198 if self.P3P is not None: 1199 self.P3P.export(lwrite, level, 'HTTPSessionObj:', name_='P3P', pretty_print=pretty_print) 1200 if self.Pragma is not None: 1201 self.Pragma.export(lwrite, level, 'HTTPSessionObj:', name_='Pragma', pretty_print=pretty_print) 1202 if self.Proxy_Authenticate is not None: 1203 self.Proxy_Authenticate.export(lwrite, level, 'HTTPSessionObj:', name_='Proxy_Authenticate', pretty_print=pretty_print) 1204 if self.Refresh is not None: 1205 self.Refresh.export(lwrite, level, 'HTTPSessionObj:', name_='Refresh', pretty_print=pretty_print) 1206 if self.Retry_After is not None: 1207 self.Retry_After.export(lwrite, level, 'HTTPSessionObj:', name_='Retry_After', pretty_print=pretty_print) 1208 if self.Server is not None: 1209 self.Server.export(lwrite, level, 'HTTPSessionObj:', name_='Server', pretty_print=pretty_print) 1210 if self.Set_Cookie is not None: 1211 self.Set_Cookie.export(lwrite, level, 'HTTPSessionObj:', name_='Set_Cookie', pretty_print=pretty_print) 1212 if self.Strict_Transport_Security is not None: 1213 self.Strict_Transport_Security.export(lwrite, level, 'HTTPSessionObj:', name_='Strict_Transport_Security', pretty_print=pretty_print) 1214 if self.Trailer is not None: 1215 self.Trailer.export(lwrite, level, 'HTTPSessionObj:', name_='Trailer', pretty_print=pretty_print) 1216 if self.Transfer_Encoding is not None: 1217 self.Transfer_Encoding.export(lwrite, level, 'HTTPSessionObj:', name_='Transfer_Encoding', pretty_print=pretty_print) 1218 if self.Vary is not None: 1219 self.Vary.export(lwrite, level, 'HTTPSessionObj:', name_='Vary', pretty_print=pretty_print) 1220 if self.Via is not None: 1221 self.Via.export(lwrite, level, 'HTTPSessionObj:', name_='Via', pretty_print=pretty_print) 1222 if self.Warning is not None: 1223 self.Warning.export(lwrite, level, 'HTTPSessionObj:', name_='Warning', pretty_print=pretty_print) 1224 if self.WWW_Authenticate is not None: 1225 self.WWW_Authenticate.export(lwrite, level, 'HTTPSessionObj:', name_='WWW_Authenticate', pretty_print=pretty_print) 1226 if self.X_Frame_Options is not None: 1227 self.X_Frame_Options.export(lwrite, level, 'HTTPSessionObj:', name_='X_Frame_Options', pretty_print=pretty_print) 1228 if self.X_XSS_Protection is not None: 1229 self.X_XSS_Protection.export(lwrite, level, 'HTTPSessionObj:', name_='X_XSS_Protection', pretty_print=pretty_print) 1230 if self.X_Content_Type_Options is not None: 1231 self.X_Content_Type_Options.export(lwrite, level, 'HTTPSessionObj:', name_='X_Content_Type_Options', pretty_print=pretty_print) 1232 if self.X_Powered_By is not None: 1233 self.X_Powered_By.export(lwrite, level, 'HTTPSessionObj:', name_='X_Powered_By', pretty_print=pretty_print) 1234 if self.X_UA_Compatible is not None: 1235 self.X_UA_Compatible.export(lwrite, level, 'HTTPSessionObj:', name_='X_UA_Compatible', pretty_print=pretty_print) 1236 def build(self, node): 1237 self.__sourcenode__ = node 1238 already_processed = set() 1239 self.buildAttributes(node, node.attrib, already_processed) 1240 for child in node: 1241 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1242 self.buildChildren(child, node, nodeName_) 1243 def buildAttributes(self, node, attrs, already_processed): 1244 pass 1245 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1246 if nodeName_ == 'Access_Control_Allow_Origin': 1247 obj_ = cybox_common.StringObjectPropertyType.factory() 1248 obj_.build(child_) 1249 self.set_Access_Control_Allow_Origin(obj_) 1250 elif nodeName_ == 'Accept_Ranges': 1251 obj_ = cybox_common.StringObjectPropertyType.factory() 1252 obj_.build(child_) 1253 self.set_Accept_Ranges(obj_) 1254 elif nodeName_ == 'Age': 1255 obj_ = cybox_common.IntegerObjectPropertyType.factory() 1256 obj_.build(child_) 1257 self.set_Age(obj_) 1258 elif nodeName_ == 'Cache_Control': 1259 obj_ = cybox_common.StringObjectPropertyType.factory() 1260 obj_.build(child_) 1261 self.set_Cache_Control(obj_) 1262 elif nodeName_ == 'Connection': 1263 obj_ = cybox_common.StringObjectPropertyType.factory() 1264 obj_.build(child_) 1265 self.set_Connection(obj_) 1266 elif nodeName_ == 'Content_Encoding': 1267 obj_ = cybox_common.StringObjectPropertyType.factory() 1268 obj_.build(child_) 1269 self.set_Content_Encoding(obj_) 1270 elif nodeName_ == 'Content_Language': 1271 obj_ = cybox_common.StringObjectPropertyType.factory() 1272 obj_.build(child_) 1273 self.set_Content_Language(obj_) 1274 elif nodeName_ == 'Content_Length': 1275 obj_ = cybox_common.IntegerObjectPropertyType.factory() 1276 obj_.build(child_) 1277 self.set_Content_Length(obj_) 1278 elif nodeName_ == 'Content_Location': 1279 obj_ = cybox_common.StringObjectPropertyType.factory() 1280 obj_.build(child_) 1281 self.set_Content_Location(obj_) 1282 elif nodeName_ == 'Content_MD5': 1283 obj_ = cybox_common.StringObjectPropertyType.factory() 1284 obj_.build(child_) 1285 self.set_Content_MD5(obj_) 1286 elif nodeName_ == 'Content_Disposition': 1287 obj_ = cybox_common.StringObjectPropertyType.factory() 1288 obj_.build(child_) 1289 self.set_Content_Disposition(obj_) 1290 elif nodeName_ == 'Content_Range': 1291 obj_ = cybox_common.StringObjectPropertyType.factory() 1292 obj_.build(child_) 1293 self.set_Content_Range(obj_) 1294 elif nodeName_ == 'Content_Type': 1295 obj_ = cybox_common.StringObjectPropertyType.factory() 1296 obj_.build(child_) 1297 self.set_Content_Type(obj_) 1298 elif nodeName_ == 'Date': 1299 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 1300 obj_.build(child_) 1301 self.set_Date(obj_) 1302 elif nodeName_ == 'ETag': 1303 obj_ = cybox_common.StringObjectPropertyType.factory() 1304 obj_.build(child_) 1305 self.set_ETag(obj_) 1306 elif nodeName_ == 'Expires': 1307 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 1308 obj_.build(child_) 1309 self.set_Expires(obj_) 1310 elif nodeName_ == 'Last_Modified': 1311 obj_ = cybox_common.DateTimeObjectPropertyType.factory() 1312 obj_.build(child_) 1313 self.set_Last_Modified(obj_) 1314 elif nodeName_ == 'Link': 1315 obj_ = cybox_common.StringObjectPropertyType.factory() 1316 obj_.build(child_) 1317 self.set_Link(obj_) 1318 elif nodeName_ == 'Location': 1319 obj_ = uri_object.URIObjectType.factory() 1320 obj_.build(child_) 1321 self.set_Location(obj_) 1322 elif nodeName_ == 'P3P': 1323 obj_ = cybox_common.StringObjectPropertyType.factory() 1324 obj_.build(child_) 1325 self.set_P3P(obj_) 1326 elif nodeName_ == 'Pragma': 1327 obj_ = cybox_common.StringObjectPropertyType.factory() 1328 obj_.build(child_) 1329 self.set_Pragma(obj_) 1330 elif nodeName_ == 'Proxy_Authenticate': 1331 obj_ = cybox_common.StringObjectPropertyType.factory() 1332 obj_.build(child_) 1333 self.set_Proxy_Authenticate(obj_) 1334 elif nodeName_ == 'Refresh': 1335 obj_ = cybox_common.StringObjectPropertyType.factory() 1336 obj_.build(child_) 1337 self.set_Refresh(obj_) 1338 elif nodeName_ == 'Retry_After': 1339 obj_ = cybox_common.IntegerObjectPropertyType.factory() 1340 obj_.build(child_) 1341 self.set_Retry_After(obj_) 1342 elif nodeName_ == 'Server': 1343 obj_ = cybox_common.StringObjectPropertyType.factory() 1344 obj_.build(child_) 1345 self.set_Server(obj_) 1346 elif nodeName_ == 'Set_Cookie': 1347 obj_ = cybox_common.StringObjectPropertyType.factory() 1348 obj_.build(child_) 1349 self.set_Set_Cookie(obj_) 1350 elif nodeName_ == 'Strict_Transport_Security': 1351 obj_ = cybox_common.StringObjectPropertyType.factory() 1352 obj_.build(child_) 1353 self.set_Strict_Transport_Security(obj_) 1354 elif nodeName_ == 'Trailer': 1355 obj_ = cybox_common.StringObjectPropertyType.factory() 1356 obj_.build(child_) 1357 self.set_Trailer(obj_) 1358 elif nodeName_ == 'Transfer_Encoding': 1359 obj_ = cybox_common.StringObjectPropertyType.factory() 1360 obj_.build(child_) 1361 self.set_Transfer_Encoding(obj_) 1362 elif nodeName_ == 'Vary': 1363 obj_ = cybox_common.StringObjectPropertyType.factory() 1364 obj_.build(child_) 1365 self.set_Vary(obj_) 1366 elif nodeName_ == 'Via': 1367 obj_ = cybox_common.StringObjectPropertyType.factory() 1368 obj_.build(child_) 1369 self.set_Via(obj_) 1370 elif nodeName_ == 'Warning': 1371 obj_ = cybox_common.StringObjectPropertyType.factory() 1372 obj_.build(child_) 1373 self.set_Warning(obj_) 1374 elif nodeName_ == 'WWW_Authenticate': 1375 obj_ = cybox_common.StringObjectPropertyType.factory() 1376 obj_.build(child_) 1377 self.set_WWW_Authenticate(obj_) 1378 elif nodeName_ == 'X_Frame_Options': 1379 obj_ = cybox_common.StringObjectPropertyType.factory() 1380 obj_.build(child_) 1381 self.set_X_Frame_Options(obj_) 1382 elif nodeName_ == 'X_XSS_Protection': 1383 obj_ = cybox_common.StringObjectPropertyType.factory() 1384 obj_.build(child_) 1385 self.set_X_XSS_Protection(obj_) 1386 elif nodeName_ == 'X_Content_Type_Options': 1387 obj_ = cybox_common.StringObjectPropertyType.factory() 1388 obj_.build(child_) 1389 self.set_X_Content_Type_Options(obj_) 1390 elif nodeName_ == 'X_Powered_By': 1391 obj_ = cybox_common.StringObjectPropertyType.factory() 1392 obj_.build(child_) 1393 self.set_X_Powered_By(obj_) 1394 elif nodeName_ == 'X_UA_Compatible': 1395 obj_ = cybox_common.StringObjectPropertyType.factory() 1396 obj_.build(child_) 1397 self.set_X_UA_Compatible(obj_) 1398# end class HTTPResponseHeaderFieldsType 1399 1400class HTTPMessageType(GeneratedsSuper): 1401 """The HTTPMessageType captures a single HTTP message body and its 1402 length.""" 1403 1404 subclass = None 1405 superclass = None 1406 def __init__(self, Length=None, Message_Body=None): 1407 self.Length = Length 1408 self.Message_Body = Message_Body 1409 def factory(*args_, **kwargs_): 1410 if HTTPMessageType.subclass: 1411 return HTTPMessageType.subclass(*args_, **kwargs_) 1412 else: 1413 return HTTPMessageType(*args_, **kwargs_) 1414 factory = staticmethod(factory) 1415 def get_Length(self): return self.Length 1416 def set_Length(self, Length): self.Length = Length 1417 def validate_PositiveIntegerObjectPropertyType(self, value): 1418 # Validate type cybox_common.PositiveIntegerObjectPropertyType, a restriction on None. 1419 pass 1420 def get_Message_Body(self): return self.Message_Body 1421 def set_Message_Body(self, Message_Body): self.Message_Body = Message_Body 1422 def validate_StringObjectPropertyType(self, value): 1423 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 1424 pass 1425 def hasContent_(self): 1426 if ( 1427 self.Length is not None or 1428 self.Message_Body is not None 1429 ): 1430 return True 1431 else: 1432 return False 1433 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPMessageType', namespacedef_='', pretty_print=True): 1434 if pretty_print: 1435 eol_ = '\n' 1436 else: 1437 eol_ = '' 1438 showIndent(lwrite, level, pretty_print) 1439 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1440 already_processed = set() 1441 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPMessageType') 1442 if self.hasContent_(): 1443 lwrite('>%s' % (eol_, )) 1444 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1445 showIndent(lwrite, level, pretty_print) 1446 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1447 else: 1448 lwrite('/>%s' % (eol_, )) 1449 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPMessageType'): 1450 pass 1451 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPMessageType', fromsubclass_=False, pretty_print=True): 1452 if pretty_print: 1453 eol_ = '\n' 1454 else: 1455 eol_ = '' 1456 if self.Length is not None: 1457 self.Length.export(lwrite, level, 'HTTPSessionObj:', name_='Length', pretty_print=pretty_print) 1458 if self.Message_Body is not None: 1459 self.Message_Body.export(lwrite, level, 'HTTPSessionObj:', name_='Message_Body', pretty_print=pretty_print) 1460 def build(self, node): 1461 self.__sourcenode__ = node 1462 already_processed = set() 1463 self.buildAttributes(node, node.attrib, already_processed) 1464 for child in node: 1465 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1466 self.buildChildren(child, node, nodeName_) 1467 def buildAttributes(self, node, attrs, already_processed): 1468 pass 1469 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1470 if nodeName_ == 'Length': 1471 obj_ = cybox_common.PositiveIntegerObjectPropertyType.factory() 1472 obj_.build(child_) 1473 self.set_Length(obj_) 1474 elif nodeName_ == 'Message_Body': 1475 obj_ = cybox_common.StringObjectPropertyType.factory() 1476 obj_.build(child_) 1477 self.set_Message_Body(obj_) 1478# end class HTTPMessageType 1479 1480class HTTPStatusLineType(GeneratedsSuper): 1481 """The HTTPStatusLineType captures a single HTTP response status line.""" 1482 1483 subclass = None 1484 superclass = None 1485 def __init__(self, Version=None, Status_Code=None, Reason_Phrase=None): 1486 self.Version = Version 1487 self.Status_Code = Status_Code 1488 self.Reason_Phrase = Reason_Phrase 1489 def factory(*args_, **kwargs_): 1490 if HTTPStatusLineType.subclass: 1491 return HTTPStatusLineType.subclass(*args_, **kwargs_) 1492 else: 1493 return HTTPStatusLineType(*args_, **kwargs_) 1494 factory = staticmethod(factory) 1495 def get_Version(self): return self.Version 1496 def set_Version(self, Version): self.Version = Version 1497 def validate_StringObjectPropertyType(self, value): 1498 # Validate type cybox_common.StringObjectPropertyType, a restriction on None. 1499 pass 1500 def get_Status_Code(self): return self.Status_Code 1501 def set_Status_Code(self, Status_Code): self.Status_Code = Status_Code 1502 def validate_PositiveIntegerObjectPropertyType(self, value): 1503 # Validate type cybox_common.PositiveIntegerObjectPropertyType, a restriction on None. 1504 pass 1505 def get_Reason_Phrase(self): return self.Reason_Phrase 1506 def set_Reason_Phrase(self, Reason_Phrase): self.Reason_Phrase = Reason_Phrase 1507 def hasContent_(self): 1508 if ( 1509 self.Version is not None or 1510 self.Status_Code is not None or 1511 self.Reason_Phrase is not None 1512 ): 1513 return True 1514 else: 1515 return False 1516 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPStatusLineType', namespacedef_='', pretty_print=True): 1517 if pretty_print: 1518 eol_ = '\n' 1519 else: 1520 eol_ = '' 1521 showIndent(lwrite, level, pretty_print) 1522 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1523 already_processed = set() 1524 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPStatusLineType') 1525 if self.hasContent_(): 1526 lwrite('>%s' % (eol_, )) 1527 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1528 showIndent(lwrite, level, pretty_print) 1529 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1530 else: 1531 lwrite('/>%s' % (eol_, )) 1532 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPStatusLineType'): 1533 pass 1534 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPStatusLineType', fromsubclass_=False, pretty_print=True): 1535 if pretty_print: 1536 eol_ = '\n' 1537 else: 1538 eol_ = '' 1539 if self.Version is not None: 1540 self.Version.export(lwrite, level, 'HTTPSessionObj:', name_='Version', pretty_print=pretty_print) 1541 if self.Status_Code is not None: 1542 self.Status_Code.export(lwrite, level, 'HTTPSessionObj:', name_='Status_Code', pretty_print=pretty_print) 1543 if self.Reason_Phrase is not None: 1544 self.Reason_Phrase.export(lwrite, level, 'HTTPSessionObj:', name_='Reason_Phrase', pretty_print=pretty_print) 1545 def build(self, node): 1546 self.__sourcenode__ = node 1547 already_processed = set() 1548 self.buildAttributes(node, node.attrib, already_processed) 1549 for child in node: 1550 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1551 self.buildChildren(child, node, nodeName_) 1552 def buildAttributes(self, node, attrs, already_processed): 1553 pass 1554 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1555 if nodeName_ == 'Version': 1556 obj_ = cybox_common.StringObjectPropertyType.factory() 1557 obj_.build(child_) 1558 self.set_Version(obj_) 1559 elif nodeName_ == 'Status_Code': 1560 obj_ = cybox_common.PositiveIntegerObjectPropertyType.factory() 1561 obj_.build(child_) 1562 self.set_Status_Code(obj_) 1563 elif nodeName_ == 'Reason_Phrase': 1564 obj_ = cybox_common.StringObjectPropertyType.factory() 1565 obj_.build(child_) 1566 self.set_Reason_Phrase(obj_) 1567# end class HTTPStatusLineType 1568 1569class HostFieldType(GeneratedsSuper): 1570 """The HostFieldType captures the details of the HTTP request Host 1571 header field.""" 1572 1573 subclass = None 1574 superclass = None 1575 def __init__(self, Domain_Name=None, Port=None): 1576 self.Domain_Name = Domain_Name 1577 self.Port = Port 1578 def factory(*args_, **kwargs_): 1579 if HostFieldType.subclass: 1580 return HostFieldType.subclass(*args_, **kwargs_) 1581 else: 1582 return HostFieldType(*args_, **kwargs_) 1583 factory = staticmethod(factory) 1584 def get_Domain_Name(self): return self.Domain_Name 1585 def set_Domain_Name(self, Domain_Name): self.Domain_Name = Domain_Name 1586 def get_Port(self): return self.Port 1587 def set_Port(self, Port): self.Port = Port 1588 def hasContent_(self): 1589 if ( 1590 self.Domain_Name is not None or 1591 self.Port is not None 1592 ): 1593 return True 1594 else: 1595 return False 1596 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HostFieldType', namespacedef_='', pretty_print=True): 1597 if pretty_print: 1598 eol_ = '\n' 1599 else: 1600 eol_ = '' 1601 showIndent(lwrite, level, pretty_print) 1602 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1603 already_processed = set() 1604 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HostFieldType') 1605 if self.hasContent_(): 1606 lwrite('>%s' % (eol_, )) 1607 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1608 showIndent(lwrite, level, pretty_print) 1609 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1610 else: 1611 lwrite('/>%s' % (eol_, )) 1612 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HostFieldType'): 1613 pass 1614 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HostFieldType', fromsubclass_=False, pretty_print=True): 1615 if pretty_print: 1616 eol_ = '\n' 1617 else: 1618 eol_ = '' 1619 if self.Domain_Name is not None: 1620 self.Domain_Name.export(lwrite, level, 'HTTPSessionObj:', name_='Domain_Name', pretty_print=pretty_print) 1621 if self.Port is not None: 1622 self.Port.export(lwrite, level, 'HTTPSessionObj:', name_='Port', pretty_print=pretty_print) 1623 def build(self, node): 1624 self.__sourcenode__ = node 1625 already_processed = set() 1626 self.buildAttributes(node, node.attrib, already_processed) 1627 for child in node: 1628 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1629 self.buildChildren(child, node, nodeName_) 1630 def buildAttributes(self, node, attrs, already_processed): 1631 pass 1632 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1633 if nodeName_ == 'Domain_Name': 1634 obj_ = uri_object.URIObjectType.factory() 1635 obj_.build(child_) 1636 self.set_Domain_Name(obj_) 1637 elif nodeName_ == 'Port': 1638 obj_ = port_object.PortObjectType.factory() 1639 obj_.build(child_) 1640 self.set_Port(obj_) 1641# end class HostFieldType 1642 1643class HTTPMethodType(cybox_common.BaseObjectPropertyType): 1644 """HTTPMethodType specifies HTTP method types, via a union of the 1645 HTTPMethodEnum type and the atomic xs:string type. Its base type 1646 is the CybOX Core cybox_common.BaseObjectPropertyType, for permitting complex 1647 (i.e. regular-expression based) specifications.This attribute is 1648 optional and specifies the expected type for the value of the 1649 specified property.""" 1650 1651 subclass = None 1652 superclass = cybox_common.BaseObjectPropertyType 1653 def __init__(self, obfuscation_algorithm_ref=None, refanging_transform_type=None, has_changed=None, delimiter='##comma##', pattern_type=None, datatype='string', refanging_transform=None, is_case_sensitive=True, bit_mask=None, appears_random=None, observed_encoding=None, defanging_algorithm_ref=None, is_obfuscated=None, regex_syntax=None, apply_condition='ANY', trend=None, idref=None, is_defanged=None, id=None, condition=None, valueOf_=None): 1654 super(HTTPMethodType, self).__init__(obfuscation_algorithm_ref, refanging_transform_type, has_changed, delimiter, pattern_type, datatype, refanging_transform, is_case_sensitive, bit_mask, appears_random, observed_encoding, defanging_algorithm_ref, is_obfuscated, regex_syntax, apply_condition, trend, idref, is_defanged, id, condition, valueOf_) 1655 self.datatype = _cast(None, datatype) 1656 self.valueOf_ = valueOf_ 1657 def factory(*args_, **kwargs_): 1658 if HTTPMethodType.subclass: 1659 return HTTPMethodType.subclass(*args_, **kwargs_) 1660 else: 1661 return HTTPMethodType(*args_, **kwargs_) 1662 factory = staticmethod(factory) 1663 def get_datatype(self): return self.datatype 1664 def set_datatype(self, datatype): self.datatype = datatype 1665 def get_valueOf_(self): return self.valueOf_ 1666 def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_ 1667 def hasContent_(self): 1668 if ( 1669 self.valueOf_ or 1670 super(HTTPMethodType, self).hasContent_() 1671 ): 1672 return True 1673 else: 1674 return False 1675 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPMethodType', namespacedef_='', pretty_print=True): 1676 if pretty_print: 1677 eol_ = '\n' 1678 else: 1679 eol_ = '' 1680 showIndent(lwrite, level, pretty_print) 1681 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1682 already_processed = set() 1683 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPMethodType') 1684 if self.hasContent_(): 1685 lwrite('>') 1686 lwrite(quote_xml(self.valueOf_)) 1687 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1688 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1689 else: 1690 lwrite('/>%s' % (eol_, )) 1691 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPMethodType'): 1692 super(HTTPMethodType, self).exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPMethodType') 1693 if self.datatype is not None: 1694 1695 lwrite(' datatype=%s' % (quote_attrib(self.datatype), )) 1696 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPMethodType', fromsubclass_=False, pretty_print=True): 1697 super(HTTPMethodType, self).exportChildren(lwrite, level, 'HTTPSessionObj:', name_, True, pretty_print=pretty_print) 1698 pass 1699 def build(self, node): 1700 self.__sourcenode__ = node 1701 already_processed = set() 1702 self.buildAttributes(node, node.attrib, already_processed) 1703 self.valueOf_ = get_all_text_(node) 1704 for child in node: 1705 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1706 self.buildChildren(child, node, nodeName_) 1707 def buildAttributes(self, node, attrs, already_processed): 1708 value = find_attr_value_('datatype', node) 1709 if value is not None: 1710 1711 self.datatype = value 1712 super(HTTPMethodType, self).buildAttributes(node, attrs, already_processed) 1713 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1714 pass 1715# end class HTTPMethodType 1716 1717class HTTPSessionObjectType(cybox_common.ObjectPropertiesType): 1718 """The HTTPSessionObjectType is intended to capture the details of an 1719 HTTP session.""" 1720 1721 subclass = None 1722 superclass = cybox_common.ObjectPropertiesType 1723 def __init__(self, object_reference=None, Custom_Properties=None, xsi_type=None, HTTP_Request_Response=None): 1724 super(HTTPSessionObjectType, self).__init__(object_reference, Custom_Properties, xsi_type ) 1725 if HTTP_Request_Response is None: 1726 self.HTTP_Request_Response = [] 1727 else: 1728 self.HTTP_Request_Response = HTTP_Request_Response 1729 def factory(*args_, **kwargs_): 1730 if HTTPSessionObjectType.subclass: 1731 return HTTPSessionObjectType.subclass(*args_, **kwargs_) 1732 else: 1733 return HTTPSessionObjectType(*args_, **kwargs_) 1734 factory = staticmethod(factory) 1735 def get_HTTP_Request_Response(self): return self.HTTP_Request_Response 1736 def set_HTTP_Request_Response(self, HTTP_Request_Response): self.HTTP_Request_Response = HTTP_Request_Response 1737 def add_HTTP_Request_Response(self, value): self.HTTP_Request_Response.append(value) 1738 def insert_HTTP_Request_Response(self, index, value): self.HTTP_Request_Response[index] = value 1739 def hasContent_(self): 1740 if ( 1741 self.HTTP_Request_Response or 1742 super(HTTPSessionObjectType, self).hasContent_() 1743 ): 1744 return True 1745 else: 1746 return False 1747 def export(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPSessionObjectType', namespacedef_='', pretty_print=True): 1748 if pretty_print: 1749 eol_ = '\n' 1750 else: 1751 eol_ = '' 1752 showIndent(lwrite, level, pretty_print) 1753 lwrite('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) 1754 already_processed = set() 1755 self.exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPSessionObjectType') 1756 if self.hasContent_(): 1757 lwrite('>%s' % (eol_, )) 1758 self.exportChildren(lwrite, level + 1, namespace_, name_, pretty_print=pretty_print) 1759 showIndent(lwrite, level, pretty_print) 1760 lwrite('</%s%s>%s' % (namespace_, name_, eol_)) 1761 else: 1762 lwrite('/>%s' % (eol_, )) 1763 def exportAttributes(self, lwrite, level, already_processed, namespace_='HTTPSessionObj:', name_='HTTPSessionObjectType'): 1764 super(HTTPSessionObjectType, self).exportAttributes(lwrite, level, already_processed, namespace_, name_='HTTPSessionObjectType') 1765 def exportChildren(self, lwrite, level, namespace_='HTTPSessionObj:', name_='HTTPSessionObjectType', fromsubclass_=False, pretty_print=True): 1766 super(HTTPSessionObjectType, self).exportChildren(lwrite, level, 'HTTPSessionObj:', name_, True, pretty_print=pretty_print) 1767 if pretty_print: 1768 eol_ = '\n' 1769 else: 1770 eol_ = '' 1771 for HTTP_Request_Response_ in self.HTTP_Request_Response: 1772 HTTP_Request_Response_.export(lwrite, level, 'HTTPSessionObj:', name_='HTTP_Request_Response', pretty_print=pretty_print) 1773 def build(self, node): 1774 self.__sourcenode__ = node 1775 already_processed = set() 1776 self.buildAttributes(node, node.attrib, already_processed) 1777 for child in node: 1778 nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] 1779 self.buildChildren(child, node, nodeName_) 1780 def buildAttributes(self, node, attrs, already_processed): 1781 super(HTTPSessionObjectType, self).buildAttributes(node, attrs, already_processed) 1782 def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): 1783 if nodeName_ == 'HTTP_Request_Response': 1784 obj_ = HTTPRequestResponseType.factory() 1785 obj_.build(child_) 1786 self.HTTP_Request_Response.append(obj_) 1787 super(HTTPSessionObjectType, self).buildChildren(child_, node, nodeName_, True) 1788# end class HTTPSessionObjectType 1789 1790GDSClassesMapping = { 1791 'Build_Utility': cybox_common.BuildUtilityType, 1792 'Errors': cybox_common.ErrorsType, 1793 'Environment_Variable': cybox_common.EnvironmentVariableType, 1794 'Accept_Charset': cybox_common.StringObjectPropertyType, 1795 'Search_Distance': cybox_common.IntegerObjectPropertyType, 1796 'Error': cybox_common.ErrorType, 1797 'Certificate_Issuer': cybox_common.StringObjectPropertyType, 1798 'Max_Forwards': cybox_common.IntegerObjectPropertyType, 1799 'Proxy_Authorization': cybox_common.StringObjectPropertyType, 1800 'Metadata': cybox_common.MetadataType, 1801 'Hash': cybox_common.HashType, 1802 'Content_Range': cybox_common.StringObjectPropertyType, 1803 'User_Agent': cybox_common.StringObjectPropertyType, 1804 'Information_Source_Type': cybox_common.ControlledVocabularyStringType, 1805 'Internal_Strings': cybox_common.InternalStringsType, 1806 'Fuzzy_Hash_Structure': cybox_common.FuzzyHashStructureType, 1807 'SubDatum': cybox_common.MetadataType, 1808 'Segment_Hash': cybox_common.HashValueType, 1809 'Digital_Signature': cybox_common.DigitalSignatureInfoType, 1810 'X_Forwarded_Proto': cybox_common.StringObjectPropertyType, 1811 'X_ATT_DeviceId': cybox_common.StringObjectPropertyType, 1812 'Code_Snippets': cybox_common.CodeSnippetsType, 1813 'URI': uri_object.URIObjectType, 1814 'Value': cybox_common.AnyURIObjectPropertyType, 1815 'Length': cybox_common.IntegerObjectPropertyType, 1816 'If_Range': cybox_common.StringObjectPropertyType, 1817 'Strict_Transport_Security': cybox_common.StringObjectPropertyType, 1818 'Internationalization_Settings': cybox_common.InternationalizationSettingsType, 1819 'Encoding': cybox_common.ControlledVocabularyStringType, 1820 'Warning': cybox_common.StringObjectPropertyType, 1821 'English_Translation': cybox_common.StringObjectPropertyType, 1822 'Segments': cybox_common.HashSegmentsType, 1823 'Layer4_Protocol': port_object.Layer4ProtocolType, 1824 'Content_Length': cybox_common.IntegerObjectPropertyType, 1825 'X_UA_Compatible': cybox_common.StringObjectPropertyType, 1826 'Functions': cybox_common.FunctionsType, 1827 'From': address_object.AddressObjectType, 1828 'String_Value': cybox_common.StringObjectPropertyType, 1829 'If_Modified_Since': cybox_common.DateTimeObjectPropertyType, 1830 'Compiler_Informal_Description': cybox_common.CompilerInformalDescriptionType, 1831 'System': cybox_common.ObjectPropertiesType, 1832 'Platform': cybox_common.PlatformSpecificationType, 1833 'Version': cybox_common.StringObjectPropertyType, 1834 'Location': uri_object.URIObjectType, 1835 'Accept_Language': cybox_common.StringObjectPropertyType, 1836 'Error_Instances': cybox_common.ErrorInstancesType, 1837 'Type': cybox_common.ControlledVocabularyStringType, 1838 'Compilers': cybox_common.CompilersType, 1839 'Tool_Type': cybox_common.ControlledVocabularyStringType, 1840 'If_None_Match': cybox_common.StringObjectPropertyType, 1841 'Tool': cybox_common.ToolInformationType, 1842 'Build_Information': cybox_common.BuildInformationType, 1843 'Link': cybox_common.StringObjectPropertyType, 1844 'Search_Within': cybox_common.IntegerObjectPropertyType, 1845 'Tool_Hashes': cybox_common.HashListType, 1846 'X_Frame_Options': cybox_common.StringObjectPropertyType, 1847 'Message_Body': cybox_common.StringObjectPropertyType, 1848 'Raw_Header': cybox_common.StringObjectPropertyType, 1849 'Age': cybox_common.IntegerObjectPropertyType, 1850 'Retry_After': cybox_common.IntegerObjectPropertyType, 1851 'Server': cybox_common.StringObjectPropertyType, 1852 'Range': cybox_common.StringObjectPropertyType, 1853 'Certificate_Subject': cybox_common.StringObjectPropertyType, 1854 'Data_Segment': cybox_common.StringObjectPropertyType, 1855 'Property': cybox_common.PropertyType, 1856 'Strings': cybox_common.ExtractedStringsType, 1857 'Via': cybox_common.StringObjectPropertyType, 1858 'Tool_Specific_Data': cybox_common.ToolSpecificDataType, 1859 'Contributors': cybox_common.PersonnelType, 1860 'Transfer_Encoding': cybox_common.StringObjectPropertyType, 1861 'Reference_Description': cybox_common.StructuredTextType, 1862 'User_Account_Info': cybox_common.ObjectPropertiesType, 1863 'Expect': cybox_common.StringObjectPropertyType, 1864 'Execution_Environment': cybox_common.ExecutionEnvironmentType, 1865 'Configuration_Settings': cybox_common.ConfigurationSettingsType, 1866 'Compiler_Platform_Specification': cybox_common.PlatformSpecificationType, 1867 'Byte_String_Value': cybox_common.HexBinaryObjectPropertyType, 1868 'Image_Offset': cybox_common.IntegerObjectPropertyType, 1869 'Reason_Phrase': cybox_common.StringObjectPropertyType, 1870 'Instance': cybox_common.ObjectPropertiesType, 1871 'Import': cybox_common.StringObjectPropertyType, 1872 'Authorization': cybox_common.StringObjectPropertyType, 1873 'Accept_Encoding': cybox_common.StringObjectPropertyType, 1874 'Identifier': cybox_common.PlatformIdentifierType, 1875 'X_Forwarded_For': cybox_common.StringObjectPropertyType, 1876 'X_XSS_Protection': cybox_common.StringObjectPropertyType, 1877 'X_Content_Type_Options': cybox_common.StringObjectPropertyType, 1878 'Domain_Name': uri_object.URIObjectType, 1879 'Dependencies': cybox_common.DependenciesType, 1880 'Cookie': cybox_common.StringObjectPropertyType, 1881 'Offset': cybox_common.IntegerObjectPropertyType, 1882 'Date': cybox_common.DateRangeType, 1883 'Referer': uri_object.URIObjectType, 1884 'Hashes': cybox_common.HashListType, 1885 'Content_Disposition': cybox_common.StringObjectPropertyType, 1886 'Cache_Control': cybox_common.StringObjectPropertyType, 1887 'Language': cybox_common.StringObjectPropertyType, 1888 'Usage_Context_Assumption': cybox_common.StructuredTextType, 1889 'Block_Hash': cybox_common.FuzzyHashBlockType, 1890 'DNT': cybox_common.StringObjectPropertyType, 1891 'Connection': cybox_common.StringObjectPropertyType, 1892 'X_Requested_With': cybox_common.StringObjectPropertyType, 1893 'Time': cybox_common.TimeType, 1894 'P3P': cybox_common.StringObjectPropertyType, 1895 'If_Unmodified_Since': cybox_common.DateTimeObjectPropertyType, 1896 'Trigger_Point': cybox_common.HexBinaryObjectPropertyType, 1897 'Trailer': cybox_common.StringObjectPropertyType, 1898 'ETag': cybox_common.StringObjectPropertyType, 1899 'Byte_Run': cybox_common.ByteRunType, 1900 'File_System_Offset': cybox_common.IntegerObjectPropertyType, 1901 'Tool_Configuration': cybox_common.ToolConfigurationType, 1902 'Imports': cybox_common.ImportsType, 1903 'X_Powered_By': cybox_common.StringObjectPropertyType, 1904 'Vary': uri_object.URIObjectType, 1905 'Library': cybox_common.LibraryType, 1906 'References': cybox_common.ToolReferencesType, 1907 'Access_Control_Allow_Origin': cybox_common.StringObjectPropertyType, 1908 'Usage_Context_Assumptions': cybox_common.UsageContextAssumptionsType, 1909 'Block_Hash_Value': cybox_common.HashValueType, 1910 'Custom_Properties': cybox_common.CustomPropertiesType, 1911 'Status_Code': cybox_common.PositiveIntegerObjectPropertyType, 1912 'Configuration_Setting': cybox_common.ConfigurationSettingType, 1913 'Libraries': cybox_common.LibrariesType, 1914 'Content_Language': cybox_common.StringObjectPropertyType, 1915 'Content_Location': cybox_common.StringObjectPropertyType, 1916 'Content_MD5': cybox_common.StringObjectPropertyType, 1917 'Segment_Count': cybox_common.IntegerObjectPropertyType, 1918 'Function': cybox_common.StringObjectPropertyType, 1919 'Description': cybox_common.StructuredTextType, 1920 'Code_Snippet': cybox_common.ObjectPropertiesType, 1921 'Build_Configuration': cybox_common.BuildConfigurationType, 1922 'X_Wap_Profile': uri_object.URIObjectType, 1923 'Expires': cybox_common.DateTimeObjectPropertyType, 1924 'VLAN_Name': cybox_common.StringObjectPropertyType, 1925 'Content_Encoding': cybox_common.StringObjectPropertyType, 1926 'Pragma': cybox_common.StringObjectPropertyType, 1927 'Address': address_object.AddressObjectType, 1928 'TE': cybox_common.StringObjectPropertyType, 1929 'Segment': cybox_common.HashSegmentType, 1930 'Port_Value': cybox_common.PositiveIntegerObjectPropertyType, 1931 'Compiler': cybox_common.CompilerType, 1932 'Name': cybox_common.StringObjectPropertyType, 1933 'Set_Cookie': cybox_common.StringObjectPropertyType, 1934 'Address_Value': cybox_common.StringObjectPropertyType, 1935 'Dependency': cybox_common.DependencyType, 1936 'Accept_Datetime': cybox_common.StringObjectPropertyType, 1937 'Last_Modified': cybox_common.DateTimeObjectPropertyType, 1938 'Refresh': cybox_common.IntegerObjectPropertyType, 1939 'Content_Type': cybox_common.StringObjectPropertyType, 1940 'Signature_Description': cybox_common.StringObjectPropertyType, 1941 'Block_Size': cybox_common.IntegerObjectPropertyType, 1942 'Simple_Hash_Value': cybox_common.SimpleHashValueType, 1943 'Proxy_Authenticate': cybox_common.StringObjectPropertyType, 1944 'String': cybox_common.ExtractedStringType, 1945 'Tools': cybox_common.ToolsInformationType, 1946 'Build_Utility_Platform_Specification': cybox_common.PlatformSpecificationType, 1947 'Fuzzy_Hash_Value': cybox_common.FuzzyHashValueType, 1948 'Accept': cybox_common.StringObjectPropertyType, 1949 'Data_Size': cybox_common.DataSizeType, 1950 'Dependency_Description': cybox_common.StructuredTextType, 1951 'WWW_Authenticate': cybox_common.StringObjectPropertyType, 1952 'Contributor': cybox_common.ContributorType, 1953 'If_Match': cybox_common.StringObjectPropertyType, 1954 'Accept_Ranges': cybox_common.StringObjectPropertyType, 1955 'Port': port_object.PortObjectType, 1956 'VLAN_Num': cybox_common.IntegerObjectPropertyType, 1957} 1958 1959USAGE_TEXT = """ 1960Usage: python <Parser>.py [ -s ] <in_xml_file> 1961""" 1962 1963def usage(): 1964 print(USAGE_TEXT) 1965 sys.exit(1) 1966 1967def get_root_tag(node): 1968 tag = Tag_pattern_.match(node.tag).groups()[-1] 1969 rootClass = GDSClassesMapping.get(tag) 1970 if rootClass is None: 1971 rootClass = globals().get(tag) 1972 return tag, rootClass 1973 1974def parse(inFileName): 1975 doc = parsexml_(inFileName) 1976 rootNode = doc.getroot() 1977 rootTag, rootClass = get_root_tag(rootNode) 1978 if rootClass is None: 1979 rootTag = 'HTTP_Session' 1980 rootClass = HTTPSessionObjectType 1981 rootObj = rootClass.factory() 1982 rootObj.build(rootNode) 1983 # Enable Python to collect the space used by the DOM. 1984 doc = None 1985# sys.stdout.write('<?xml version="1.0" ?>\n') 1986# rootObj.export(sys.stdout.write, 0, name_=rootTag, 1987# namespacedef_='', 1988# pretty_print=True) 1989 return rootObj 1990 1991def parseEtree(inFileName): 1992 doc = parsexml_(inFileName) 1993 rootNode = doc.getroot() 1994 rootTag, rootClass = get_root_tag(rootNode) 1995 if rootClass is None: 1996 rootTag = 'HTTP_Session' 1997 rootClass = HTTPSessionObjectType 1998 rootObj = rootClass.factory() 1999 rootObj.build(rootNode) 2000 # Enable Python to collect the space used by the DOM. 2001 doc = None 2002 rootElement = rootObj.to_etree(None, name_=rootTag) 2003 content = etree_.tostring(rootElement, pretty_print=True, 2004 xml_declaration=True, encoding="utf-8") 2005 sys.stdout.write(content) 2006 sys.stdout.write('\n') 2007 return rootObj, rootElement 2008 2009def parseString(inString): 2010 from mixbox.vendor.six import StringIO 2011 doc = parsexml_(StringIO(inString)) 2012 rootNode = doc.getroot() 2013 rootTag, rootClass = get_root_tag(rootNode) 2014 if rootClass is None: 2015 rootTag = 'HTTP_Session' 2016 rootClass = HTTPSessionObjectType 2017 rootObj = rootClass.factory() 2018 rootObj.build(rootNode) 2019 # Enable Python to collect the space used by the DOM. 2020 doc = None 2021# sys.stdout.write('<?xml version="1.0" ?>\n') 2022# rootObj.export(sys.stdout.write, 0, name_="HTTP_Session", 2023# namespacedef_='') 2024 return rootObj 2025 2026def main(): 2027 args = sys.argv[1:] 2028 if len(args) == 1: 2029 parse(args[0]) 2030 else: 2031 usage() 2032 2033if __name__ == '__main__': 2034 #import pdb; pdb.set_trace() 2035 main() 2036 2037__all__ = [ 2038 "HTTPSessionObjectType", 2039 "HTTPRequestResponseType", 2040 "HTTPClientRequestType", 2041 "HTTPServerResponseType", 2042 "HTTPRequestLineType", 2043 "HTTPRequestHeaderType", 2044 "HTTPRequestHeaderFieldsType", 2045 "HTTPResponseHeaderType", 2046 "HTTPResponseHeaderFieldsType", 2047 "HTTPMessageType", 2048 "HTTPStatusLineType", 2049 "HostFieldType", 2050 "HTTPMethodType" 2051 ] 2052