## Codigo basado de "Spckets en Python" en MundoGeek http://goo.gl/qiuRZ
from random import randint
import rsa
import socket
def server(host, puerto):
public = rsa.getKeyFromFile(\'rsa.pub\')
private = rsa.getKeyFromFile(\'rsa.priv\')
s = socket.socket()
s.bind((host, puerto))
s.listen(1)
sc, addr = s.accept()
while True:
r = randint(1,1000)
sc.send(str(r))
respuesta = sc.recv(1024)
r2 = rsa.D(int(respuesta), public)
if (r*2) == r2:
sc.send(\'OK\')
print \'Esperando mensaje...\'
recibido = sc.recv(1024)
m = rsa.decifrar(rsa.D(int(recibido), private))
print \'El mensaje cifrado es %s el cual representa la frase "%s"\' % (recibido, m)
break
else:
break
print "adios"
sc.close()
s.close()
return
def cliente(host, puerto):
private = rsa.getKeyFromFile(\'rsa.priv\')
public = rsa.getKeyFromFile(\'rsa.pub\')
s = socket.socket()
s.connect((host, puerto))
#s.connect(("localhost", 9999))
while True:
r = s.recv(1024)
respuesta = rsa.E(int(r), private)
respuesta = int(respuesta)*2
s.send(str(respuesta))
recibido = s.recv(1024)
if recibido == \'OK\':
print \'Conexion Aceptada!!\'
m = raw_input(\'Mensaje >\')
ciphertext = rsa.E(rsa.cifrar(m), public)
s.send(str(ciphertext))
print \'El mensaje enviado fue "%s" el cual se cifro como %s\' % (m, ciphertext)
break
else:
break
print "adios"
s.close()
return