]>
gitweb.pimeys.fr Git - NK2015_Client_Python_Alpha.git/blob - client.py
2 # -*- coding: utf-8 -*-
4 # Définition des fonctions de base de communication du client
5 # Pour l'instant ce script sert essentiellement à les charger en mémoire pour les utiliser à la main
7 import os
, sys
, string
, time
, random
17 from pprint
import pprint
19 sys
.path
.append(client_config
.rsa_path
)
22 def connect(sock
,where
="cerebro",port
=None):
24 port
=client_config
.port
25 ip
={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org","cerebro":"cerebro.crans.org"}[where
]
26 sock
.connect((ip
,port
))
27 return ssl
.wrap_socket(sock
,ca_certs
=client_config
.ca_certfile
)
28 # cert_reqs=ssl.CERT_NONE,ciphers="AES256-SHA")
33 c
=dict([i
[0] for i
in c
["subject"]])
34 awaited
={'commonName': u
'note.crans.org',
36 'emailAddress': u
'legallic@crans.org',
37 'localityName': u
'Cachan',
38 'organizationName': u
'BDE ENS Cachan',
39 'organizationalUnitName': u
'Kfet',
40 'stateOrProvinceName': u
'\xc3\x8ele de France'}
41 if all([c
[cle
]==awaited
[cle
] for cle
in awaited
.keys()]):
44 raise KeyboardInterrupt("Imposteur !")
46 def hello(socket
,version
):
47 socket
.send('hello "%s"'%(version))
50 def login(socket
,user
,mdp
="",typ
="bdd"):
51 if user
in ["20-100","moibdd"]:
52 a
.write('login ["20-100","plop","bdd"]')
53 elif user
in ["vincent","moi"]:
54 a
.write('login ["vincent","plop","special"]')
55 elif user
in ["toto"]:
56 a
.write('login ["toto","plop","bdd"]')
58 a
.write('login ["%s","%s","%s"]'%(user
,mdp
,typ
))
61 def search(socket
,term
):
62 a
.write("search %s"%(term))
63 return json
.loads(a
.read())
77 return "Serveur mort ?"
80 _
,pub
=monRSA
.litcles(None,client_config
.server_rsa_pub_key
)
81 chall
=str(time
.time())
82 chall
+="".join(["azertyuiopqsdfghjklmwxcvbn"[random
.randrange(0,26)] for i
in range(20)])
83 coded
=monRSA
.crypte(chall
,pub
)
84 a
.send('challenge "%s"'%(coded))
88 if json
.loads(result
)==chall
:
90 elif json
.loads(result
)==u
"Challenge tenté il y a moins de 10 minutes ! =p":
91 print "Top tôt. Réessaye plus tard."
95 if __name__
=="__main__":
96 where
=raw_input("quel serveur ?")
97 #port=int(raw_input("port ? "))
102 print hello(a
,"Python Client alpha")
103 print login(a
,"20-100","mdp")
104 print "Socket créée dans la variable \"a\""