(self, _pkt="", post_transform=None, _internal=0,
_underlayer=None, tls_session=None, **fields)
| 1026 | fields_desc = [] |
| 1027 | |
| 1028 | def __init__(self, _pkt="", post_transform=None, _internal=0, |
| 1029 | _underlayer=None, tls_session=None, **fields): |
| 1030 | try: |
| 1031 | setme = self.tls_session is None |
| 1032 | except Exception: |
| 1033 | setme = True |
| 1034 | |
| 1035 | newses = False |
| 1036 | if setme: |
| 1037 | if tls_session is None: |
| 1038 | newses = True |
| 1039 | self.tls_session = tlsSession() |
| 1040 | else: |
| 1041 | self.tls_session = tls_session |
| 1042 | |
| 1043 | self.rcs_snap_init = self.tls_session.rcs.snapshot() |
| 1044 | self.wcs_snap_init = self.tls_session.wcs.snapshot() |
| 1045 | |
| 1046 | if isinstance(_underlayer, TCP): |
| 1047 | # Get information from _underlayer |
| 1048 | self.tls_session.set_underlayer(_underlayer) |
| 1049 | |
| 1050 | # Load a NSS Key Log file |
| 1051 | if conf.tls_nss_filename is not None: |
| 1052 | if conf.tls_nss_keys is None: |
| 1053 | conf.tls_nss_keys = load_nss_keys(conf.tls_nss_filename) |
| 1054 | |
| 1055 | if conf.tls_session_enable: |
| 1056 | if newses: |
| 1057 | s = conf.tls_sessions.find(self.tls_session) |
| 1058 | if s: |
| 1059 | if conf.tls_nss_keys is not None: |
| 1060 | s.nss_keys = conf.tls_nss_keys |
| 1061 | if s.dport == self.tls_session.dport: |
| 1062 | self.tls_session = s |
| 1063 | else: |
| 1064 | self.tls_session = s.mirror() |
| 1065 | else: |
| 1066 | if conf.tls_nss_keys is not None: |
| 1067 | self.tls_session.nss_keys = conf.tls_nss_keys |
| 1068 | conf.tls_sessions.add(self.tls_session) |
| 1069 | if self.tls_session.connection_end == "server": |
| 1070 | srk = conf.tls_sessions.server_rsa_key |
| 1071 | if not self.tls_session.server_rsa_key and \ |
| 1072 | srk: |
| 1073 | self.tls_session.server_rsa_key = srk |
| 1074 | |
| 1075 | Packet.__init__(self, _pkt=_pkt, post_transform=post_transform, |
| 1076 | _internal=_internal, _underlayer=_underlayer, |
| 1077 | **fields) |
| 1078 | |
| 1079 | def __getattr__(self, attr): |
| 1080 | """ |
nothing calls this directly
no test coverage detected