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
def callback(ch, method, properties, body): print("[x] Received %r" % body) print("Decrypted Payload: ", decryptPayload(body, cipher)) workflowLog("Pass Decryption")
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'))
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()
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)
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')