Exemplo n.º 1
0
 def __init__(self, priv_key, peer_public_key=None, socket_=None):
     if socket_==None:
         self.socket=socket.socket();
     else:
         self.socket=socket_;
     self.priv_key=priv_key;
     if peer_public_key==None:
         self.message=None;
     else:
         self.smessage=smessage.smessage(priv_key, peer_public_key);
Exemplo n.º 2
0
 def __init__(self, priv_key, peer_public_key=None, socket_=None):
     if socket_ == None:
         self.socket = socket.socket()
     else:
         self.socket = socket_
     self.priv_key = priv_key
     if peer_public_key == None:
         self.message = None
     else:
         self.smessage = smessage.smessage(priv_key, peer_public_key)
Exemplo n.º 3
0
 def encrypt_decrypt(self, priv, pub):
     with self.assertRaises(themis_exception):
         smessage.smessage("", "")
     with self.assertRaises(TypeError):
         smessage.smessage(None, pub)
     with self.assertRaises(themis_exception):
         smessage.smessage(priv, "")
     enc = smessage.smessage(priv, pub)
     with self.assertRaises(themis_exception):
         enc.wrap("")
     encrypted_message = enc.wrap(self.message)
     with self.assertRaises(themis_exception):
         enc.unwrap(b"".join([encrypted_message, b"11"]))
     decrypted_message = enc.unwrap(encrypted_message)
     self.assertEqual(self.message, decrypted_message)
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#echo server for tornado

from pythemis import smessage;
import tornado.ioloop
import tornado.web

client_pub = b"\x55\x45\x43\x32\x00\x00\x00\x2d\x13\x8b\xdf\x0c\x02\x1f\x09\x88\x39\xd9\x73\x3a\x84\x8f\xa8\x50\xd9\x2b\xed\x3d\x38\xcf\x1d\xd0\xce\xf4\xae\xdb\xcf\xaf\xcb\x6b\xa5\x4a\x08\x11\x21"

server_priv= b"\x52\x45\x43\x32\x00\x00\x00\x2d\x49\x87\x04\x6b\x00\xf2\x06\x07\x7d\xc7\x1c\x59\xa1\x8f\x39\xfc\x94\x81\x3f\x9e\xc5\xba\x70\x6f\x93\x08\x8d\xe3\x85\x82\x5b\xf8\x3f\xc6\x9f\x0b\xdf"

smessage=smessage.smessage(server_priv, client_pub);

class MainHandler(tornado.web.RequestHandler):        
    def post(self):
        message = smessage.unwrap(self.request.body);         #decrypt accepted message
        print(message);
        self.write(smessage.wrap(message));                #encrypt and send message
            
application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(26260)
    tornado.ioloop.IOLoop.instance().start()
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# echo client for rabbitMQ
from pythemis import smessage
import pika
import uuid

client_priv = b"\x52\x45\x43\x32\x00\x00\x00\x2d\x51\xf4\xaa\x72\x00\x9f\x0f\x09\xce\xbe\x09\x33\xc2\x5e\x9a\x05\x99\x53\x9d\xb2\x32\xa2\x34\x64\x7a\xde\xde\x83\x8f\x65\xa9\x2a\x14\x6d\xaa\x90\x01"

server_pub = b"\x55\x45\x43\x32\x00\x00\x00\x2d\x75\x58\x33\xd4\x02\x12\xdf\x1f\xe9\xea\x48\x11\xe1\xf9\x71\x8e\x24\x11\xcb\xfd\xc0\xa3\x6e\xd6\xac\x88\xb6\x44\xc2\x9a\x24\x84\xee\x50\x4c\x3e\xa0"

smessage = smessage.smessage(client_priv, server_pub)


class SsessionRpcClient(object):
    def __init__(self):
        self.connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
        self.channel = self.connection.channel()
        result = self.channel.queue_declare(exclusive=True)
        self.callback_queue = result.method.queue
        self.channel.basic_consume(self.on_response, no_ack=True, queue=self.callback_queue)

    def on_response(self, ch, method, props, body):
        if self.corr_id == props.correlation_id:
            self.response = smessage.unwrap(body)  # decrypt acceptedd message

    def call(self, message):
Exemplo n.º 6
0
 def __init__(self):
     self.smessage = smessage.smessage(server_priv, client_pub)
Exemplo n.º 7
0
 def set_peer_pub_key(self,peer_public_key):
     self.smessage=smessage.smessage(self.priv_key, peer_public_key);
Exemplo n.º 8
0
    def __init__(self):
	self.smessage=smessage.smessage(server_priv, client_pub);
Exemplo n.º 9
0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#echo server for rabbitMQ
from pythemis import smessage
import pika

