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);
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)
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):
def __init__(self): self.smessage = smessage.smessage(server_priv, client_pub)
def set_peer_pub_key(self,peer_public_key): self.smessage=smessage.smessage(self.priv_key, peer_public_key);
def __init__(self): self.smessage=smessage.smessage(server_priv, client_pub);
# 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='',
#!/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()
#!/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()
# # 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();
def set_peer_pub_key(self, peer_public_key): self.smessage = smessage.smessage(self.priv_key, peer_public_key)