(self, smb_message)
| 1782 | # |
| 1783 | |
| 1784 | def _sendSMBMessage_SMB1(self, smb_message): |
| 1785 | if smb_message.mid == 0: |
| 1786 | smb_message.mid = self._getNextMID_SMB1() |
| 1787 | if not smb_message.uid: |
| 1788 | smb_message.uid = self.uid |
| 1789 | if self.is_signing_active: |
| 1790 | smb_message.flags2 |= SMB_FLAGS2_SMB_SECURITY_SIGNATURE |
| 1791 | |
| 1792 | # Increment the next_signing_id as described in [MS-CIFS] 3.2.4.1.3 |
| 1793 | smb_message.security = self.next_signing_id |
| 1794 | self.next_signing_id += 2 # All our defined messages currently have responses, so always increment by 2 |
| 1795 | raw_data = smb_message.encode() |
| 1796 | |
| 1797 | md = ntlm.MD5(self.signing_session_key) |
| 1798 | if self.signing_challenge_response: |
| 1799 | md.update(self.signing_challenge_response) |
| 1800 | md.update(raw_data) |
| 1801 | signature = md.digest()[:8] |
| 1802 | |
| 1803 | self.log.debug('MID is %d. Signing ID is %d. Signature is %s. Total raw message is %d bytes', smb_message.mid, smb_message.security, binascii.hexlify(signature), len(raw_data)) |
| 1804 | smb_message.raw_data = raw_data[:14] + signature + raw_data[22:] |
| 1805 | else: |
| 1806 | smb_message.raw_data = smb_message.encode() |
| 1807 | self.sendNMBMessage(smb_message.raw_data) |
| 1808 | |
| 1809 | def _getNextMID_SMB1(self): |
| 1810 | self.mid += 1 |
nothing calls this directly
no test coverage detected