Files
xmlrpcserver/main.py
Ivan Vazhenin 15ee28cb0c Auth process
2023-03-19 11:47:58 +03:00

65 lines
1.6 KiB
Python

from uuid import uuid4
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.client import ServerProxy
import logging
import os
import requests.graphql
from pygost import gost34112012256
PASSWORD = 'gost_2012$a742ec53198ec2a5027086fba8814a89982a57112d1a72d02260161108f39b50'
# Expose a function
def list_contents(dir_name):
logging.debug('list_contents(%s)', dir_name)
return os.listdir(dir_name)
def aud_add(message):
logging.debug(message)
return 'OK'
def auth_response(challenge, server_id, is_server):
# logging.debug(f'Challenge: {challenge}, Server: {server_id}, IsServer: {is_server}')
msg = '%s%s%s' % (challenge, server_id, PASSWORD)
response = gost34112012256.new(msg.encode('utf-8')[::-1]).digest()[::-1].hex()
return {'error': False, 'response': response}
def auth_challenge():
logging.debug('get challenge')
return uuid4().hex
def accept(params, files, url):
print(params, files, url)
print('Accept')
return True
def main():
print('Use Control-C to exit')
logging.basicConfig(level=logging.DEBUG)
server = SimpleXMLRPCServer(('0.0.0.0', 9000), logRequests=True)
server.register_function(list_contents)
server.register_function(aud_add)
server.register_function(auth_response)
server.register_function(auth_challenge)
server.register_function(accept)
try:
server.serve_forever()
except KeyboardInterrupt:
print('Exiting')
def test():
print(requests.graphql.get_classifier())
# print(requests.graphql.get_catalog())
if __name__ == '__main__':
main()
# test()