home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2492 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  1.8 KB  |  49 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import sspi
  5. import win32security
  6. import sspicon
  7. import win32api
  8.  
  9. def lookup_ret_code(err):
  10.     for k, v in sspicon.__dict__.items():
  11.         if k[0:6] in ('SEC_I_', 'SEC_E_') and v == err:
  12.             return k
  13.     
  14.  
  15. pkg_name = 'NTLM'
  16. sspiclient = sspi.ClientAuth(pkg_name)
  17. sspiserver = sspi.ServerAuth(pkg_name)
  18. sec_buffer = None
  19. while None:
  20.     (err, sec_buffer) = sspiclient.authorize(sec_buffer)
  21.     (err, sec_buffer) = sspiserver.authorize(sec_buffer)
  22.     if err == 0:
  23.         break
  24.         continue
  25.     continue
  26.     sspiserver.ctxt.ImpersonateSecurityContext()
  27.     print 'Impersonated user: ', win32api.GetUserNameEx(win32api.NameSamCompatible)
  28.     sspiserver.ctxt.RevertSecurityContext()
  29.     print 'Reverted to self: ', win32api.GetUserName()
  30.     pkg_size_info = sspiclient.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_SIZES)
  31.     msg = 'some data to be encrypted ......'
  32.     sigsize = pkg_size_info['MaxSignature']
  33.     sigbuf = win32security.PySecBufferDescType()
  34.     sigbuf.append(win32security.PySecBufferType(len(msg), sspicon.SECBUFFER_DATA))
  35.     sigbuf.append(win32security.PySecBufferType(sigsize, sspicon.SECBUFFER_TOKEN))
  36.     sigbuf[0].Buffer = msg
  37.     sspiclient.ctxt.MakeSignature(0, sigbuf, 1)
  38.     sspiserver.ctxt.VerifySignature(sigbuf, 1)
  39.     trailersize = pkg_size_info['SecurityTrailer']
  40.     encbuf = win32security.PySecBufferDescType()
  41.     encbuf.append(win32security.PySecBufferType(len(msg), sspicon.SECBUFFER_DATA))
  42.     encbuf.append(win32security.PySecBufferType(trailersize, sspicon.SECBUFFER_TOKEN))
  43.     encbuf[0].Buffer = msg
  44.     sspiclient.ctxt.EncryptMessage(0, encbuf, 1)
  45.     print 'Encrypted data:', repr(encbuf[0].Buffer)
  46.     sspiserver.ctxt.DecryptMessage(encbuf, 1)
  47.     print 'Unencrypted data:', encbuf[0].Buffer
  48.     return None
  49.