sys.path.append(client_config.rsa_path)
import monRSA
-def connect(sock,where="ici"):
- port=client_config.port
- ip={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org"}[where]
+def connect(sock,where="cerebro",port=None):
+ if port==None:
+ port=client_config.port
+ ip={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org","cerebro":"cerebro.crans.org"}[where]
sock.connect((ip,port))
- return ssl.wrap_socket(sock,ca_certs=client_config.ca_certfile,
- cert_reqs=ssl.CERT_OPTIONAL,ciphers="AES256-SHA")
+ return ssl.wrap_socket(sock,ca_certs=client_config.ca_certfile)
+# cert_reqs=ssl.CERT_NONE,ciphers="AES256-SHA")
def checkidentity(a):
c=a.getpeercert()
def hello(socket,version):
socket.send('hello "%s"'%(version))
- return json.loads(a.read())
+ return lit(a)
def login(socket,user,mdp="",typ="bdd"):
if user in ["20-100","moibdd"]:
- a.write('login ["20-100","mdp","bdd"]')
+ a.write('login ["20-100","plop","bdd",[["all"],["all"],true]]')
elif user in ["vincent","moi"]:
- a.write('login ["vincent","mdp","special"]')
+ a.write('login ["vincent","plop","special",["all"]]')
+ elif user in ["toto"]:
+ a.write('login ["toto","plop","bdd",[["all"],["all"],true]]')
else:
- a.write('login ["%s","%s","%s"]'%(user,mdp,typ))
- return json.loads(a.read())
+ a.write('login ["%s","%s","%s",[["all"],["all"],true]]'%(user,mdp,typ))
+ return lit(a)
def search(socket,term):
a.write("search %s"%(term))
return json.loads(a.read())
-def lit(socket,noprint=False):
+def lit(socket):
try:
- t=a.read()
- if noprint:
- return json.loads(t)
+ t=a.read(4096)
+ obj=json.loads(t)
+ if obj["retcode"]==0:
+ return obj['msg']
else:
- obj=json.loads(t)
- if type(obj)==unicode:
- print obj
- else:
- pprint(obj)
+ print obj["errmsg"]
+ return obj["msg"]
except ssl.SSLError:
- print "Rien à lire"
+ return "Rien à lire"
except ValueError:
- print "Serveur mort ?"
+ return "Serveur mort ?"
def challenge(a):
_,pub=monRSA.litcles(None,client_config.server_rsa_pub_key)
print "Imposteur !"
if __name__=="__main__":
+ where=raw_input("quel serveur ?")
+ #port=int(raw_input("port ? "))
a=socket.socket()
- a=connect(a)
- a.settimeout(0.5)
- checkidentity(a)
+ a=connect(a,where)
+ a.settimeout(2)
+ #checkidentity(a)
print hello(a,"Python Client alpha")
- print login(a,"20-100","mdp")
+ print login(a,"20-100","plop")
print "Socket créée dans la variable \"a\""
+