]>
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
="ici"):
23 port
=client_config
.port
24 ip
={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org"}[where
]
25 sock
.connect((ip
,port
))
26 return ssl
.wrap_socket(sock
,ca_certs
=client_config
.ca_certfile
,
27 cert_reqs
=ssl
.CERT_OPTIONAL
,ciphers
="AES256-SHA")
32 c
=dict([i
[0] for i
in c
["subject"]])
33 awaited
={'commonName': u
'note.crans.org',
35 'emailAddress': u
'legallic@crans.org',
36 'localityName': u
'Cachan',
37 'organizationName': u
'BDE ENS Cachan',
38 'organizationalUnitName': u
'Kfet',
39 'stateOrProvinceName': u
'\xc3\x8ele de France'}
40 if all([c
[cle
]==awaited
[cle
] for cle
in awaited
.keys()]):
43 raise KeyboardInterrupt("Imposteur !")
45 def hello(socket
,version
):
46 socket
.send('hello "%s"'%(version))
47 return json
.loads(a
.read())
49 def login(socket
,user
,mdp
="",typ
="bdd"):
50 if user
in ["20-100","moibdd"]:
51 a
.write('login ["20-100","mdp","bdd"]')
52 elif user
in ["vincent","moi"]:
53 a
.write('login ["vincent","mdp","special"]')
55 a
.write('login ["%s","%s","%s"]'%(user
,mdp
,typ
))
56 return json
.loads(a
.read())
58 def search(socket
,term
):
59 a
.write("search %s"%(term))
60 return json
.loads(a
.read())
62 def lit(socket
,noprint
=False):
69 if type(obj
)==unicode:
76 print "Serveur mort ?"
79 _
,pub
=monRSA
.litcles(None,client_config
.server_rsa_pub_key
)
80 chall
=str(time
.time())
81 chall
+="".join(["azertyuiopqsdfghjklmwxcvbn"[random
.randrange(0,26)] for i
in range(20)])
82 coded
=monRSA
.crypte(chall
,pub
)
83 a
.send('challenge "%s"'%(coded))
87 if json
.loads(result
)==chall
:
89 elif json
.loads(result
)==u
"Challenge tenté il y a moins de 10 minutes ! =p":
90 print "Top tôt. Réessaye plus tard."
94 if __name__
=="__main__":
99 print hello(a
,"Python Client alpha")
100 print login(a
,"20-100","mdp")
101 print "Socket créée dans la variable \"a\""