home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sspi
- import win32security
- import sspicon
- import win32api
-
- def lookup_ret_code(err):
- for k, v in sspicon.__dict__.items():
- if k[0:6] in ('SEC_I_', 'SEC_E_') and v == err:
- return k
-
-
- pkg_name = 'NTLM'
- sspiclient = sspi.ClientAuth(pkg_name)
- sspiserver = sspi.ServerAuth(pkg_name)
- sec_buffer = None
- while None:
- (err, sec_buffer) = sspiclient.authorize(sec_buffer)
- (err, sec_buffer) = sspiserver.authorize(sec_buffer)
- if err == 0:
- break
- continue
- continue
- sspiserver.ctxt.ImpersonateSecurityContext()
- print 'Impersonated user: ', win32api.GetUserNameEx(win32api.NameSamCompatible)
- sspiserver.ctxt.RevertSecurityContext()
- print 'Reverted to self: ', win32api.GetUserName()
- pkg_size_info = sspiclient.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_SIZES)
- msg = 'some data to be encrypted ......'
- sigsize = pkg_size_info['MaxSignature']
- sigbuf = win32security.PySecBufferDescType()
- sigbuf.append(win32security.PySecBufferType(len(msg), sspicon.SECBUFFER_DATA))
- sigbuf.append(win32security.PySecBufferType(sigsize, sspicon.SECBUFFER_TOKEN))
- sigbuf[0].Buffer = msg
- sspiclient.ctxt.MakeSignature(0, sigbuf, 1)
- sspiserver.ctxt.VerifySignature(sigbuf, 1)
- trailersize = pkg_size_info['SecurityTrailer']
- encbuf = win32security.PySecBufferDescType()
- encbuf.append(win32security.PySecBufferType(len(msg), sspicon.SECBUFFER_DATA))
- encbuf.append(win32security.PySecBufferType(trailersize, sspicon.SECBUFFER_TOKEN))
- encbuf[0].Buffer = msg
- sspiclient.ctxt.EncryptMessage(0, encbuf, 1)
- print 'Encrypted data:', repr(encbuf[0].Buffer)
- sspiserver.ctxt.DecryptMessage(encbuf, 1)
- print 'Unencrypted data:', encbuf[0].Buffer
- return None
-