mirror of
https://github.com/dkmstr/openuds.git
synced 2025-08-25 13:49:59 +03:00
Some refactoring to easy indentify algorithm
This commit is contained in:
@ -195,7 +195,7 @@ class Handler(object):
|
||||
session['REST'] = {
|
||||
'auth': id_auth,
|
||||
'username': username,
|
||||
'password': cryptoManager().xor(password, scrambler), # Stores "bytes"
|
||||
'password': cryptoManager().symCrypt(password, scrambler), # Stores "bytes"
|
||||
'locale': locale,
|
||||
'is_admin': is_admin,
|
||||
'staff_member': staff_member
|
||||
|
@ -135,7 +135,7 @@ class Client(Handler):
|
||||
res = userServiceManager().getService(self._request.user, self._request.ip, data['service'], data['transport'])
|
||||
logger.debug('Res: {}'.format(res))
|
||||
ip, userService, userServiceInstance, transport, transportInstance = res
|
||||
password = cryptoManager().xor(data['password'], scrambler).decode('utf-8')
|
||||
password = cryptoManager().symDecrpyt(data['password'], scrambler)
|
||||
|
||||
userService.setConnectionSource(srcIp, hostname) # Store where we are accessing from so we can notify Service
|
||||
|
||||
|
@ -182,7 +182,7 @@ class Connection(Handler):
|
||||
res = userServiceManager().getService(self._user, self._request.ip, idService, idTransport)
|
||||
logger.debug('Res: {}'.format(res))
|
||||
ip, userService, userServiceInstance, transport, transportInstance = res
|
||||
password = cryptoManager().xor(self.getValue('password'), scrambler).decode('utf-8')
|
||||
password = cryptoManager().symDecrpyt(self.getValue('password'), scrambler)
|
||||
|
||||
userService.setConnectionSource(self._request.ip, hostname) # Store where we are accessing from so we can notify Service
|
||||
|
||||
|
@ -46,14 +46,14 @@ from uds.core.util import log
|
||||
from uds.core.util.decorators import deprecated
|
||||
from uds.core import auths
|
||||
from uds.core.util.stats import events
|
||||
from uds.core.managers.CryptoManager import CryptoManager
|
||||
from uds.core.managers import cryptoManager
|
||||
from uds.core.util.State import State
|
||||
from uds.models import User
|
||||
|
||||
import logging
|
||||
import six
|
||||
|
||||
__updated__ = '2018-07-26'
|
||||
__updated__ = '2018-08-02'
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
authLogger = logging.getLogger('authLog')
|
||||
@ -286,7 +286,7 @@ def webLogin(request, response, user, password):
|
||||
user.updateLastAccess()
|
||||
request.session.clear()
|
||||
request.session[USER_KEY] = user.id
|
||||
request.session[PASS_KEY] = CryptoManager.manager().xor(password, cookie) # Stores "bytes"
|
||||
request.session[PASS_KEY] = cryptoManager().symCrypt(password, cookie) # Stores "bytes"
|
||||
# Ensures that this user will have access through REST api if logged in through web interface
|
||||
REST.Handler.storeSessionAuthdata(request.session, manager_id, user.name, password, get_language(), user.is_admin, user.staff_member, cookie)
|
||||
return True
|
||||
@ -300,7 +300,7 @@ def webPassword(request):
|
||||
@param request: DJango Request
|
||||
@return: Unscrambled user password
|
||||
'''
|
||||
return CryptoManager.manager().xor(request.session.get(PASS_KEY, ''), getUDSCookie(request)).decode('utf-8') # recover as original unicode string
|
||||
return cryptoManager().symDecrpyt(request.session.get(PASS_KEY, ''), getUDSCookie(request)) # recover as original unicode string
|
||||
|
||||
|
||||
def webLogout(request, exit_url=None):
|
||||
|
@ -100,6 +100,12 @@ class CryptoManager(object):
|
||||
# We must return bynary in xor, because result is in fact binary
|
||||
return six.binary_type(array.array(six.binary_type('B'), (s1[i] ^ s2[i] for i in range(len(s1)))).tostring())
|
||||
|
||||
def symCrypt(self, text, key):
|
||||
return self.xor(text, key)
|
||||
|
||||
def symDecrpyt(self, cryptText, key):
|
||||
return self.xor(cryptText, key).decode('utf-8')
|
||||
|
||||
def loadPrivateKey(self, rsaKey):
|
||||
try:
|
||||
pk = RSA.importKey(rsaKey)
|
||||
|
@ -60,7 +60,7 @@ def guacamole(request, tunnelId):
|
||||
|
||||
try:
|
||||
val = TicketStore.get(tunnelId, invalidate=False)
|
||||
val['password'] = cryptoManager().xor(val['password'], scrambler)
|
||||
val['password'] = cryptoManager().symDecrpyt(val['password'], scrambler)
|
||||
|
||||
response = dict2resp(val)
|
||||
except Exception:
|
||||
|
@ -191,7 +191,7 @@ class HTML5RDPTransport(Transport):
|
||||
username = domain + '\\' + username
|
||||
|
||||
scrambler = cryptoManager().randomString(32)
|
||||
passwordCrypted = cryptoManager().xor(password, scrambler)
|
||||
passwordCrypted = cryptoManager().symCrypt(password, scrambler)
|
||||
|
||||
# Build params dict
|
||||
params = {
|
||||
|
@ -56,7 +56,7 @@ import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
__updated__ = '2018-03-14'
|
||||
__updated__ = '2018-08-02'
|
||||
|
||||
|
||||
@webLoginRequired(admin=False)
|
||||
@ -117,7 +117,7 @@ def clientEnabler(request, idService, idTransport):
|
||||
try:
|
||||
res = userServiceManager().getService(request.user, request.ip, idService, idTransport, doTest=False)
|
||||
scrambler = cryptoManager().randomString(32)
|
||||
password = cryptoManager().xor(webPassword(request), scrambler)
|
||||
password = cryptoManager().symCrypt(webPassword(request), scrambler)
|
||||
|
||||
_x, userService, _x, trans, _x = res
|
||||
|
||||
|
Reference in New Issue
Block a user