def payload_encryption_test(): password = b'testpwd' payload = {'ccnum': '1111222233334444', 'expdate': '09/13/2018', 'cvc': '123', 'notes': 'adding user notes'} salt = Encrypt.generate_salt() print('ENCRYPT\TEST: salt: ', salt) sym_key_box = Encrypt.generate_key(password, salt) print('ENCRYPT\TEST: sym_key_box: ', sym_key_box) sym_key = Encrypt.decrypt_key(sym_key_box, password, salt) print('ENCRYPT\TEST: sym_key: ', sym_key) # Payload encryption (encrypt the payload) json_payload_string = json.dumps(payload) print('JSON PAYLOAD:', json_payload_string) encrypted_payload = Encrypt.encrypt_payload(sym_key, json_payload_string.encode()) print('ENCRYPT\TEST: encrypted_payload: ', encrypted_payload) decrypted_payload = Encrypt.decrypt_payload(sym_key, encrypted_payload) print('ENCRYPT\TEST: decrypted_payload: ', decrypted_payload) payload_dict = json.loads(decrypted_payload) print(payload_dict) print(payload_dict["ccnum"]) print(payload_dict["expdate"]) print(payload_dict["cvc"]) print(payload_dict["notes"])
def cards(): print('SERVER/LOG: Opening cards page') user_cards = [] # TODO: Decryption logic for cards if request.method == 'POST': print("SERVER/LOG: Headers:\n", request.headers) print("SERVER/LOG: Data:\n", request.data) try: print("SERVER/LOG: Form:\n", request.form['cardId']) db.delete_card(request.form['cardId']) return redirect("/cards") except: print("SERVER/FAIL: Unable to edit/delete card:\n") try: if 'username' in session: print('SERVER/LOG: Logged in as', session['username']) try: # payloads = db.get_payloads(session['username']) id_payloads = db.get_id_payload(session['username']) print(id_payloads) for payload in id_payloads: user_cards.append((json.loads( Encrypt.decrypt_payload( session['symkey'], base64.b64decode(payload["payload"]))), payload["id"])) except: print('SERVER/FAIL: No cards found for', session['username']) else: return redirect("/") except: return redirect("/") return render_template('cards.html', user_cards=user_cards)
def full_encryption_test(): user = '******' password = b'testpwd' ccnum = '1111222233334444' salt = Encrypt.generate_salt() print('ENCRYPT\TEST: salt: ', salt) sym_key_box = Encrypt.generate_key(password, salt) print('ENCRYPT\TEST: sym_key_box: ', sym_key_box) sym_key = Encrypt.decrypt_key(sym_key_box, password, salt) print('ENCRYPT\TEST: sym_key: ', sym_key) # Payload encryption (encrypt the payload) encrypted_payload = Encrypt.encrypt_payload(sym_key, ccnum) print('ENCRYPT\TEST: encrypted_payload: ', encrypted_payload) decrypted_payload = Encrypt.decrypt_payload(sym_key, encrypted_payload) print('ENCRYPT\TEST: decrypted_payload: ', decrypted_payload)