示例#1
0
def f(x):
    try:
        print('Url:', url + param)
        response = urllib.request.urlopen(url + param)
        client = MongoClient('localhost', 27017)
        db = client.logTeam5
        collection = db.logs
        collection.ensure_index([("timestamp", ASCENDING)])
        payload = response.read()

        def workflowLog(msg):
            """Workflow Action Status"""
            entry = {}
            entry['timestamp'] = datetime.datetime.utcnow()
            entry['status'] = msg
            collection.insert(entry)

        print("Client connecting on port 8080 using SSL")
        clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        c_ssl = ssl.wrap_socket(clientsocket,
                                ca_certs="server.crt",
                                cert_reqs=ssl.CERT_REQUIRED)
        c_ssl.connect(('localhost', 8080))
        c_ssl.send(payload)
        workflowLog("Connection to app1 established")
        return x == True
    except Exception as e:
        print(e)
        print(c_ssl.cipher())
        c_ssl.close()
        workflowLog('Fail')
        return x == False
示例#2
0
 def callback(ch, method, properties, body):
     print("[x] Received %r" % body)
     print("Decrypted Payload: ", decryptPayload(body, cipher))
     workflowLog("Pass Decryption")
示例#3
0
    db = client.logTeam5
    collection = db.logs
    collection.ensure_index([("timestamp", ASCENDING)])
    """ Read Payload """
    payload = response.read()
    """ SSL netowrking socket connection """

    print("Client connecting on port 8080 using SSL")
    clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c_ssl = ssl.wrap_socket(clientsocket,
                            ca_certs="server.crt",
                            cert_reqs=ssl.CERT_REQUIRED)
    c_ssl.connect(('localhost', 8080))
    """ Send payload securely """
    c_ssl.send(payload)
    workflowLog("Connection to app1 established")
    """ decrypt payload with a 32-byte key"""
    def decryptPayload(data, cipher):
        decrypted = cipher.decrypt(data)
        return decrypted

    print("Connection to localhost")
    """ Esstbalish channel connection for queuing """
    connection = pika.BlockingConnection(
        pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    print("Queue ist411 created")
    channel.queue_declare(queue='ist411')

    cipher = AES.new('keykeykeykeykeykeykeykeykeykeyyy'.encode('utf-8'),
                     AES.MODE_CBC, 'This is an IV456'.encode('utf-8'))
示例#4
0
def f(x):
    try:
        print("create an INET, STREAMing socket using SSL")

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        ssl_sock = ssl.wrap_socket(s,
                                   server_side=True,
                                   ssl_version=ssl.PROTOCOL_TLSv1,
                                   certfile="server.crt",
                                   keyfile="server.key")
        print("bind the socket to a public host, and a well-known port 8080")
        """ Binding socket to port 8080 """
        ssl_sock.bind(("localhost", 8080))
        """ Listen method for accepting connection through port 8080 """
        ssl_sock.listen(5)
        print("ciphers: " + str(ssl_sock.cipher()))
        while True:
            print("accept connections from outside")
            (c_ssl, address) = ssl_sock.accept()
            """ Receive payload taking its bytes size as the parameter """
            jsonPayload = c_ssl.recv(157778)
            print("json payload received: ", jsonPayload)
            """ key for hashing estabished """
            key = "5411"
            key = bytes(key, 'UTF-8')
            print()
            """ Logging pass connection """
            workflowLog("Pass Connection")
            """ Writing received payload from app1 to a json file """
            with open('jsonPayload5.json', 'w') as outFile:
                jsonObj = outFile.write(json.dumps(jsonPayload.decode('utf8')))
            with open('jsonPayload5.json', 'r') as json_data:
                pyObj = json.load(json_data)
#				print(repr(pyObj))
            """ Reading json file t generate a digest using sha256 """
            payload = open('jsonPayload5.json', 'rb')
            data = payload.read()
            payload.close()
            """ generating signatures to compare json data """
            signature1 = hmac.new(key, data, hashlib.sha256).hexdigest()
            sig1 = signature1.encode('utf8')
            """ Using base64 to generate second signture """
            signature2 = base64.encodestring(sig1)
            """ Use SFTP to transfer a file between applications """
            with pysftp.Connection(**cinfo) as sftp:
                try:
                    print("putting jsonPayload5.json file")
                    sftp.put(
                        '/home/NaharaMelodonascimentodemou/abist411fa19Team5/jsonPayload5.json'
                    )
                    print("Signature1 (sha256): ", signature1)
                    print("Signature2 (sha256): ", signature2)
                    workflowLog("Pass")
                    return x == True
                except:
                    print("Log exception 2:", sys.exc_info()[0])
                    #workflowLog("Fail")
                    return x == False
    except Exception as e:
        print(e)
        ssl_sock.close()
示例#5
0
        key = bytes(key, 'UTF-8')
        signature = hmac.new(key, data, hashlib.sha256).hexdigest()
        print("Signature1 (sha256): ", signature)
        sig1 = signature.encode('utf8')
        signature_ = base64.encodestring(sig1)
        print("Signature2 (sha256): ", signature)
        print()
        sig3 = input("Enter app2 sha256 signature: ")
        signature4 = sig3.encode('utf-8')
        signature5 = base64.encodestring(signature4)
        print(signature5)
        #		app2Phase2.verifyHash(app2Phase2.signature2, signature_)
        """ Compare two keys """
        compare = hmac.compare_digest(signature5, signature_)
        print("Hash Verified:", compare)
        workflowLog("Hash Verified")
        payloadN = data.decode('utf-8')
        workflowLog("Pass")
        """ Compress a payload using gzip """
        def compressPayload(data):
            payloadComp = gzip.compress(data)
            return payloadComp

        compressPayload(data)
        workflowLog("payload compressed")
        print("JSON Payload Compressed")
        """ Send an email message contaning a payload """

        def sendEmail(payload, subject, fromAddress, toAddress):
            email_msg = payload
            msg = MIMEText(email_msg)
示例#6
0
import Pyro4
from app5 import workflowLog
from Crypto.Cipher import AES

import pika

uri = input("What is the Pyro uri of the greeting object?").strip()
name = input("What is your name?").strip()

greeting_maker = Pyro4.Proxy(uri)
print(greeting_maker.get_fortune(name))
workflowLog('Pass')


""" Encrypt a json payload using a 32-byte key """
def encryptPayload(data, cipher):
	plaintext = data
	print(plaintext)
	length = 16 - (len(plaintext)%16)
	print(length)
	plaintext += length*pad
	print("Plain text: ", plaintext)
	ciphertext = cipher.encrypt(plaintext)
	print(type(ciphertext))
	print("Ciphertext: ", ciphertext)
	return ciphertext

try:
	print("Reading the file Payload to encrypt")
	pad = b' '
	payload = open('jsonPayload5.json', 'rb')