Index: third_party/twisted_8_1/twisted/cred/pamauth.py |
diff --git a/third_party/twisted_8_1/twisted/cred/pamauth.py b/third_party/twisted_8_1/twisted/cred/pamauth.py |
deleted file mode 100644 |
index 1537a5fa46d0fd76bd5d3a61b93802d0f7dd5c21..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/cred/pamauth.py |
+++ /dev/null |
@@ -1,79 +0,0 @@ |
-# Copyright (c) 2001-2008 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-""" |
-Support for asynchronously authenticating using PAM. |
-""" |
- |
- |
-import PAM |
- |
-import getpass, threading, os |
- |
-from twisted.internet import threads, defer |
- |
-def pamAuthenticateThread(service, user, conv): |
- def _conv(items): |
- from twisted.internet import reactor |
- try: |
- d = conv(items) |
- except: |
- import traceback |
- traceback.print_exc() |
- return |
- ev = threading.Event() |
- def cb(r): |
- ev.r = (1, r) |
- ev.set() |
- def eb(e): |
- ev.r = (0, e) |
- ev.set() |
- reactor.callFromThread(d.addCallbacks, cb, eb) |
- ev.wait() |
- done = ev.r |
- if done[0]: |
- return done[1] |
- else: |
- raise done[1].type, done[1].value |
- |
- return callIntoPAM(service, user, _conv) |
- |
-def callIntoPAM(service, user, conv): |
- """A testing hook. |
- """ |
- pam = PAM.pam() |
- pam.start(service) |
- pam.set_item(PAM.PAM_USER, user) |
- pam.set_item(PAM.PAM_CONV, conv) |
- gid = os.getegid() |
- uid = os.geteuid() |
- os.setegid(0) |
- os.seteuid(0) |
- try: |
- pam.authenticate() # these will raise |
- pam.acct_mgmt() |
- return 1 |
- finally: |
- os.setegid(gid) |
- os.seteuid(uid) |
- |
-def defConv(items): |
- resp = [] |
- for i in range(len(items)): |
- message, kind = items[i] |
- if kind == 1: # password |
- p = getpass.getpass(message) |
- resp.append((p, 0)) |
- elif kind == 2: # text |
- p = raw_input(message) |
- resp.append((p, 0)) |
- elif kind in (3,4): |
- print message |
- resp.append(("", 0)) |
- else: |
- return defer.fail('foo') |
- d = defer.succeed(resp) |
- return d |
- |
-def pamAuthenticate(service, user, conv): |
- return threads.deferToThread(pamAuthenticateThread, service, user, conv) |