client_pub = b"\x55\x45\x43\x32\x00\x00\x00\x2d\x13\x8b\xdf\x0c\x02\x1f\x09\x88\x39\xd9\x73\x3a\x84\x8f\xa8\x50\xd9\x2b\xed\x3d\x38\xcf\x1d\xd0\xce\xf4\xae\xdb\xcf\xaf\xcb\x6b\xa5\x4a\x08\x11\x21"

server_priv = b"\x52\x45\x43\x32\x00\x00\x00\x2d\x49\x87\x04\x6b\x00\xf2\x06\x07\x7d\xc7\x1c\x59\xa1\x8f\x39\xfc\x94\x81\x3f\x9e\xc5\xba\x70\x6f\x93\x08\x8d\xe3\x85\x82\x5b\xf8\x3f\xc6\x9f\x0b\xdf"

smessage = smessage.smessage(server_priv, client_pub)

connection = pika.BlockingConnection(
    pika.ConnectionParameters(host='localhost'))

channel = connection.channel()

channel.queue_declare(queue='smessage_queue')


def on_request(ch, method, props, body):
    message = smessage.unwrap(body)
    #decrypt received message
    print(message)
    ch.basic_publish(
        exchange='',
Exemplo n.º 10
0
#!/usr/bin/python

import httplib, urllib
from pythemis import smessage
import base64
import time;

message_maker=smessage.smessage(base64.b64decode("UkVDMgAAAC1whm6SAJ7vIP18Kq5QXgLd413DMjnb6Z5jAeiRgUeekMqMC0+x"), base64.b64decode("VUVDMgAAAC1NY6NZAz62ZG25YU67a5zX1iDo0Aijz8xOu4nzE0yQhtJIQBbD"))
message = base64.b64encode(message_maker.wrap("This is test message"))
params = urllib.urlencode({'message': message})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = httplib.HTTPSConnection("themis.cossacklabs.com")
conn.request("POST", "/api/OiJLrqNZZvUcaCH/", params, headers)
response_secure_message = conn.getresponse().read()
print(len(response_secure_message))
response_message=message_maker.unwrap(response_secure_message)
print(response_message)
conn.close()
Exemplo n.º 11
0
#!/usr/bin/env python

import httplib, urllib
from pythemis import smessage
import base64
import time

message_maker = smessage.smessage(
    base64.b64decode(
        "UkVDMgAAAC1whm6SAJ7vIP18Kq5QXgLd413DMjnb6Z5jAeiRgUeekMqMC0+x"),
    base64.b64decode(
        "VUVDMgAAAC1NY6NZAz62ZG25YU67a5zX1iDo0Aijz8xOu4nzE0yQhtJIQBbD"))
message = base64.b64encode(message_maker.wrap("This is test message"))
params = urllib.urlencode({'message': message})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = httplib.HTTPSConnection("themis.cossacklabs.com")
conn.request("POST", "/api/OiJLrqNZZvUcaCH/", params, headers)
response_secure_message = conn.getresponse().read()
print(len(response_secure_message))
response_message = message_maker.unwrap(response_secure_message)
print(response_message)
conn.close()
Exemplo n.º 12
0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#echo client for tornado
from pythemis import smessage;
import tornado.ioloop
import tornado.httpclient;

client_priv = b"\x52\x45\x43\x32\x00\x00\x00\x2d\x51\xf4\xaa\x72\x00\x9f\x0f\x09\xce\xbe\x09\x33\xc2\x5e\x9a\x05\x99\x53\x9d\xb2\x32\xa2\x34\x64\x7a\xde\xde\x83\x8f\x65\xa9\x2a\x14\x6d\xaa\x90\x01"

server_pub  = b"\x55\x45\x43\x32\x00\x00\x00\x2d\x75\x58\x33\xd4\x02\x12\xdf\x1f\xe9\xea\x48\x11\xe1\xf9\x71\x8e\x24\x11\xcb\xfd\xc0\xa3\x6e\xd6\xac\x88\xb6\x44\xc2\x9a\x24\x84\xee\x50\x4c\x3e\xa0"

http_client = tornado.httpclient.HTTPClient();
smessage=smessage.smessage(client_priv, server_pub);
try:
    response = http_client.fetch(tornado.httpclient.HTTPRequest("http://127.0.0.1:26260", "POST", None, smessage.wrap(b"This is test message")));
    #decrypt request body(message)
    message = smessage.unwrap(response.body);         #encrypt message
    print(message);                                #send message
    
except tornado.httpclient.HTTPError as e:
    print("Error: " + str(e));
except Exception as e:
    print("Error: " + str(e));
http_client.close();
Exemplo n.º 13
0
 def set_peer_pub_key(self, peer_public_key):
     self.smessage = smessage.smessage(self.priv_key, peer_public_key)