commit aa0fe54b3bf8331c174c7be107fcfa2b67f2322a Author: emln Date: Sun Apr 27 19:24:27 2025 +0200 CTFs and solutions diff --git a/back-to-the-future/2 b/back-to-the-future/2 new file mode 100644 index 0000000..2b4a4ca --- /dev/null +++ b/back-to-the-future/2 @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +import time +from random import randint +from pwn import * +import base64 +import requests +import time +from requests.utils import cookiejar_from_dict +LOGIN ="http://130.192.5.212:6522/login" +FLAG = "http://130.192.5.212:6522/flag" +username='aa' +admin=0 +expire_date=int(time.time()) + 30 * 24 * 60 * 60 +cookie = f"username={username}&expires={expire_date}&admin={admin}" +print(f"Cookie len:{len(cookie.encode())}") +LOGIN="http://127.0.0.1:5000/login" +FLAG="http://127.0.0.1:5000/flag" +# expire = 1.748.345.396 +PARAMS = {"username":'aa','admin':1} + +s = requests.Session() +r = s.get(url=LOGIN,params=PARAMS) +cookie= r.json()['cookie'] +print(f"Cookie encrypted len:{len(long_to_bytes(cookie))}") +#sleep(1000) +nonce = r.json()['nonce'] + +cookie = bytearray(long_to_bytes(cookie)) + +for i in range(1,256): + cookie[-1]= cookie[-1] ^ i + + COOKIES = {'cookie':bytes_to_long(cookie), 'nonce': nonce} + f = s.get(url=FLAG,params=COOKIES) + print(f.text) + """if(f.text == "You have expired!"): + print(f"Guessed byte:{i}") + cookie[20] = 2 ^ i + COOKIES['cookie'] = bytes_to_long(cookie) + f = s.get(url=FLAG,params=COOKIES) + print(f.text)""" + #break +"""decCookie = cipher.decrypt(encCookie) +print(decCookie) +sleep(10000) +r = s.get(url=LOGIN,params=PARAMS) +for cookie in s.cookies: + print(cookie) + keyEncoded = cookie.value +key = base64.urlsafe_b64decode(keyEncoded+'=') + +print(f"LEN:{len(key)}") + +LOG_PARAMS = {"username":'aaaaaaaaa','admin':1} +r = s.get(url=LOGIN,params=LOG_PARAMS) +print(f"login:{r.json()}") +cookie=long_to_bytes(r.json()['cookie']) +nonce=long_to_bytes(r.json()['nonce']) +print(f"Nonce:{bytes_to_long(nonce)}") +cipher = ChaCha20.new(key=key, nonce=nonce) +decrypt=cipher.decrypt(cookie) +print(len(decrypt)) +sleep(1000) +nonce = bytes_to_long(nonce) +cookie = bytes_to_long(cipher.encrypt(testCookie.encode())) +PARAMS = {'cookie':cookie, 'nonce':nonce } +f = s.get(url=FLAG, params=PARAMS) +print(f.text)""" diff --git a/back-to-the-future/__pycache__/chall.cpython-313.pyc b/back-to-the-future/__pycache__/chall.cpython-313.pyc new file mode 100644 index 0000000..cc86645 Binary files /dev/null and b/back-to-the-future/__pycache__/chall.cpython-313.pyc differ diff --git a/back-to-the-future/attack.py b/back-to-the-future/attack.py new file mode 100644 index 0000000..4bd4ebd --- /dev/null +++ b/back-to-the-future/attack.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +import time +from random import randint +from pwn import * +import base64 +import requests +import time +from requests.utils import cookiejar_from_dict +LOGIN ="http://130.192.5.212:6522/login" +FLAG = "http://130.192.5.212:6522/flag" + +#LOGIN="http://127.0.0.1:5000/login" +#FLAG="http://127.0.0.1:5000/flag" +# expire = 1.748.345.396 +PARAMS = {"username":'aa','admin':1} +givenTime = int(time.time()) + +minAdminDate = givenTime - 10 * 24 * 60 * 60 +maxAdminDate = givenTime - 259 * 24 * 60 * 60 +avgAdminDate = int((minAdminDate + maxAdminDate)/2) +expire_date = givenTime + 30 * 24 * 60 * 60 +eMin = expire_date - minAdminDate +eMax = expire_date - maxAdminDate +eAvg = (eMin+eMax) / 2 +plaintext = f"username={PARAMS['username']}&expires={expire_date}&admin={PARAMS['admin']}" +plaintext = plaintext.encode() +s = requests.Session() +r = s.get(url=LOGIN,params=PARAMS) +cookie= r.json()['cookie'] +cookie = long_to_bytes(cookie) +print(f"Cookie encrypted len:{len(cookie)}, Plaintext len:{len(plaintext)}") +nonce = r.json()['nonce'] + +ks = bytes([c ^ p for c,p in zip(cookie, plaintext)]) + +print(f"Keystream len:{len(ks)}") +for i in range(1): + + payload = f"username={PARAMS['username']}&expires={maxAdminDate + 295 * 24 * 60 * 60}&admin={1}".encode() + + cookie = bytes([p ^ k for p,k in zip(payload,ks)]) + print(f"Malicious cookie len:{len(cookie)}") + COOKIES = {'cookie':bytes_to_long(cookie),'nonce':nonce} + f = s.get(url=FLAG,params=COOKIES) + print(f.text) + +########## diff --git a/back-to-the-future/chall.py b/back-to-the-future/chall.py new file mode 100644 index 0000000..0b52111 --- /dev/null +++ b/back-to-the-future/chall.py @@ -0,0 +1,99 @@ +from Crypto.Cipher import ChaCha20 +from Crypto.Random import get_random_bytes +from Crypto.Util.number import long_to_bytes, bytes_to_long +import time +from random import randint +#from secret import flag +from flask import Flask, session, jsonify, request +from flask_session import Session +import sys +flag="PuppaFlag" + +app = Flask(__name__) +app.secret_key = get_random_bytes(16).hex() +app.config['SESSION_TYPE'] = 'filesystem' +sess = Session() +sess.init_app(app) + + +def make_cipher(): + key = get_random_bytes(32) + nonce = get_random_bytes(12) + cipher = ChaCha20.new(key=key, nonce=nonce) + return nonce, key, cipher + + +def sanitize_field(field: str): + return field \ + .replace(" ", "_") \ + .replace("/", "_") \ + .replace("&", "") \ + .replace(":", "") \ + .replace(";", "") \ + .replace("<", "") \ + .replace(">", "") \ + .replace('"', "") \ + .replace("'", "") \ + .replace("(", "") \ + .replace(")", "") \ + .replace("[", "") \ + .replace("]", "") \ + .replace("{", "") \ + .replace("}", "") \ + .replace("=", "") + + +def parse_cookie(cookie: str) -> dict: + parsed = {} + for field in cookie.split("&"): + key, value = field.split("=") + key = sanitize_field(key) + value = sanitize_field(value) + parsed[key] = value + + return parsed + + +@app.route("/login", methods=["GET"]) +def login(): + username = request.args.get("username") + admin = int(request.args.get("admin")) + + nonce, key, cipher = make_cipher() + session['key'] = key + username = sanitize_field(username) + if admin != 1: + admin = 0 + else: + #MAX = 22.377.600 + #MIN = 864.000 + session['admin_expire_date'] = int(time.time()) - randint(10, 259) * 24 * 60 * 60 + #ADD = 2.592.000 + expire_date = int(time.time()) + 30 * 24 * 60 * 60 + cookie = f"username={username}&expires={expire_date}&admin={admin}" + + return jsonify({ + "nonce": bytes_to_long(nonce), + "cookie": bytes_to_long(cipher.encrypt(cookie.encode())) + }) + + +@app.route("/flag", methods=["GET"]) +def get_flag(): + nonce = int(request.args.get("nonce")) + cookie = int(request.args.get("cookie")) + cipher = ChaCha20.new(nonce=long_to_bytes(nonce), key=session['key']) + + try: + dec_cookie = cipher.decrypt(long_to_bytes(cookie)).decode() + token = parse_cookie(dec_cookie) + if int(token["admin"]) != 1: + return f"Admin value:{token['admin']}" + #25.056.000 < value < 25.920.000 + # + if 290 * 24 * 60 * 60 < abs(int(token["expires"]) - session['admin_expire_date']) < 300 * 24 * 60 * 60: + return f"OK! Your flag: {flag}" + else: + return f"You have expired! with expiration: {token['expires']} and {session['admin_expire_date']}" + except: + return f"Something didn't work :C" diff --git a/back-to-the-future/des.py b/back-to-the-future/des.py new file mode 100644 index 0000000..54eefa0 --- /dev/null +++ b/back-to-the-future/des.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +# encoding: utf-8 + +""" +Flask session cookie toolkit. + +Decode, verify or generate a signed Flask session cookie. + +Credits to Terry Vogelsang for the original script (https://terryvogelsang.tech/MITRECTF2018-my-flask-app/) +which I just slightly modified for my personal use. +""" + +from hashlib import sha512 +from flask.sessions import session_json_serializer +from itsdangerous import URLSafeTimedSerializer, BadTimeSignature +import argparse +import base64 +from zlib import decompress +import sys +import json + +# GENERAL FUNCTIONS. + +def debug(msg): + if VERBOSE_OUTPUT: + print("[DEBUG] " + msg) + +def pretty_print_json_data(json_data): + json_pretty_str = json.dumps(json_data, indent=4) + print(json_pretty_str) + +# COOKIE DECODER. + +def decode_cookie_payload(cookie): + debug(f"Cookie:\n{cookie}") + # If the cookie starts with a dot the paylod is base64 encoded and GZIP compressed. + if cookie[0] == ".": + b64_gzip_payload = cookie[1:].split(".")[0] + # Python needs the padding which is stripped in the base64_URLsafe version (see https://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding#comment12174484_2942039) + b64_gzip_payload += "=" * (-len(b64_gzip_payload) % 4) + debug(f"Encoded and compressed payload:\n{b64_gzip_payload}") + gzip_payload = base64.urlsafe_b64decode(b64_gzip_payload) + payload = decompress(gzip_payload) + debug(f"Decoded and decompressed payload:\n{payload}") + else: + # If the cookie does not start with a dot the payload is just base64 encoded. + b64_payload = cookie.split(".")[0] + # Python needs the padding which is stripped in the base64_URLsafe version (see https://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding#comment12174484_2942039) + b64_payload += "=" * (-len(b64_payload) % 4) + debug(f"Encoded payload:\n{b64_payload}") + payload = base64.urlsafe_b64decode(b64_payload) + debug(f"Decoded payload:\n{payload}") + + return payload + +def output_decoded_payload(payload, json_pretty, str_encoding): + str_payload = payload.decode(str_encoding) + if json_pretty: + # Pretty print the JSON data. + try: + debug(f"Payload string (encoding=\"{str_encoding}\"):\n{str_payload}") + pretty_print_json_data(json.loads(str_payload)) + except: + print("The payload is not valid JSON!", file=sys.stderr) + sys.exit(1) + else: + # Do not pretty print the JSON data. + print(str_payload) + sys.exit(0) + +# COOKIE VERIFIER. + +def readAndVerifyCookie(cookie, secret_key): + debug(f"Cookie:\n{cookie}") + signer = URLSafeTimedSerializer( + secret_key, salt="cookie-session", + serializer=session_json_serializer, + signer_kwargs={"key_derivation": "hmac", "digest_method": sha512} + ) + try: + session_data = signer.loads(cookie) + print("The signature is correct!") + return session_data + except BadTimeSignature: + print(f"The signature is not correct!") + sys.exit(1) + +# COOKIE GENERATOR. + +def generate_cookie(json_str_payload, key): + try: + payload = json.loads(json_str_payload) + except: + print("Your payload is not a valid JSON string!") + sys.exit(1) + + signer = URLSafeTimedSerializer( + key, salt="cookie-session", + serializer=session_json_serializer, + signer_kwargs={"key_derivation": "hmac", "digest_method": sha512} + ) + cookie = signer.dumps(payload) + return cookie + +# MAIN. + +if __name__ == "__main__": + # Argparse setup. + argparser = argparse.ArgumentParser(description="Pefroma various actions regarding a Flask session COOKIE.") + argparser.add_argument("command", metavar="COMMAND", choices=["decode", "verify", "generate"], help="the command to execute") + argparser.add_argument("-c", "--cookie", metavar="COOKIE", help="the COOKIE to decode or verify") + argparser.add_argument("-k", "--key", metavar="SECRET_KEY", help="the SECRET_KEY to sign or verify the cookie with") + argparser.add_argument("-p", "--payload", metavar="PAYLOAD", help="the PAYLOAD to encode in teh cookie") + argparser.add_argument("-v", "--verbose", action="store_true", help="enable verbose output") + argparser.add_argument("--pretty-json", action="store_true", help="whether to pretty print the JSON data") + argparser.add_argument("--encoding", default="UTF-8", help="the ENCODING to use when parsing data as a string") + # Parse arguments. + args = argparser.parse_args() + command = args.command + VERBOSE_OUTPUT = args.verbose + # Choose command. + if command == "decode": + # Check arguments. + if args.cookie is None: + argparser.error("The 'decode' command requires the --cookie argument.") + cookie = args.cookie + json_pretty = args.pretty_json + str_encoding = args.encoding + # Decode. + payload = decode_cookie_payload(cookie) + # Output. + output_decoded_payload(payload, json_pretty, str_encoding) + elif command == "verify": + # Check arguments. + if args.cookie is None or args.key is None: + argparser.error("The 'verify' command requires both the --cookie and the --key arguments.") + cookie = args.cookie + key = args.key + pretty_json = args.pretty_json + # Verify. + session_data = readAndVerifyCookie(cookie, key) + # Output. + print('') + if pretty_json: + debug(f"Session data:\n{session_data}") + pretty_print_json_data(session_data) + else: + print(json.dumps(session_data)) + elif command == "generate": + # Check arguments. + if args.payload is None or args.key is None: + argparser.error("The 'generate' command requires both the --payload and the --key arguments.") + payload = args.payload + key = args.key + # Generate. + cookie = generate_cookie(payload, key) + # Output. + print(cookie) diff --git a/back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 b/back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 new file mode 100644 index 0000000..8bad7b8 Binary files /dev/null and b/back-to-the-future/flask_session/0024f4d0c2b3d981466de18eb8f0a755 differ diff --git a/back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd b/back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd new file mode 100644 index 0000000..d049292 Binary files /dev/null and b/back-to-the-future/flask_session/013e1aa0bd32b92f105abddbcb2e4dfd differ diff --git a/back-to-the-future/flask_session/016f2deaa7b087afc8784da8397a22a5 b/back-to-the-future/flask_session/016f2deaa7b087afc8784da8397a22a5 new file mode 100644 index 0000000..f5f1a25 Binary files /dev/null and b/back-to-the-future/flask_session/016f2deaa7b087afc8784da8397a22a5 differ diff --git a/back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 b/back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 new file mode 100644 index 0000000..4c09257 Binary files /dev/null and b/back-to-the-future/flask_session/0339ca8760519fa43df56ddec27a24e7 differ diff --git a/back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 b/back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 new file mode 100644 index 0000000..c423aa8 Binary files /dev/null and b/back-to-the-future/flask_session/037f590478d87f55cedf7b1ab1d53a82 differ diff --git a/back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf b/back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf new file mode 100644 index 0000000..add4892 Binary files /dev/null and b/back-to-the-future/flask_session/03c414397bdde3743856111af41ff1bf differ diff --git a/back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 b/back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 new file mode 100644 index 0000000..ed2cfa6 Binary files /dev/null and b/back-to-the-future/flask_session/04433ec6a092234083ccb75f70be7844 differ diff --git a/back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 b/back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 new file mode 100644 index 0000000..cf0b1d3 Binary files /dev/null and b/back-to-the-future/flask_session/050e985a050d81dfa77f0827ff555076 differ diff --git a/back-to-the-future/flask_session/0571127e1b066fcd0ab93df9db3c231e b/back-to-the-future/flask_session/0571127e1b066fcd0ab93df9db3c231e new file mode 100644 index 0000000..4958416 Binary files /dev/null and b/back-to-the-future/flask_session/0571127e1b066fcd0ab93df9db3c231e differ diff --git a/back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b b/back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b new file mode 100644 index 0000000..9c0d869 Binary files /dev/null and b/back-to-the-future/flask_session/0753e7809f4e8bde6701b4d27193c28b differ diff --git a/back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a b/back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a new file mode 100644 index 0000000..9a0f47d Binary files /dev/null and b/back-to-the-future/flask_session/07b9966fa556e07bb7dbf9d7a97c5d6a differ diff --git a/back-to-the-future/flask_session/085e25cb55018865bad411eac1273ec2 b/back-to-the-future/flask_session/085e25cb55018865bad411eac1273ec2 new file mode 100644 index 0000000..baeaac1 Binary files /dev/null and b/back-to-the-future/flask_session/085e25cb55018865bad411eac1273ec2 differ diff --git a/back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed b/back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed new file mode 100644 index 0000000..2191370 Binary files /dev/null and b/back-to-the-future/flask_session/094a242c07093b9b0a8bf37702d4d6ed differ diff --git a/back-to-the-future/flask_session/09e32f0db5c88c55bc994ecd2d6cbcc6 b/back-to-the-future/flask_session/09e32f0db5c88c55bc994ecd2d6cbcc6 new file mode 100644 index 0000000..17401a9 Binary files /dev/null and b/back-to-the-future/flask_session/09e32f0db5c88c55bc994ecd2d6cbcc6 differ diff --git a/back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 b/back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 new file mode 100644 index 0000000..97bd788 Binary files /dev/null and b/back-to-the-future/flask_session/09eb19248af327923541b8fcae0c34f9 differ diff --git a/back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 b/back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 new file mode 100644 index 0000000..06bbe53 Binary files /dev/null and b/back-to-the-future/flask_session/0a52c4727ae4311cd3a51114e42472c6 differ diff --git a/back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 b/back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 new file mode 100644 index 0000000..3d26b19 Binary files /dev/null and b/back-to-the-future/flask_session/0a6d00dc979a6696c7dc339e4400a0c9 differ diff --git a/back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 b/back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 new file mode 100644 index 0000000..8f27df9 Binary files /dev/null and b/back-to-the-future/flask_session/0b8def7c22ef61cb5591a9c080f8c117 differ diff --git a/back-to-the-future/flask_session/0bbec9d663098e92dc7d014a4b7f032d b/back-to-the-future/flask_session/0bbec9d663098e92dc7d014a4b7f032d new file mode 100644 index 0000000..320ce33 Binary files /dev/null and b/back-to-the-future/flask_session/0bbec9d663098e92dc7d014a4b7f032d differ diff --git a/back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 b/back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 new file mode 100644 index 0000000..2c464c9 Binary files /dev/null and b/back-to-the-future/flask_session/0c1f1c2450a35deebee44be732d558d8 differ diff --git a/back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 b/back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 new file mode 100644 index 0000000..cf1a705 Binary files /dev/null and b/back-to-the-future/flask_session/0c23ca3d1f4169ce2147cf8a3180d454 differ diff --git a/back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 b/back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 new file mode 100644 index 0000000..d1292b9 Binary files /dev/null and b/back-to-the-future/flask_session/0caac73c224f83af1261050ab6ca5bc6 differ diff --git a/back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 b/back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 new file mode 100644 index 0000000..8d531c4 Binary files /dev/null and b/back-to-the-future/flask_session/0d2a8e6c32cee51c76eef735eea453d4 differ diff --git a/back-to-the-future/flask_session/0eb3cd9a68a2d1328664c716c96074ce b/back-to-the-future/flask_session/0eb3cd9a68a2d1328664c716c96074ce new file mode 100644 index 0000000..84120d7 Binary files /dev/null and b/back-to-the-future/flask_session/0eb3cd9a68a2d1328664c716c96074ce differ diff --git a/back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 b/back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 new file mode 100644 index 0000000..c1ef4dc Binary files /dev/null and b/back-to-the-future/flask_session/0eb7bd4f6d34532740aad04e035261f4 differ diff --git a/back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 b/back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 new file mode 100644 index 0000000..ea5e7e2 Binary files /dev/null and b/back-to-the-future/flask_session/0f4b7f5961fc0914870a1d877d5af208 differ diff --git a/back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 b/back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 new file mode 100644 index 0000000..380aebb Binary files /dev/null and b/back-to-the-future/flask_session/102b39f6be00c1781f576ab0acfef156 differ diff --git a/back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 b/back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 new file mode 100644 index 0000000..fc36f43 Binary files /dev/null and b/back-to-the-future/flask_session/104cca7fdf9eb7752f4862d38e6eb718 differ diff --git a/back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f b/back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f new file mode 100644 index 0000000..7861920 Binary files /dev/null and b/back-to-the-future/flask_session/10fe679fe6f5a8d3c40032c9ffae4f6f differ diff --git a/back-to-the-future/flask_session/11955af46d6389a50ae2dd9582509472 b/back-to-the-future/flask_session/11955af46d6389a50ae2dd9582509472 new file mode 100644 index 0000000..54c9732 Binary files /dev/null and b/back-to-the-future/flask_session/11955af46d6389a50ae2dd9582509472 differ diff --git a/back-to-the-future/flask_session/11c5a55a41c63c736331c462cf5c3e21 b/back-to-the-future/flask_session/11c5a55a41c63c736331c462cf5c3e21 new file mode 100644 index 0000000..133bfcc Binary files /dev/null and b/back-to-the-future/flask_session/11c5a55a41c63c736331c462cf5c3e21 differ diff --git a/back-to-the-future/flask_session/11ea3092bffa93df79a32e656a8a0586 b/back-to-the-future/flask_session/11ea3092bffa93df79a32e656a8a0586 new file mode 100644 index 0000000..0748b23 Binary files /dev/null and b/back-to-the-future/flask_session/11ea3092bffa93df79a32e656a8a0586 differ diff --git a/back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc b/back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc new file mode 100644 index 0000000..47e5692 Binary files /dev/null and b/back-to-the-future/flask_session/124926dffa9468ff2a63e8ebbd70d4fc differ diff --git a/back-to-the-future/flask_session/12fcbc367eb9e88c32e55632361cc26b b/back-to-the-future/flask_session/12fcbc367eb9e88c32e55632361cc26b new file mode 100644 index 0000000..15c7d91 Binary files /dev/null and b/back-to-the-future/flask_session/12fcbc367eb9e88c32e55632361cc26b differ diff --git a/back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd b/back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd new file mode 100644 index 0000000..5deabef Binary files /dev/null and b/back-to-the-future/flask_session/153b504567a8ccb59e454c265f46b8cd differ diff --git a/back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 b/back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 new file mode 100644 index 0000000..8435bab Binary files /dev/null and b/back-to-the-future/flask_session/15626afe7c5a68139b2d0c823b10b225 differ diff --git a/back-to-the-future/flask_session/156991eb1d1094c1966cbe78ecf850e8 b/back-to-the-future/flask_session/156991eb1d1094c1966cbe78ecf850e8 new file mode 100644 index 0000000..500b1ff Binary files /dev/null and b/back-to-the-future/flask_session/156991eb1d1094c1966cbe78ecf850e8 differ diff --git a/back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb b/back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb new file mode 100644 index 0000000..4f1c0d7 Binary files /dev/null and b/back-to-the-future/flask_session/16d0908062af6846734edfa5f045a7eb differ diff --git a/back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 b/back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 new file mode 100644 index 0000000..f283c96 Binary files /dev/null and b/back-to-the-future/flask_session/16fd8e2a8030276090ee1af051f12820 differ diff --git a/back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 b/back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 new file mode 100644 index 0000000..001b14c Binary files /dev/null and b/back-to-the-future/flask_session/1758b09b9954119108661b47afd46133 differ diff --git a/back-to-the-future/flask_session/175c311f06644d8abf68bbbe58f2419c b/back-to-the-future/flask_session/175c311f06644d8abf68bbbe58f2419c new file mode 100644 index 0000000..302e4b7 Binary files /dev/null and b/back-to-the-future/flask_session/175c311f06644d8abf68bbbe58f2419c differ diff --git a/back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 b/back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 new file mode 100644 index 0000000..a1a7c9e Binary files /dev/null and b/back-to-the-future/flask_session/1800c2925b752b572f86ed7ee84e6447 differ diff --git a/back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 b/back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 new file mode 100644 index 0000000..a590be3 Binary files /dev/null and b/back-to-the-future/flask_session/1877a6d8ef9c4bef7b8b20352efd6315 differ diff --git a/back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee b/back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee new file mode 100644 index 0000000..0d5581c Binary files /dev/null and b/back-to-the-future/flask_session/18c96d9bf2e5d9a806260b2073cc02ee differ diff --git a/back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 b/back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 new file mode 100644 index 0000000..247560b Binary files /dev/null and b/back-to-the-future/flask_session/18e75151796c652d44534b00d0212909 differ diff --git a/back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac b/back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac new file mode 100644 index 0000000..b9867e8 Binary files /dev/null and b/back-to-the-future/flask_session/193c50b53639cb1c03e36dfc740123ac differ diff --git a/back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 b/back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 new file mode 100644 index 0000000..4bdddaa Binary files /dev/null and b/back-to-the-future/flask_session/1b2ca741d7a39db18a40eb32c2d11b34 differ diff --git a/back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 b/back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 new file mode 100644 index 0000000..d6deba6 Binary files /dev/null and b/back-to-the-future/flask_session/1e68c4649db3fe5e9f137d33b1750a88 differ diff --git a/back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 b/back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 new file mode 100644 index 0000000..bcc3376 Binary files /dev/null and b/back-to-the-future/flask_session/1f658eed99e5d7de9176b624a3adc574 differ diff --git a/back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 b/back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 new file mode 100644 index 0000000..5a26c94 Binary files /dev/null and b/back-to-the-future/flask_session/1f68d6d0f4c582b441f14dcde94228c5 differ diff --git a/back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 b/back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 new file mode 100644 index 0000000..a104a16 Binary files /dev/null and b/back-to-the-future/flask_session/2029240f6d1128be89ddc32729463129 differ diff --git a/back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e b/back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e new file mode 100644 index 0000000..451116b Binary files /dev/null and b/back-to-the-future/flask_session/203905a31c6f852e9d45c346da0c8e2e differ diff --git a/back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 b/back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 new file mode 100644 index 0000000..d7fb875 Binary files /dev/null and b/back-to-the-future/flask_session/208455b2dfc729e62e1d212617c5c103 differ diff --git a/back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 b/back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 new file mode 100644 index 0000000..0d15eac Binary files /dev/null and b/back-to-the-future/flask_session/20874b46266e4b74b7ab1b03f63dcf73 differ diff --git a/back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 b/back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 new file mode 100644 index 0000000..22b4614 Binary files /dev/null and b/back-to-the-future/flask_session/20989fe5ff4ecc9d2220dd6a0d753437 differ diff --git a/back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 b/back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 new file mode 100644 index 0000000..52e2dca Binary files /dev/null and b/back-to-the-future/flask_session/210b1035151e9760b507a7c1edb1cb67 differ diff --git a/back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d b/back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d new file mode 100644 index 0000000..7f57a0c Binary files /dev/null and b/back-to-the-future/flask_session/220fce4c0ec426d5753fbaf01bfb9a8d differ diff --git a/back-to-the-future/flask_session/2216ab4b98005fa61b3b5a023e33106d b/back-to-the-future/flask_session/2216ab4b98005fa61b3b5a023e33106d new file mode 100644 index 0000000..3fc72b2 Binary files /dev/null and b/back-to-the-future/flask_session/2216ab4b98005fa61b3b5a023e33106d differ diff --git a/back-to-the-future/flask_session/224eb7214627856502497725cace3e24 b/back-to-the-future/flask_session/224eb7214627856502497725cace3e24 new file mode 100644 index 0000000..c22d278 Binary files /dev/null and b/back-to-the-future/flask_session/224eb7214627856502497725cace3e24 differ diff --git a/back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d b/back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d new file mode 100644 index 0000000..0625542 Binary files /dev/null and b/back-to-the-future/flask_session/22758786fc4b59ca7a0765ffdde20d3d differ diff --git a/back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 b/back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 new file mode 100644 index 0000000..fe5b960 Binary files /dev/null and b/back-to-the-future/flask_session/22aab843b3edce5f80919d3827c4a214 differ diff --git a/back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 b/back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 new file mode 100644 index 0000000..4d67a91 Binary files /dev/null and b/back-to-the-future/flask_session/23fac18da96856adfb0298e2ac196058 differ diff --git a/back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b b/back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b new file mode 100644 index 0000000..c927286 Binary files /dev/null and b/back-to-the-future/flask_session/2599a275682361c46cbf46b22160097b differ diff --git a/back-to-the-future/flask_session/26155c8b1c13dd23400c7885241f3b83 b/back-to-the-future/flask_session/26155c8b1c13dd23400c7885241f3b83 new file mode 100644 index 0000000..6780399 Binary files /dev/null and b/back-to-the-future/flask_session/26155c8b1c13dd23400c7885241f3b83 differ diff --git a/back-to-the-future/flask_session/2690b7f4cdbc7e9c649c07e63cd8f38d b/back-to-the-future/flask_session/2690b7f4cdbc7e9c649c07e63cd8f38d new file mode 100644 index 0000000..edb9115 Binary files /dev/null and b/back-to-the-future/flask_session/2690b7f4cdbc7e9c649c07e63cd8f38d differ diff --git a/back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 b/back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 new file mode 100644 index 0000000..af1fa88 Binary files /dev/null and b/back-to-the-future/flask_session/26f220fa930f333872b125bc80cda0b5 differ diff --git a/back-to-the-future/flask_session/272e7e2567476c69996585bf3a75e852 b/back-to-the-future/flask_session/272e7e2567476c69996585bf3a75e852 new file mode 100644 index 0000000..6c8642e Binary files /dev/null and b/back-to-the-future/flask_session/272e7e2567476c69996585bf3a75e852 differ diff --git a/back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b b/back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b new file mode 100644 index 0000000..f09a089 Binary files /dev/null and b/back-to-the-future/flask_session/27e405db11e63c38bcb22f24fe2cab5b differ diff --git a/back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 b/back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 new file mode 100644 index 0000000..0023567 Binary files /dev/null and b/back-to-the-future/flask_session/2940ea81618bc3b9313c8a0818f9f9e8 differ diff --git a/back-to-the-future/flask_session/2a5f27fae53f8a864398fcc856e04e90 b/back-to-the-future/flask_session/2a5f27fae53f8a864398fcc856e04e90 new file mode 100644 index 0000000..9451af7 Binary files /dev/null and b/back-to-the-future/flask_session/2a5f27fae53f8a864398fcc856e04e90 differ diff --git a/back-to-the-future/flask_session/2aeb371d8adeb94ded786e5bf923a3ef b/back-to-the-future/flask_session/2aeb371d8adeb94ded786e5bf923a3ef new file mode 100644 index 0000000..a95c739 Binary files /dev/null and b/back-to-the-future/flask_session/2aeb371d8adeb94ded786e5bf923a3ef differ diff --git a/back-to-the-future/flask_session/2bac0005df40528459d260e16fe6fb80 b/back-to-the-future/flask_session/2bac0005df40528459d260e16fe6fb80 new file mode 100644 index 0000000..ca0264e Binary files /dev/null and b/back-to-the-future/flask_session/2bac0005df40528459d260e16fe6fb80 differ diff --git a/back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 b/back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 new file mode 100644 index 0000000..5dab58a Binary files /dev/null and b/back-to-the-future/flask_session/2c2b79e3fa4a76558fec5886a8bcf220 differ diff --git a/back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 b/back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 new file mode 100644 index 0000000..d75773c Binary files /dev/null and b/back-to-the-future/flask_session/2c386f464fb69ba5b9535527e53a1136 differ diff --git a/back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 b/back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 new file mode 100644 index 0000000..6ea7e5f Binary files /dev/null and b/back-to-the-future/flask_session/2d46a4d5e411f544f3d308f41cc75a05 differ diff --git a/back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 b/back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 new file mode 100644 index 0000000..a31ea42 Binary files /dev/null and b/back-to-the-future/flask_session/2d8c6c66ee7c4a9f51f9b344f954d0b3 differ diff --git a/back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b b/back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b new file mode 100644 index 0000000..52b0916 Binary files /dev/null and b/back-to-the-future/flask_session/2f320eaf6c96a4bc8f5852b93ae1ff3b differ diff --git a/back-to-the-future/flask_session/2f85fc72a4cb0c8616ef7fa12ce8d540 b/back-to-the-future/flask_session/2f85fc72a4cb0c8616ef7fa12ce8d540 new file mode 100644 index 0000000..9a64861 Binary files /dev/null and b/back-to-the-future/flask_session/2f85fc72a4cb0c8616ef7fa12ce8d540 differ diff --git a/back-to-the-future/flask_session/2fd1a29c36876ebdafc41f35f5656a9e b/back-to-the-future/flask_session/2fd1a29c36876ebdafc41f35f5656a9e new file mode 100644 index 0000000..3d24b2b Binary files /dev/null and b/back-to-the-future/flask_session/2fd1a29c36876ebdafc41f35f5656a9e differ diff --git a/back-to-the-future/flask_session/300980f59c705be97d9ab183917839d5 b/back-to-the-future/flask_session/300980f59c705be97d9ab183917839d5 new file mode 100644 index 0000000..ee0f13d Binary files /dev/null and b/back-to-the-future/flask_session/300980f59c705be97d9ab183917839d5 differ diff --git a/back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 b/back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 new file mode 100644 index 0000000..4cc9ddf Binary files /dev/null and b/back-to-the-future/flask_session/30a4aea5a1b256f0c0910058991850a2 differ diff --git a/back-to-the-future/flask_session/30f0532e5c0e8ee9d9919b13b022acbd b/back-to-the-future/flask_session/30f0532e5c0e8ee9d9919b13b022acbd new file mode 100644 index 0000000..0f06fbf Binary files /dev/null and b/back-to-the-future/flask_session/30f0532e5c0e8ee9d9919b13b022acbd differ diff --git a/back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f b/back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f new file mode 100644 index 0000000..23547f2 Binary files /dev/null and b/back-to-the-future/flask_session/30f34c45eb7fef683df37d944322633f differ diff --git a/back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 b/back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 new file mode 100644 index 0000000..cddc418 Binary files /dev/null and b/back-to-the-future/flask_session/3104ce046559c1c253a800af12c11e64 differ diff --git a/back-to-the-future/flask_session/31868a74a62f39bf8e8c2f3d378710c7 b/back-to-the-future/flask_session/31868a74a62f39bf8e8c2f3d378710c7 new file mode 100644 index 0000000..5ce517a Binary files /dev/null and b/back-to-the-future/flask_session/31868a74a62f39bf8e8c2f3d378710c7 differ diff --git a/back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 b/back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 new file mode 100644 index 0000000..c04d7af Binary files /dev/null and b/back-to-the-future/flask_session/322c54936eb99d2eee4406c2495ac1f5 differ diff --git a/back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 b/back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 new file mode 100644 index 0000000..c98d02d Binary files /dev/null and b/back-to-the-future/flask_session/324b77917a59fd8c923e074f24fe00e5 differ diff --git a/back-to-the-future/flask_session/32f60d142583485078042e2210ad12cc b/back-to-the-future/flask_session/32f60d142583485078042e2210ad12cc new file mode 100644 index 0000000..632565e Binary files /dev/null and b/back-to-the-future/flask_session/32f60d142583485078042e2210ad12cc differ diff --git a/back-to-the-future/flask_session/3399486a02f05b92c673a40871d73091 b/back-to-the-future/flask_session/3399486a02f05b92c673a40871d73091 new file mode 100644 index 0000000..716f259 Binary files /dev/null and b/back-to-the-future/flask_session/3399486a02f05b92c673a40871d73091 differ diff --git a/back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 b/back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 new file mode 100644 index 0000000..5783354 Binary files /dev/null and b/back-to-the-future/flask_session/341041db96bd1ad1e7781a5be2fa0091 differ diff --git a/back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da b/back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da new file mode 100644 index 0000000..fe6ff3e Binary files /dev/null and b/back-to-the-future/flask_session/34ff82dc7a0ef493fa1869c893dca9da differ diff --git a/back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 b/back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 new file mode 100644 index 0000000..2c9be29 Binary files /dev/null and b/back-to-the-future/flask_session/3560f0c435443111efbf141078742f06 differ diff --git a/back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f b/back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f new file mode 100644 index 0000000..128e8fa Binary files /dev/null and b/back-to-the-future/flask_session/35c1bd6a211d52bdc6395e2bb660143f differ diff --git a/back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 b/back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 new file mode 100644 index 0000000..dde9f3e Binary files /dev/null and b/back-to-the-future/flask_session/35d4108dbd8fac5efa936ceae3778e69 differ diff --git a/back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f b/back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f new file mode 100644 index 0000000..47a1a8c Binary files /dev/null and b/back-to-the-future/flask_session/36319ada12c1c741080f25750d19d96f differ diff --git a/back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 b/back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 new file mode 100644 index 0000000..902ef66 Binary files /dev/null and b/back-to-the-future/flask_session/365ae5ec1d81f1a0e2d8e85fc19c7c73 differ diff --git a/back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 b/back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 new file mode 100644 index 0000000..73b09c2 Binary files /dev/null and b/back-to-the-future/flask_session/3952e9811cc447a49f1f7b36cf046cb4 differ diff --git a/back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b b/back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b new file mode 100644 index 0000000..ba9805d Binary files /dev/null and b/back-to-the-future/flask_session/39d6ad670b8f10ada9ba0fe9481d661b differ diff --git a/back-to-the-future/flask_session/3b726120e586c42ee5db4859cffd5e61 b/back-to-the-future/flask_session/3b726120e586c42ee5db4859cffd5e61 new file mode 100644 index 0000000..4c74961 Binary files /dev/null and b/back-to-the-future/flask_session/3b726120e586c42ee5db4859cffd5e61 differ diff --git a/back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba b/back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba new file mode 100644 index 0000000..a8ae658 Binary files /dev/null and b/back-to-the-future/flask_session/3b8ff83a8a50d3e0e3900805ecb3faba differ diff --git a/back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc b/back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc new file mode 100644 index 0000000..28b0a95 Binary files /dev/null and b/back-to-the-future/flask_session/3b9218f16c20b24822c1e7c2b21b2dbc differ diff --git a/back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 b/back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 new file mode 100644 index 0000000..6b499fc Binary files /dev/null and b/back-to-the-future/flask_session/3bb632bde3434d70741228eda0bdf763 differ diff --git a/back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 b/back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 new file mode 100644 index 0000000..1878ea7 Binary files /dev/null and b/back-to-the-future/flask_session/3c32e3388a87a84a095d0afbe80823e2 differ diff --git a/back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 b/back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 new file mode 100644 index 0000000..c9d0f96 Binary files /dev/null and b/back-to-the-future/flask_session/4045d29f0b79c1d08649341810340839 differ diff --git a/back-to-the-future/flask_session/4194f36392bf1754170d5fe415784bb6 b/back-to-the-future/flask_session/4194f36392bf1754170d5fe415784bb6 new file mode 100644 index 0000000..2de6801 Binary files /dev/null and b/back-to-the-future/flask_session/4194f36392bf1754170d5fe415784bb6 differ diff --git a/back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 b/back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 new file mode 100644 index 0000000..852d8f0 Binary files /dev/null and b/back-to-the-future/flask_session/41e7ceab99b36b9c6ddfceda67b23d86 differ diff --git a/back-to-the-future/flask_session/44e295cb48a46ba798a4deb74c1d51fe b/back-to-the-future/flask_session/44e295cb48a46ba798a4deb74c1d51fe new file mode 100644 index 0000000..a907750 Binary files /dev/null and b/back-to-the-future/flask_session/44e295cb48a46ba798a4deb74c1d51fe differ diff --git a/back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 b/back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 new file mode 100644 index 0000000..4389024 Binary files /dev/null and b/back-to-the-future/flask_session/44fecfba0dc706bae1979dd26541f996 differ diff --git a/back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b b/back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b new file mode 100644 index 0000000..a48d4e4 Binary files /dev/null and b/back-to-the-future/flask_session/4637adc8fcbadc7335a5db1afba82d5b differ diff --git a/back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d b/back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d new file mode 100644 index 0000000..78301b6 Binary files /dev/null and b/back-to-the-future/flask_session/46d7e4294b97ab96e98ec04a25c1079d differ diff --git a/back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 b/back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 new file mode 100644 index 0000000..1a4bfc3 Binary files /dev/null and b/back-to-the-future/flask_session/474f2efa7ab0b8ebdd5b31d0e04d8936 differ diff --git a/back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 b/back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 new file mode 100644 index 0000000..372274d Binary files /dev/null and b/back-to-the-future/flask_session/475265cc6b2f15d7876969341f9ecfe5 differ diff --git a/back-to-the-future/flask_session/475406c8bb6137367c32491d9b11e8b4 b/back-to-the-future/flask_session/475406c8bb6137367c32491d9b11e8b4 new file mode 100644 index 0000000..3e2ee13 Binary files /dev/null and b/back-to-the-future/flask_session/475406c8bb6137367c32491d9b11e8b4 differ diff --git a/back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f b/back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f new file mode 100644 index 0000000..db2296f Binary files /dev/null and b/back-to-the-future/flask_session/4881cccd9d4e554d12b3b4cb562e121f differ diff --git a/back-to-the-future/flask_session/4a2fdee53084fd9c9cefaba0b3f2aafa b/back-to-the-future/flask_session/4a2fdee53084fd9c9cefaba0b3f2aafa new file mode 100644 index 0000000..1c462d7 Binary files /dev/null and b/back-to-the-future/flask_session/4a2fdee53084fd9c9cefaba0b3f2aafa differ diff --git a/back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa b/back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa new file mode 100644 index 0000000..904c3d9 Binary files /dev/null and b/back-to-the-future/flask_session/4b4d9e68e4fce71f0456346365a32eaa differ diff --git a/back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 b/back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 new file mode 100644 index 0000000..6590cb1 Binary files /dev/null and b/back-to-the-future/flask_session/4cf826448fa3bd52099306ea9b466de5 differ diff --git a/back-to-the-future/flask_session/4d8ef0814c65793be382a2cf0bc877e2 b/back-to-the-future/flask_session/4d8ef0814c65793be382a2cf0bc877e2 new file mode 100644 index 0000000..bb0517e Binary files /dev/null and b/back-to-the-future/flask_session/4d8ef0814c65793be382a2cf0bc877e2 differ diff --git a/back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 b/back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 new file mode 100644 index 0000000..d4a4319 Binary files /dev/null and b/back-to-the-future/flask_session/4fc63499e023c5028c6a9da7d5480d60 differ diff --git a/back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 b/back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 new file mode 100644 index 0000000..d25026a Binary files /dev/null and b/back-to-the-future/flask_session/4ffef230349985069206288eb02d82b5 differ diff --git a/back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 b/back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 new file mode 100644 index 0000000..1ca7b7f Binary files /dev/null and b/back-to-the-future/flask_session/51cecbf8195bfc6a13e0da953bd48148 differ diff --git a/back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 b/back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 new file mode 100644 index 0000000..3256c64 Binary files /dev/null and b/back-to-the-future/flask_session/51eaea4bc081a86a1f3b45cb97d62cd2 differ diff --git a/back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b b/back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b new file mode 100644 index 0000000..f59a347 Binary files /dev/null and b/back-to-the-future/flask_session/52cdc5894b84ba73ce12a4e2eccc036b differ diff --git a/back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c b/back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c new file mode 100644 index 0000000..0d1f30e Binary files /dev/null and b/back-to-the-future/flask_session/535ea9247d222f784cbe0fc03b48253c differ diff --git a/back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 b/back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 new file mode 100644 index 0000000..12b8dec Binary files /dev/null and b/back-to-the-future/flask_session/53a2c58e148b94e301ec515a879fa4c0 differ diff --git a/back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 b/back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 new file mode 100644 index 0000000..4962914 Binary files /dev/null and b/back-to-the-future/flask_session/549ba9bf9c35c315878dea93d90b5258 differ diff --git a/back-to-the-future/flask_session/557c207c4a8f4aa12d0be3fb37f26c1b b/back-to-the-future/flask_session/557c207c4a8f4aa12d0be3fb37f26c1b new file mode 100644 index 0000000..6973803 Binary files /dev/null and b/back-to-the-future/flask_session/557c207c4a8f4aa12d0be3fb37f26c1b differ diff --git a/back-to-the-future/flask_session/5581e4f92bbbf541137bb9fd01e40138 b/back-to-the-future/flask_session/5581e4f92bbbf541137bb9fd01e40138 new file mode 100644 index 0000000..233d1b5 Binary files /dev/null and b/back-to-the-future/flask_session/5581e4f92bbbf541137bb9fd01e40138 differ diff --git a/back-to-the-future/flask_session/55d07cf56513f7b6dcf6720762cced16 b/back-to-the-future/flask_session/55d07cf56513f7b6dcf6720762cced16 new file mode 100644 index 0000000..ebb95ba Binary files /dev/null and b/back-to-the-future/flask_session/55d07cf56513f7b6dcf6720762cced16 differ diff --git a/back-to-the-future/flask_session/56c3c4879f2bddff9d00ef7e6275a697 b/back-to-the-future/flask_session/56c3c4879f2bddff9d00ef7e6275a697 new file mode 100644 index 0000000..4fab760 Binary files /dev/null and b/back-to-the-future/flask_session/56c3c4879f2bddff9d00ef7e6275a697 differ diff --git a/back-to-the-future/flask_session/58b7ac10ff62c14e1de4311b560754b8 b/back-to-the-future/flask_session/58b7ac10ff62c14e1de4311b560754b8 new file mode 100644 index 0000000..4ab2820 Binary files /dev/null and b/back-to-the-future/flask_session/58b7ac10ff62c14e1de4311b560754b8 differ diff --git a/back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d b/back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d new file mode 100644 index 0000000..b5f41f5 Binary files /dev/null and b/back-to-the-future/flask_session/590bd52c75abd2f0d3639406b0f1c30d differ diff --git a/back-to-the-future/flask_session/593c688f858bd03766e90a3e9a2b282a b/back-to-the-future/flask_session/593c688f858bd03766e90a3e9a2b282a new file mode 100644 index 0000000..4dfebdd Binary files /dev/null and b/back-to-the-future/flask_session/593c688f858bd03766e90a3e9a2b282a differ diff --git a/back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b b/back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b new file mode 100644 index 0000000..3e3b21b Binary files /dev/null and b/back-to-the-future/flask_session/599a13187cf3905bd83c51a88e15051b differ diff --git a/back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 b/back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 new file mode 100644 index 0000000..895350b Binary files /dev/null and b/back-to-the-future/flask_session/5a348ab337dd4e8e7c4e4cea1f353ff7 differ diff --git a/back-to-the-future/flask_session/5aed18302d608521438e3a868452d8d8 b/back-to-the-future/flask_session/5aed18302d608521438e3a868452d8d8 new file mode 100644 index 0000000..5cddd86 Binary files /dev/null and b/back-to-the-future/flask_session/5aed18302d608521438e3a868452d8d8 differ diff --git a/back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 b/back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 new file mode 100644 index 0000000..17c5326 Binary files /dev/null and b/back-to-the-future/flask_session/5b424fd21abff51f1e624a85d51b98d8 differ diff --git a/back-to-the-future/flask_session/5ba2f545b95750b6bfe1a51fab7fb873 b/back-to-the-future/flask_session/5ba2f545b95750b6bfe1a51fab7fb873 new file mode 100644 index 0000000..8eb5922 Binary files /dev/null and b/back-to-the-future/flask_session/5ba2f545b95750b6bfe1a51fab7fb873 differ diff --git a/back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 b/back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 new file mode 100644 index 0000000..90e7cd0 Binary files /dev/null and b/back-to-the-future/flask_session/5d51a79f68d6250ed5b2f541cad26233 differ diff --git a/back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e b/back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e new file mode 100644 index 0000000..bb7972c Binary files /dev/null and b/back-to-the-future/flask_session/5d651b3090eeb753c83660ab85f8f92e differ diff --git a/back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e b/back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e new file mode 100644 index 0000000..a7cbb67 Binary files /dev/null and b/back-to-the-future/flask_session/5da1f95513e0a30f161b44e6a72ccd9e differ diff --git a/back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 b/back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 new file mode 100644 index 0000000..c801723 Binary files /dev/null and b/back-to-the-future/flask_session/5e0b5119963e598a12b2e8d11d826f87 differ diff --git a/back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 b/back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 new file mode 100644 index 0000000..1b11f4f Binary files /dev/null and b/back-to-the-future/flask_session/5e12e69a160901f3ba1f2aa5d61e6c55 differ diff --git a/back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e b/back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e new file mode 100644 index 0000000..2f76604 Binary files /dev/null and b/back-to-the-future/flask_session/5e3ccf08d66b4f01faa3310cd9c2fa7e differ diff --git a/back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 b/back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 new file mode 100644 index 0000000..92e4cc6 Binary files /dev/null and b/back-to-the-future/flask_session/5e650f50f36a1ec55b0481b8cd59cc16 differ diff --git a/back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 b/back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 new file mode 100644 index 0000000..a106e17 Binary files /dev/null and b/back-to-the-future/flask_session/5ed3806c4c1423f7fe4b95ff8ba7b051 differ diff --git a/back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 b/back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 new file mode 100644 index 0000000..704615a Binary files /dev/null and b/back-to-the-future/flask_session/5f9f092c20daaadd6e258cc43af81769 differ diff --git a/back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c b/back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c new file mode 100644 index 0000000..809d217 Binary files /dev/null and b/back-to-the-future/flask_session/5fb994cf3f73a61d50f371985221734c differ diff --git a/back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a b/back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a new file mode 100644 index 0000000..eb93fbb Binary files /dev/null and b/back-to-the-future/flask_session/603c3b0f06af7b425b5efd8e9e3b745a differ diff --git a/back-to-the-future/flask_session/60cfd184618711ba978b7e1b9f31a2b2 b/back-to-the-future/flask_session/60cfd184618711ba978b7e1b9f31a2b2 new file mode 100644 index 0000000..2c20d14 Binary files /dev/null and b/back-to-the-future/flask_session/60cfd184618711ba978b7e1b9f31a2b2 differ diff --git a/back-to-the-future/flask_session/6161ef45609b99d43b48b6b7ca147cfc b/back-to-the-future/flask_session/6161ef45609b99d43b48b6b7ca147cfc new file mode 100644 index 0000000..4744dcf Binary files /dev/null and b/back-to-the-future/flask_session/6161ef45609b99d43b48b6b7ca147cfc differ diff --git a/back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 b/back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 new file mode 100644 index 0000000..8730363 Binary files /dev/null and b/back-to-the-future/flask_session/618643ea4d02452e823ec6df41f52bb0 differ diff --git a/back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 b/back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 new file mode 100644 index 0000000..121e45b Binary files /dev/null and b/back-to-the-future/flask_session/6211c8e9cd4e37476e3ae51a811e6b33 differ diff --git a/back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea b/back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea new file mode 100644 index 0000000..41fbbaa Binary files /dev/null and b/back-to-the-future/flask_session/62f15f1e29ed09ceeec0a334371c98ea differ diff --git a/back-to-the-future/flask_session/64eb52dbd0218e7e9211367cb1a370f0 b/back-to-the-future/flask_session/64eb52dbd0218e7e9211367cb1a370f0 new file mode 100644 index 0000000..355832e Binary files /dev/null and b/back-to-the-future/flask_session/64eb52dbd0218e7e9211367cb1a370f0 differ diff --git a/back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 b/back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 new file mode 100644 index 0000000..f4984e5 Binary files /dev/null and b/back-to-the-future/flask_session/655a2ab36539350da3457188ca1b7936 differ diff --git a/back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 b/back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 new file mode 100644 index 0000000..8c3a392 Binary files /dev/null and b/back-to-the-future/flask_session/658ef25095bee94c521ccb986c8605a0 differ diff --git a/back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 b/back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 new file mode 100644 index 0000000..e2a733e Binary files /dev/null and b/back-to-the-future/flask_session/66284e62f56cd4899ad8d91118241103 differ diff --git a/back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 b/back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 new file mode 100644 index 0000000..88fb3f1 Binary files /dev/null and b/back-to-the-future/flask_session/66943cb90e86f8a416fd87c01c338159 differ diff --git a/back-to-the-future/flask_session/66946c8ad5068199b1d26cf3c6775eff b/back-to-the-future/flask_session/66946c8ad5068199b1d26cf3c6775eff new file mode 100644 index 0000000..33d36c6 Binary files /dev/null and b/back-to-the-future/flask_session/66946c8ad5068199b1d26cf3c6775eff differ diff --git a/back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea b/back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea new file mode 100644 index 0000000..cb6ed8a Binary files /dev/null and b/back-to-the-future/flask_session/680932858c7c7bad9b25a0b904b14cea differ diff --git a/back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de b/back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de new file mode 100644 index 0000000..a8c996f Binary files /dev/null and b/back-to-the-future/flask_session/681fac0a6daf110c6de16ea27eed86de differ diff --git a/back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 b/back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 new file mode 100644 index 0000000..8890a5d Binary files /dev/null and b/back-to-the-future/flask_session/68e7a49a02a4835ef6c55562b07dbee2 differ diff --git a/back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 b/back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 new file mode 100644 index 0000000..0ae83e8 Binary files /dev/null and b/back-to-the-future/flask_session/694f624b9ac56068b2b10be0b73cbe88 differ diff --git a/back-to-the-future/flask_session/6a2976642738f63614c8f3bf4707f895 b/back-to-the-future/flask_session/6a2976642738f63614c8f3bf4707f895 new file mode 100644 index 0000000..f785f8c Binary files /dev/null and b/back-to-the-future/flask_session/6a2976642738f63614c8f3bf4707f895 differ diff --git a/back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 b/back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 new file mode 100644 index 0000000..9e66b7e Binary files /dev/null and b/back-to-the-future/flask_session/6cd96cb30ee9d148980fe470ad234108 differ diff --git a/back-to-the-future/flask_session/6f672b111009ff2b0f581d15fe590c40 b/back-to-the-future/flask_session/6f672b111009ff2b0f581d15fe590c40 new file mode 100644 index 0000000..79852a1 Binary files /dev/null and b/back-to-the-future/flask_session/6f672b111009ff2b0f581d15fe590c40 differ diff --git a/back-to-the-future/flask_session/6f6a6c916e873716387a15a5b65b9bdd b/back-to-the-future/flask_session/6f6a6c916e873716387a15a5b65b9bdd new file mode 100644 index 0000000..ce70d87 Binary files /dev/null and b/back-to-the-future/flask_session/6f6a6c916e873716387a15a5b65b9bdd differ diff --git a/back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b b/back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b new file mode 100644 index 0000000..355861a Binary files /dev/null and b/back-to-the-future/flask_session/6ffad316904ff85580781e6de604193b differ diff --git a/back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 b/back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 new file mode 100644 index 0000000..5e005f1 Binary files /dev/null and b/back-to-the-future/flask_session/7104cf420d98e3ad5d4a7ec2774bf6d8 differ diff --git a/back-to-the-future/flask_session/72c1be3fb528c9dad754a11c38157cb2 b/back-to-the-future/flask_session/72c1be3fb528c9dad754a11c38157cb2 new file mode 100644 index 0000000..9de41f1 Binary files /dev/null and b/back-to-the-future/flask_session/72c1be3fb528c9dad754a11c38157cb2 differ diff --git a/back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 b/back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 new file mode 100644 index 0000000..677b567 Binary files /dev/null and b/back-to-the-future/flask_session/7379c7079d5b3f39a728ca4db1efc909 differ diff --git a/back-to-the-future/flask_session/73b4f5158c17b7856f27d4223342263b b/back-to-the-future/flask_session/73b4f5158c17b7856f27d4223342263b new file mode 100644 index 0000000..69b4a89 Binary files /dev/null and b/back-to-the-future/flask_session/73b4f5158c17b7856f27d4223342263b differ diff --git a/back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 b/back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 new file mode 100644 index 0000000..36eb8f4 Binary files /dev/null and b/back-to-the-future/flask_session/73d90008cfe88e6bcbd7d981ef97ce73 differ diff --git a/back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 b/back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 new file mode 100644 index 0000000..722c6c0 Binary files /dev/null and b/back-to-the-future/flask_session/75460bf321af4f464430c25b892c6401 differ diff --git a/back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b b/back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b new file mode 100644 index 0000000..78dcdf5 Binary files /dev/null and b/back-to-the-future/flask_session/75b9032eb9a907c8bdf10a742869b93b differ diff --git a/back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 b/back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 new file mode 100644 index 0000000..b9556eb Binary files /dev/null and b/back-to-the-future/flask_session/75e30eaa64fbc5c30aaafd1f6b5a1ec9 differ diff --git a/back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d b/back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d new file mode 100644 index 0000000..a1ca145 Binary files /dev/null and b/back-to-the-future/flask_session/7611e8459b1c57c139dd815af9c38a6d differ diff --git a/back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 b/back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 new file mode 100644 index 0000000..4af802a Binary files /dev/null and b/back-to-the-future/flask_session/7620eeef9aa9bb45aa4105100c2aba28 differ diff --git a/back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d b/back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d new file mode 100644 index 0000000..e31221f Binary files /dev/null and b/back-to-the-future/flask_session/774d132d942cc4e1df0a9b65f56d989d differ diff --git a/back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa b/back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa new file mode 100644 index 0000000..290fe25 Binary files /dev/null and b/back-to-the-future/flask_session/7b351c93040332dfa14d20943ab1fffa differ diff --git a/back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 b/back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 new file mode 100644 index 0000000..cf837ec Binary files /dev/null and b/back-to-the-future/flask_session/7b54bbd31475cdecc2ac6483b3d3d2d8 differ diff --git a/back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 b/back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 new file mode 100644 index 0000000..0c144e3 Binary files /dev/null and b/back-to-the-future/flask_session/7c0aa187bd2b31ed70f027ba782fe016 differ diff --git a/back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 b/back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 new file mode 100644 index 0000000..6e87281 Binary files /dev/null and b/back-to-the-future/flask_session/7c5ea86c5f948df7d1b3a080ed06a534 differ diff --git a/back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a b/back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a new file mode 100644 index 0000000..59ba316 Binary files /dev/null and b/back-to-the-future/flask_session/7c7acbc49ba72490e28e859d01efef4a differ diff --git a/back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 b/back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 new file mode 100644 index 0000000..c35118f Binary files /dev/null and b/back-to-the-future/flask_session/7cf9fbc07f681f6f75da84738dfe4855 differ diff --git a/back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf b/back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf new file mode 100644 index 0000000..b2098ac Binary files /dev/null and b/back-to-the-future/flask_session/7d04354d3f2607804cc2a300edb151bf differ diff --git a/back-to-the-future/flask_session/7e06e982a4bb60d5c2dcca77c6cda329 b/back-to-the-future/flask_session/7e06e982a4bb60d5c2dcca77c6cda329 new file mode 100644 index 0000000..fd7374b Binary files /dev/null and b/back-to-the-future/flask_session/7e06e982a4bb60d5c2dcca77c6cda329 differ diff --git a/back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 b/back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 new file mode 100644 index 0000000..47eeb03 Binary files /dev/null and b/back-to-the-future/flask_session/7fec0913063560cd930414cab2393246 differ diff --git a/back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 b/back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 new file mode 100644 index 0000000..07cb220 Binary files /dev/null and b/back-to-the-future/flask_session/80261ed5475b925955fd4baddcb851e1 differ diff --git a/back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 b/back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 new file mode 100644 index 0000000..82e2e74 Binary files /dev/null and b/back-to-the-future/flask_session/8191d002f3140fa7d644547d5d095055 differ diff --git a/back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e b/back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e new file mode 100644 index 0000000..0e5e8cd Binary files /dev/null and b/back-to-the-future/flask_session/81cc7626288f9a804b06b66307b37b3e differ diff --git a/back-to-the-future/flask_session/8360be0b64a48671598a410327283aea b/back-to-the-future/flask_session/8360be0b64a48671598a410327283aea new file mode 100644 index 0000000..deb4035 Binary files /dev/null and b/back-to-the-future/flask_session/8360be0b64a48671598a410327283aea differ diff --git a/back-to-the-future/flask_session/845556a2734c30e0d96b7bdfa0a82d9f b/back-to-the-future/flask_session/845556a2734c30e0d96b7bdfa0a82d9f new file mode 100644 index 0000000..1fb52e2 Binary files /dev/null and b/back-to-the-future/flask_session/845556a2734c30e0d96b7bdfa0a82d9f differ diff --git a/back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 b/back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 new file mode 100644 index 0000000..071e0bf Binary files /dev/null and b/back-to-the-future/flask_session/846667689ca0fd8add512ce55c04fa72 differ diff --git a/back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 b/back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 new file mode 100644 index 0000000..5897871 Binary files /dev/null and b/back-to-the-future/flask_session/8487b52e9db2efa57f688178a32f1280 differ diff --git a/back-to-the-future/flask_session/8502fc6e0df4d9fc03abcd552c1bf898 b/back-to-the-future/flask_session/8502fc6e0df4d9fc03abcd552c1bf898 new file mode 100644 index 0000000..def6d69 Binary files /dev/null and b/back-to-the-future/flask_session/8502fc6e0df4d9fc03abcd552c1bf898 differ diff --git a/back-to-the-future/flask_session/86524c3023c21547b5ece1e90b3acfc3 b/back-to-the-future/flask_session/86524c3023c21547b5ece1e90b3acfc3 new file mode 100644 index 0000000..29e064a Binary files /dev/null and b/back-to-the-future/flask_session/86524c3023c21547b5ece1e90b3acfc3 differ diff --git a/back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 b/back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 new file mode 100644 index 0000000..30736ac Binary files /dev/null and b/back-to-the-future/flask_session/8735ce113f7ae5b512f09140a41870d5 differ diff --git a/back-to-the-future/flask_session/893d4ff49053c750ae186c4ca8b0e913 b/back-to-the-future/flask_session/893d4ff49053c750ae186c4ca8b0e913 new file mode 100644 index 0000000..489a7ef Binary files /dev/null and b/back-to-the-future/flask_session/893d4ff49053c750ae186c4ca8b0e913 differ diff --git a/back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 b/back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 new file mode 100644 index 0000000..9995320 Binary files /dev/null and b/back-to-the-future/flask_session/8975db8d69782ad129a121656c516c32 differ diff --git a/back-to-the-future/flask_session/89ae79a7f847f2aed1dec02434721beb b/back-to-the-future/flask_session/89ae79a7f847f2aed1dec02434721beb new file mode 100644 index 0000000..acbf007 Binary files /dev/null and b/back-to-the-future/flask_session/89ae79a7f847f2aed1dec02434721beb differ diff --git a/back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 b/back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 new file mode 100644 index 0000000..9db4931 Binary files /dev/null and b/back-to-the-future/flask_session/89ccf44a4bfcbe8d6334014843788840 differ diff --git a/back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 b/back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 new file mode 100644 index 0000000..48f32b0 Binary files /dev/null and b/back-to-the-future/flask_session/8b756f4b7369e6ebe3f9878cc3f84735 differ diff --git a/back-to-the-future/flask_session/8b85aa662e6655fcefdc9d802d6379b4 b/back-to-the-future/flask_session/8b85aa662e6655fcefdc9d802d6379b4 new file mode 100644 index 0000000..15435a1 Binary files /dev/null and b/back-to-the-future/flask_session/8b85aa662e6655fcefdc9d802d6379b4 differ diff --git a/back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 b/back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 new file mode 100644 index 0000000..1dab9f8 Binary files /dev/null and b/back-to-the-future/flask_session/8d01680ee416d58a97dba83e6fd6f876 differ diff --git a/back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e b/back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e new file mode 100644 index 0000000..01302ff Binary files /dev/null and b/back-to-the-future/flask_session/8dc34737beb8c62cf2ee397263f4884e differ diff --git a/back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 b/back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 new file mode 100644 index 0000000..c011575 Binary files /dev/null and b/back-to-the-future/flask_session/8e3397bf2f65f7d28b85af8059742f08 differ diff --git a/back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b b/back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b new file mode 100644 index 0000000..1cf99b8 Binary files /dev/null and b/back-to-the-future/flask_session/8e944ccdcedd5715279e25e60964639b differ diff --git a/back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 b/back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 new file mode 100644 index 0000000..5e4e7f4 Binary files /dev/null and b/back-to-the-future/flask_session/8f24ad0909b3832bc1175d87e6d6dd67 differ diff --git a/back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 b/back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 new file mode 100644 index 0000000..37aa7d4 Binary files /dev/null and b/back-to-the-future/flask_session/9022c917e9bb52f7a3f9df245ece4959 differ diff --git a/back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 b/back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 new file mode 100644 index 0000000..20e7165 Binary files /dev/null and b/back-to-the-future/flask_session/920f185c31832f3643f275c94b6b6436 differ diff --git a/back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e b/back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e new file mode 100644 index 0000000..15f2340 Binary files /dev/null and b/back-to-the-future/flask_session/93cfdcd1af2e31356ba3e4c797c7180e differ diff --git a/back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 b/back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 new file mode 100644 index 0000000..4ca7568 Binary files /dev/null and b/back-to-the-future/flask_session/9406fe9ae36b2cb3db15fcedf29d8992 differ diff --git a/back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 b/back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 new file mode 100644 index 0000000..76a7d97 Binary files /dev/null and b/back-to-the-future/flask_session/954589c7959251139379e24a16c9e437 differ diff --git a/back-to-the-future/flask_session/97178654b5c0c9ca132ba2720ad4bd0a b/back-to-the-future/flask_session/97178654b5c0c9ca132ba2720ad4bd0a new file mode 100644 index 0000000..c0bf26e Binary files /dev/null and b/back-to-the-future/flask_session/97178654b5c0c9ca132ba2720ad4bd0a differ diff --git a/back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 b/back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 new file mode 100644 index 0000000..f469bd5 Binary files /dev/null and b/back-to-the-future/flask_session/9764607bd0d51e03d21bc4f73d7a3fb0 differ diff --git a/back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a b/back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a new file mode 100644 index 0000000..79c7d09 Binary files /dev/null and b/back-to-the-future/flask_session/982cc845e05dfd464f333f7d16d55f3a differ diff --git a/back-to-the-future/flask_session/984f06e0ef3f2b3c55d9fbbe3cbd4811 b/back-to-the-future/flask_session/984f06e0ef3f2b3c55d9fbbe3cbd4811 new file mode 100644 index 0000000..aec0415 Binary files /dev/null and b/back-to-the-future/flask_session/984f06e0ef3f2b3c55d9fbbe3cbd4811 differ diff --git a/back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e b/back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e new file mode 100644 index 0000000..5e0f313 Binary files /dev/null and b/back-to-the-future/flask_session/98e47b81eb2790747fd6a39be77f858e differ diff --git a/back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 b/back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 new file mode 100644 index 0000000..8c60d41 Binary files /dev/null and b/back-to-the-future/flask_session/990b8182389a471712fd4449c602f1a5 differ diff --git a/back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c b/back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c new file mode 100644 index 0000000..d9b171c Binary files /dev/null and b/back-to-the-future/flask_session/9924990b4546e6196feae2e41bcded8c differ diff --git a/back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 b/back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 new file mode 100644 index 0000000..493b38f Binary files /dev/null and b/back-to-the-future/flask_session/9a15c035a8938bbaf7ee32ac1aa45f15 differ diff --git a/back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 b/back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 new file mode 100644 index 0000000..1dcdb2a Binary files /dev/null and b/back-to-the-future/flask_session/9e013599d6b47a15db72409a1629f594 differ diff --git a/back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 b/back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 new file mode 100644 index 0000000..84da51b Binary files /dev/null and b/back-to-the-future/flask_session/9e57e62465a479e679a6adbd4b958157 differ diff --git a/back-to-the-future/flask_session/9ea35b83ec748d413674ea8e6ca87ccb b/back-to-the-future/flask_session/9ea35b83ec748d413674ea8e6ca87ccb new file mode 100644 index 0000000..2029372 Binary files /dev/null and b/back-to-the-future/flask_session/9ea35b83ec748d413674ea8e6ca87ccb differ diff --git a/back-to-the-future/flask_session/9fc417b4957fde835b5e7b64b5104ac8 b/back-to-the-future/flask_session/9fc417b4957fde835b5e7b64b5104ac8 new file mode 100644 index 0000000..35f2a2b Binary files /dev/null and b/back-to-the-future/flask_session/9fc417b4957fde835b5e7b64b5104ac8 differ diff --git a/back-to-the-future/flask_session/a00a363e74e8854d89553aedcabb4c6a b/back-to-the-future/flask_session/a00a363e74e8854d89553aedcabb4c6a new file mode 100644 index 0000000..5b580fc Binary files /dev/null and b/back-to-the-future/flask_session/a00a363e74e8854d89553aedcabb4c6a differ diff --git a/back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 b/back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 new file mode 100644 index 0000000..22fd075 Binary files /dev/null and b/back-to-the-future/flask_session/a07fed5d740a8dd02ef4928198e01133 differ diff --git a/back-to-the-future/flask_session/a0bf9254a3236ad8dac9f6675055541d b/back-to-the-future/flask_session/a0bf9254a3236ad8dac9f6675055541d new file mode 100644 index 0000000..f22acba Binary files /dev/null and b/back-to-the-future/flask_session/a0bf9254a3236ad8dac9f6675055541d differ diff --git a/back-to-the-future/flask_session/a0e8349de3483ae232069dbfc1396c7c b/back-to-the-future/flask_session/a0e8349de3483ae232069dbfc1396c7c new file mode 100644 index 0000000..87025fd Binary files /dev/null and b/back-to-the-future/flask_session/a0e8349de3483ae232069dbfc1396c7c differ diff --git a/back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 b/back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 new file mode 100644 index 0000000..435571d Binary files /dev/null and b/back-to-the-future/flask_session/a101e31a62c14e8ea2cf4c779e1b7d37 differ diff --git a/back-to-the-future/flask_session/a22a2e117a8fe7f9a97f845528859ed0 b/back-to-the-future/flask_session/a22a2e117a8fe7f9a97f845528859ed0 new file mode 100644 index 0000000..12876ac Binary files /dev/null and b/back-to-the-future/flask_session/a22a2e117a8fe7f9a97f845528859ed0 differ diff --git a/back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 b/back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 new file mode 100644 index 0000000..7125896 Binary files /dev/null and b/back-to-the-future/flask_session/a348d839170ede14f17edd94e2f166a0 differ diff --git a/back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa b/back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa new file mode 100644 index 0000000..8bcc523 Binary files /dev/null and b/back-to-the-future/flask_session/a3d5bcca8210816c93aa4c61352532aa differ diff --git a/back-to-the-future/flask_session/a56aa0344508a51bd93a4f3ea8d6c30e b/back-to-the-future/flask_session/a56aa0344508a51bd93a4f3ea8d6c30e new file mode 100644 index 0000000..1e0976c Binary files /dev/null and b/back-to-the-future/flask_session/a56aa0344508a51bd93a4f3ea8d6c30e differ diff --git a/back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 b/back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 new file mode 100644 index 0000000..1230465 Binary files /dev/null and b/back-to-the-future/flask_session/a57b6e892f4830587aea495552784ed9 differ diff --git a/back-to-the-future/flask_session/a5a7c21278a12837bd88b87302fe68a7 b/back-to-the-future/flask_session/a5a7c21278a12837bd88b87302fe68a7 new file mode 100644 index 0000000..d15aca7 Binary files /dev/null and b/back-to-the-future/flask_session/a5a7c21278a12837bd88b87302fe68a7 differ diff --git a/back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc b/back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc new file mode 100644 index 0000000..2509123 Binary files /dev/null and b/back-to-the-future/flask_session/a5e8f792a5f0fdcdf5f666a1d14a23bc differ diff --git a/back-to-the-future/flask_session/a803d35caa6bdd7e02955a7bd7319d28 b/back-to-the-future/flask_session/a803d35caa6bdd7e02955a7bd7319d28 new file mode 100644 index 0000000..a51d384 Binary files /dev/null and b/back-to-the-future/flask_session/a803d35caa6bdd7e02955a7bd7319d28 differ diff --git a/back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a b/back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a new file mode 100644 index 0000000..a93ba7e Binary files /dev/null and b/back-to-the-future/flask_session/a8417dbcc14d9a8cf376b5d6ac2be10a differ diff --git a/back-to-the-future/flask_session/a86aa5afcb0a6f305aa8502781d96fcb b/back-to-the-future/flask_session/a86aa5afcb0a6f305aa8502781d96fcb new file mode 100644 index 0000000..ac9bfc0 Binary files /dev/null and b/back-to-the-future/flask_session/a86aa5afcb0a6f305aa8502781d96fcb differ diff --git a/back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 b/back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 new file mode 100644 index 0000000..ebf218a Binary files /dev/null and b/back-to-the-future/flask_session/a97a1ab003cda1e66e80df2a97f4e4c8 differ diff --git a/back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 b/back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 new file mode 100644 index 0000000..26bf9df Binary files /dev/null and b/back-to-the-future/flask_session/a99e725d1a5105e4330dbb2ab295b044 differ diff --git a/back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 b/back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 new file mode 100644 index 0000000..6f56c81 Binary files /dev/null and b/back-to-the-future/flask_session/a9dc030de1ace0b44370bee19e7acc70 differ diff --git a/back-to-the-future/flask_session/aa774380b6cfedcacd5229d8d55de6ea b/back-to-the-future/flask_session/aa774380b6cfedcacd5229d8d55de6ea new file mode 100644 index 0000000..9c6d607 Binary files /dev/null and b/back-to-the-future/flask_session/aa774380b6cfedcacd5229d8d55de6ea differ diff --git a/back-to-the-future/flask_session/aacf73f04458fb0cac639324f8d23ef9 b/back-to-the-future/flask_session/aacf73f04458fb0cac639324f8d23ef9 new file mode 100644 index 0000000..6ecdad7 Binary files /dev/null and b/back-to-the-future/flask_session/aacf73f04458fb0cac639324f8d23ef9 differ diff --git a/back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 b/back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 new file mode 100644 index 0000000..75a0e29 Binary files /dev/null and b/back-to-the-future/flask_session/ad1354ac688b6e7cb3d324495b7f5eb2 differ diff --git a/back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 b/back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 new file mode 100644 index 0000000..1e63090 Binary files /dev/null and b/back-to-the-future/flask_session/ad16b66739c9bbfbf32c3130f98dd0a7 differ diff --git a/back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 b/back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 new file mode 100644 index 0000000..7bfc587 Binary files /dev/null and b/back-to-the-future/flask_session/ad99f6117878482ab7106b4d974cfe90 differ diff --git a/back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd b/back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd new file mode 100644 index 0000000..3ced8cc Binary files /dev/null and b/back-to-the-future/flask_session/add69d43e0c9c22cb6ae3f24658b21cd differ diff --git a/back-to-the-future/flask_session/af23a5dd9dbbe86d6cae6ca8a95a94c9 b/back-to-the-future/flask_session/af23a5dd9dbbe86d6cae6ca8a95a94c9 new file mode 100644 index 0000000..322e890 Binary files /dev/null and b/back-to-the-future/flask_session/af23a5dd9dbbe86d6cae6ca8a95a94c9 differ diff --git a/back-to-the-future/flask_session/afd84e1511d5e9e36607751cf7b7ac96 b/back-to-the-future/flask_session/afd84e1511d5e9e36607751cf7b7ac96 new file mode 100644 index 0000000..1a3df7b Binary files /dev/null and b/back-to-the-future/flask_session/afd84e1511d5e9e36607751cf7b7ac96 differ diff --git a/back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb b/back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb new file mode 100644 index 0000000..56be671 Binary files /dev/null and b/back-to-the-future/flask_session/afe1ec12fb39790665014610669101bb differ diff --git a/back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 b/back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 new file mode 100644 index 0000000..c97bc87 Binary files /dev/null and b/back-to-the-future/flask_session/b05afd0b1ba046e6e56dfb91cade5852 differ diff --git a/back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f b/back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f new file mode 100644 index 0000000..010d047 Binary files /dev/null and b/back-to-the-future/flask_session/b1247ef5153c8cb20af6eaa532c4e53f differ diff --git a/back-to-the-future/flask_session/b34f7207987081570979b3c3bbc6ae2f b/back-to-the-future/flask_session/b34f7207987081570979b3c3bbc6ae2f new file mode 100644 index 0000000..9eaff0d Binary files /dev/null and b/back-to-the-future/flask_session/b34f7207987081570979b3c3bbc6ae2f differ diff --git a/back-to-the-future/flask_session/b593f82fb66d006980e8a43a0417a1ef b/back-to-the-future/flask_session/b593f82fb66d006980e8a43a0417a1ef new file mode 100644 index 0000000..5e6d765 Binary files /dev/null and b/back-to-the-future/flask_session/b593f82fb66d006980e8a43a0417a1ef differ diff --git a/back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b b/back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b new file mode 100644 index 0000000..a15a02f Binary files /dev/null and b/back-to-the-future/flask_session/b5e3b8a6b694614c74fa55892ec7831b differ diff --git a/back-to-the-future/flask_session/b61f47d48cfde46dc72a64c6ff49259b b/back-to-the-future/flask_session/b61f47d48cfde46dc72a64c6ff49259b new file mode 100644 index 0000000..a1f8c8a Binary files /dev/null and b/back-to-the-future/flask_session/b61f47d48cfde46dc72a64c6ff49259b differ diff --git a/back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e b/back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e new file mode 100644 index 0000000..c9e6458 Binary files /dev/null and b/back-to-the-future/flask_session/b775978d6a3936c4100e344e8378371e differ diff --git a/back-to-the-future/flask_session/b77f6ebf9bf330d992f7fcc42ad3eb80 b/back-to-the-future/flask_session/b77f6ebf9bf330d992f7fcc42ad3eb80 new file mode 100644 index 0000000..c9f53fd Binary files /dev/null and b/back-to-the-future/flask_session/b77f6ebf9bf330d992f7fcc42ad3eb80 differ diff --git a/back-to-the-future/flask_session/b79918f57d6585431b357364a047b2fb b/back-to-the-future/flask_session/b79918f57d6585431b357364a047b2fb new file mode 100644 index 0000000..1a508b0 Binary files /dev/null and b/back-to-the-future/flask_session/b79918f57d6585431b357364a047b2fb differ diff --git a/back-to-the-future/flask_session/b7fa05ef1c055c8721a0844fa2f9c517 b/back-to-the-future/flask_session/b7fa05ef1c055c8721a0844fa2f9c517 new file mode 100644 index 0000000..08e87b6 Binary files /dev/null and b/back-to-the-future/flask_session/b7fa05ef1c055c8721a0844fa2f9c517 differ diff --git a/back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 b/back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 new file mode 100644 index 0000000..a8dbdce Binary files /dev/null and b/back-to-the-future/flask_session/b807e74d42b1d517c52e3a34da1fc725 differ diff --git a/back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b b/back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b new file mode 100644 index 0000000..9ef2849 Binary files /dev/null and b/back-to-the-future/flask_session/b880a4c620be6a758aa72e4fac35b79b differ diff --git a/back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 b/back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 new file mode 100644 index 0000000..3880eba Binary files /dev/null and b/back-to-the-future/flask_session/b90531b031af291fc09f3b47f35d1871 differ diff --git a/back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 b/back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 new file mode 100644 index 0000000..2004e05 Binary files /dev/null and b/back-to-the-future/flask_session/b9400bb738c7fb91a7635749b053a137 differ diff --git a/back-to-the-future/flask_session/ba501d97a8ebd9381fa271b3ab0d7697 b/back-to-the-future/flask_session/ba501d97a8ebd9381fa271b3ab0d7697 new file mode 100644 index 0000000..4604925 Binary files /dev/null and b/back-to-the-future/flask_session/ba501d97a8ebd9381fa271b3ab0d7697 differ diff --git a/back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b b/back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b new file mode 100644 index 0000000..3e6eac0 Binary files /dev/null and b/back-to-the-future/flask_session/bb5f6cf3892f52c07e415dc25f8f101b differ diff --git a/back-to-the-future/flask_session/bb8d2676fc45b286c0960ab707864605 b/back-to-the-future/flask_session/bb8d2676fc45b286c0960ab707864605 new file mode 100644 index 0000000..195bc35 Binary files /dev/null and b/back-to-the-future/flask_session/bb8d2676fc45b286c0960ab707864605 differ diff --git a/back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 b/back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 new file mode 100644 index 0000000..9fe1cd8 Binary files /dev/null and b/back-to-the-future/flask_session/bc7f8eea85fde0dab7441656a0720464 differ diff --git a/back-to-the-future/flask_session/bd172c6f4b31759dec337e178368e06c b/back-to-the-future/flask_session/bd172c6f4b31759dec337e178368e06c new file mode 100644 index 0000000..dbc56a8 Binary files /dev/null and b/back-to-the-future/flask_session/bd172c6f4b31759dec337e178368e06c differ diff --git a/back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 b/back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 new file mode 100644 index 0000000..ca57fb7 Binary files /dev/null and b/back-to-the-future/flask_session/bd3c4e53cec3fc00e19f9aa86d41cd67 differ diff --git a/back-to-the-future/flask_session/bf5fe566688bf3064500b3385ebbecc2 b/back-to-the-future/flask_session/bf5fe566688bf3064500b3385ebbecc2 new file mode 100644 index 0000000..ada22de Binary files /dev/null and b/back-to-the-future/flask_session/bf5fe566688bf3064500b3385ebbecc2 differ diff --git a/back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 b/back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 new file mode 100644 index 0000000..46e7a83 Binary files /dev/null and b/back-to-the-future/flask_session/c0cb3c32fbabf136c0e37c5c72fc0d72 differ diff --git a/back-to-the-future/flask_session/c1081ae4a28b263b856b460f1e3aad0b b/back-to-the-future/flask_session/c1081ae4a28b263b856b460f1e3aad0b new file mode 100644 index 0000000..81e2faf Binary files /dev/null and b/back-to-the-future/flask_session/c1081ae4a28b263b856b460f1e3aad0b differ diff --git a/back-to-the-future/flask_session/c1414d247b0547ff543b9cc03c9b90d8 b/back-to-the-future/flask_session/c1414d247b0547ff543b9cc03c9b90d8 new file mode 100644 index 0000000..99305fc Binary files /dev/null and b/back-to-the-future/flask_session/c1414d247b0547ff543b9cc03c9b90d8 differ diff --git a/back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 b/back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 new file mode 100644 index 0000000..715ff45 Binary files /dev/null and b/back-to-the-future/flask_session/c310c4fd7a943a6b153fc77027b5f8b0 differ diff --git a/back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae b/back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae new file mode 100644 index 0000000..c95d1f2 Binary files /dev/null and b/back-to-the-future/flask_session/c31e413c0847de4691012ef81e31acae differ diff --git a/back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 b/back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 new file mode 100644 index 0000000..c0c8790 Binary files /dev/null and b/back-to-the-future/flask_session/c321ceed93116c26ec88e3254fa3cd97 differ diff --git a/back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e b/back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e new file mode 100644 index 0000000..e758d7d Binary files /dev/null and b/back-to-the-future/flask_session/c4e25dd28c5cd961ccea2bd778bffd4e differ diff --git a/back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea b/back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea new file mode 100644 index 0000000..d5e8a82 Binary files /dev/null and b/back-to-the-future/flask_session/c629ee7f10f944228ad6f78ae03738ea differ diff --git a/back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 b/back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 new file mode 100644 index 0000000..1018347 Binary files /dev/null and b/back-to-the-future/flask_session/c6506c668b96a1eb79cde01880bc8425 differ diff --git a/back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 b/back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 new file mode 100644 index 0000000..4496d8d Binary files /dev/null and b/back-to-the-future/flask_session/c6997ce4a7d458b00b06210ae7446850 differ diff --git a/back-to-the-future/flask_session/c7f207647209e38730bbe64c9249abe5 b/back-to-the-future/flask_session/c7f207647209e38730bbe64c9249abe5 new file mode 100644 index 0000000..166f6a6 Binary files /dev/null and b/back-to-the-future/flask_session/c7f207647209e38730bbe64c9249abe5 differ diff --git a/back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 b/back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 new file mode 100644 index 0000000..e648db2 Binary files /dev/null and b/back-to-the-future/flask_session/c88c19634f04d1be57cf5b79d52202c7 differ diff --git a/back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 b/back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 new file mode 100644 index 0000000..8e3fda7 Binary files /dev/null and b/back-to-the-future/flask_session/c95a6b7b5656c9a6b3194a242f8231a7 differ diff --git a/back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b b/back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b new file mode 100644 index 0000000..2cb007e Binary files /dev/null and b/back-to-the-future/flask_session/c9a0e34374ced611ddc8dbb936fd2c2b differ diff --git a/back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd b/back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd new file mode 100644 index 0000000..ca4351b Binary files /dev/null and b/back-to-the-future/flask_session/ca8e5e6d4bad4979a94c477c5b411acd differ diff --git a/back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b b/back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b new file mode 100644 index 0000000..b446ad0 Binary files /dev/null and b/back-to-the-future/flask_session/caa93220695c6291992e702873ef8c6b differ diff --git a/back-to-the-future/flask_session/cafdd19d230fec60d9022e9e9eb67ff2 b/back-to-the-future/flask_session/cafdd19d230fec60d9022e9e9eb67ff2 new file mode 100644 index 0000000..a457c9a Binary files /dev/null and b/back-to-the-future/flask_session/cafdd19d230fec60d9022e9e9eb67ff2 differ diff --git a/back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a b/back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a new file mode 100644 index 0000000..c5f90b0 Binary files /dev/null and b/back-to-the-future/flask_session/cb03c2a66a4bf7139c9205ce5b0feb5a differ diff --git a/back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc b/back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc new file mode 100644 index 0000000..c4fe137 Binary files /dev/null and b/back-to-the-future/flask_session/cb5460332e84b66b455014c9b77bb6bc differ diff --git a/back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 b/back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 new file mode 100644 index 0000000..b5812b8 Binary files /dev/null and b/back-to-the-future/flask_session/cd07e684036026dc7d067803bde21393 differ diff --git a/back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 b/back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 new file mode 100644 index 0000000..6dc52d4 Binary files /dev/null and b/back-to-the-future/flask_session/cd6b9d32946111528aaa6fefcba32cc4 differ diff --git a/back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 b/back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 new file mode 100644 index 0000000..a5b7ebc Binary files /dev/null and b/back-to-the-future/flask_session/cd83f976398476e1f6633a24c82cca00 differ diff --git a/back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 b/back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 new file mode 100644 index 0000000..b9a4bfb Binary files /dev/null and b/back-to-the-future/flask_session/ceaa00c54604860ca376a77131786d85 differ diff --git a/back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 b/back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 new file mode 100644 index 0000000..84a0891 Binary files /dev/null and b/back-to-the-future/flask_session/cf835731cebab59413319af12a738e94 differ diff --git a/back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea b/back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea new file mode 100644 index 0000000..56dd63d Binary files /dev/null and b/back-to-the-future/flask_session/cfa68eb972fa756c8697a8fcbcfcbbea differ diff --git a/back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b b/back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b new file mode 100644 index 0000000..03ab19a Binary files /dev/null and b/back-to-the-future/flask_session/d0cad7b45a22150d0a5a8512bb72164b differ diff --git a/back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e b/back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e new file mode 100644 index 0000000..0869d9e Binary files /dev/null and b/back-to-the-future/flask_session/d0d6526dc3928c1608dafa53c1fe9c9e differ diff --git a/back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c b/back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c new file mode 100644 index 0000000..defbd59 Binary files /dev/null and b/back-to-the-future/flask_session/d0f85bd43b91c8a4ed49ef3267c4fa4c differ diff --git a/back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 b/back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 new file mode 100644 index 0000000..0bf176f Binary files /dev/null and b/back-to-the-future/flask_session/d0fc857d940dbf06c737897ad95c2815 differ diff --git a/back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 b/back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 new file mode 100644 index 0000000..fb977cb Binary files /dev/null and b/back-to-the-future/flask_session/d11382c4f410be6ea22b86a0420f0379 differ diff --git a/back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a b/back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a new file mode 100644 index 0000000..848e20a Binary files /dev/null and b/back-to-the-future/flask_session/d1b129979af646f1903f93fda426262a differ diff --git a/back-to-the-future/flask_session/d1d0d1e353b091e55d437fbba7768c0b b/back-to-the-future/flask_session/d1d0d1e353b091e55d437fbba7768c0b new file mode 100644 index 0000000..5cee16f Binary files /dev/null and b/back-to-the-future/flask_session/d1d0d1e353b091e55d437fbba7768c0b differ diff --git a/back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c b/back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c new file mode 100644 index 0000000..3be2452 Binary files /dev/null and b/back-to-the-future/flask_session/d1f6a6b3ff606b79ed83489af16c752c differ diff --git a/back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a b/back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a new file mode 100644 index 0000000..5bed18c Binary files /dev/null and b/back-to-the-future/flask_session/d2d35bf9c724a0feec1b446af094e02a differ diff --git a/back-to-the-future/flask_session/d31b32fe78e9e7408d3b1f165ee3a823 b/back-to-the-future/flask_session/d31b32fe78e9e7408d3b1f165ee3a823 new file mode 100644 index 0000000..449abc3 Binary files /dev/null and b/back-to-the-future/flask_session/d31b32fe78e9e7408d3b1f165ee3a823 differ diff --git a/back-to-the-future/flask_session/d3bc3c2a65cba96928e1ffa8889a3bf9 b/back-to-the-future/flask_session/d3bc3c2a65cba96928e1ffa8889a3bf9 new file mode 100644 index 0000000..2aa548c Binary files /dev/null and b/back-to-the-future/flask_session/d3bc3c2a65cba96928e1ffa8889a3bf9 differ diff --git a/back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 b/back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 new file mode 100644 index 0000000..d3c4c8e Binary files /dev/null and b/back-to-the-future/flask_session/d5998a88757db1c51a28bf64c368ad99 differ diff --git a/back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 b/back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 new file mode 100644 index 0000000..6311527 Binary files /dev/null and b/back-to-the-future/flask_session/d700947294c64219224e5510b68fce24 differ diff --git a/back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d b/back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d new file mode 100644 index 0000000..9581a28 Binary files /dev/null and b/back-to-the-future/flask_session/d86641dc0fc1950fc5192156bcdd294d differ diff --git a/back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 b/back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 new file mode 100644 index 0000000..70cca3a Binary files /dev/null and b/back-to-the-future/flask_session/da1192e27218f04c4df981b45eba12f0 differ diff --git a/back-to-the-future/flask_session/da5ffd2e4afdd8b1586525f65b5382f6 b/back-to-the-future/flask_session/da5ffd2e4afdd8b1586525f65b5382f6 new file mode 100644 index 0000000..bbb783f Binary files /dev/null and b/back-to-the-future/flask_session/da5ffd2e4afdd8b1586525f65b5382f6 differ diff --git a/back-to-the-future/flask_session/da6d3b5ed9ccd8a18515221c7c29f2e1 b/back-to-the-future/flask_session/da6d3b5ed9ccd8a18515221c7c29f2e1 new file mode 100644 index 0000000..d7bf4ea Binary files /dev/null and b/back-to-the-future/flask_session/da6d3b5ed9ccd8a18515221c7c29f2e1 differ diff --git a/back-to-the-future/flask_session/daeb7defe566351156bec27a5627566a b/back-to-the-future/flask_session/daeb7defe566351156bec27a5627566a new file mode 100644 index 0000000..16d52cd Binary files /dev/null and b/back-to-the-future/flask_session/daeb7defe566351156bec27a5627566a differ diff --git a/back-to-the-future/flask_session/db5c89e54de75a14db842a65aa1a87b2 b/back-to-the-future/flask_session/db5c89e54de75a14db842a65aa1a87b2 new file mode 100644 index 0000000..6c87412 Binary files /dev/null and b/back-to-the-future/flask_session/db5c89e54de75a14db842a65aa1a87b2 differ diff --git a/back-to-the-future/flask_session/db7303e646ac2d62cb8bbcaf68cca828 b/back-to-the-future/flask_session/db7303e646ac2d62cb8bbcaf68cca828 new file mode 100644 index 0000000..3ea191b Binary files /dev/null and b/back-to-the-future/flask_session/db7303e646ac2d62cb8bbcaf68cca828 differ diff --git a/back-to-the-future/flask_session/db8deb947463b3320b1399cb9f87bfba b/back-to-the-future/flask_session/db8deb947463b3320b1399cb9f87bfba new file mode 100644 index 0000000..4ede7b7 Binary files /dev/null and b/back-to-the-future/flask_session/db8deb947463b3320b1399cb9f87bfba differ diff --git a/back-to-the-future/flask_session/dc1dff4e65c17747a9f2043231a5b984 b/back-to-the-future/flask_session/dc1dff4e65c17747a9f2043231a5b984 new file mode 100644 index 0000000..1a26c42 Binary files /dev/null and b/back-to-the-future/flask_session/dc1dff4e65c17747a9f2043231a5b984 differ diff --git a/back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc b/back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc new file mode 100644 index 0000000..7661a0c Binary files /dev/null and b/back-to-the-future/flask_session/dc296930884123b35a5c53bbcb1ad8fc differ diff --git a/back-to-the-future/flask_session/df0430679640015518d904b92776f724 b/back-to-the-future/flask_session/df0430679640015518d904b92776f724 new file mode 100644 index 0000000..9b2e0e3 Binary files /dev/null and b/back-to-the-future/flask_session/df0430679640015518d904b92776f724 differ diff --git a/back-to-the-future/flask_session/df11adc24639177bb9c0839d84daa593 b/back-to-the-future/flask_session/df11adc24639177bb9c0839d84daa593 new file mode 100644 index 0000000..920bd40 Binary files /dev/null and b/back-to-the-future/flask_session/df11adc24639177bb9c0839d84daa593 differ diff --git a/back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 b/back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 new file mode 100644 index 0000000..032b3ea Binary files /dev/null and b/back-to-the-future/flask_session/df924cf66e321a1348121a1cabcd29b5 differ diff --git a/back-to-the-future/flask_session/dfc2c46d59be654a2e332461cf11447e b/back-to-the-future/flask_session/dfc2c46d59be654a2e332461cf11447e new file mode 100644 index 0000000..f0fb4f9 Binary files /dev/null and b/back-to-the-future/flask_session/dfc2c46d59be654a2e332461cf11447e differ diff --git a/back-to-the-future/flask_session/e256a6fc2997892bd945dfa65d6e3d4a b/back-to-the-future/flask_session/e256a6fc2997892bd945dfa65d6e3d4a new file mode 100644 index 0000000..dbc3372 Binary files /dev/null and b/back-to-the-future/flask_session/e256a6fc2997892bd945dfa65d6e3d4a differ diff --git a/back-to-the-future/flask_session/e2b5a66739332a746d43f465ae9889ef b/back-to-the-future/flask_session/e2b5a66739332a746d43f465ae9889ef new file mode 100644 index 0000000..956522c Binary files /dev/null and b/back-to-the-future/flask_session/e2b5a66739332a746d43f465ae9889ef differ diff --git a/back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 b/back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 new file mode 100644 index 0000000..e6ec6e0 Binary files /dev/null and b/back-to-the-future/flask_session/e30690e9f3419164d1ca1ed795944854 differ diff --git a/back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 b/back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 new file mode 100644 index 0000000..4bdcb21 Binary files /dev/null and b/back-to-the-future/flask_session/e3b35579ddaa8fdca3bfdd7589f77f88 differ diff --git a/back-to-the-future/flask_session/e45611843e2ddaf7d897be760a2455c7 b/back-to-the-future/flask_session/e45611843e2ddaf7d897be760a2455c7 new file mode 100644 index 0000000..43a3a5c Binary files /dev/null and b/back-to-the-future/flask_session/e45611843e2ddaf7d897be760a2455c7 differ diff --git a/back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 b/back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 new file mode 100644 index 0000000..ec091b4 Binary files /dev/null and b/back-to-the-future/flask_session/e4cdb37fc6127fd3b2aa01d53d00f688 differ diff --git a/back-to-the-future/flask_session/e58c12d06f9064b0c53e828208001d5a b/back-to-the-future/flask_session/e58c12d06f9064b0c53e828208001d5a new file mode 100644 index 0000000..9387546 Binary files /dev/null and b/back-to-the-future/flask_session/e58c12d06f9064b0c53e828208001d5a differ diff --git a/back-to-the-future/flask_session/e5a6944a3ff0ebf60b4670fe40a7f593 b/back-to-the-future/flask_session/e5a6944a3ff0ebf60b4670fe40a7f593 new file mode 100644 index 0000000..60138fd Binary files /dev/null and b/back-to-the-future/flask_session/e5a6944a3ff0ebf60b4670fe40a7f593 differ diff --git a/back-to-the-future/flask_session/e74297c0a86ae1c128618618a8b50bc0 b/back-to-the-future/flask_session/e74297c0a86ae1c128618618a8b50bc0 new file mode 100644 index 0000000..879c5ec Binary files /dev/null and b/back-to-the-future/flask_session/e74297c0a86ae1c128618618a8b50bc0 differ diff --git a/back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 b/back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 new file mode 100644 index 0000000..e6eb6e1 Binary files /dev/null and b/back-to-the-future/flask_session/e778dec5a8adbd18365d124ff668e7f1 differ diff --git a/back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 b/back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 new file mode 100644 index 0000000..cccb5e2 Binary files /dev/null and b/back-to-the-future/flask_session/e88189732217df5915a5b1c3a8fb8379 differ diff --git a/back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 b/back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 new file mode 100644 index 0000000..5680d01 Binary files /dev/null and b/back-to-the-future/flask_session/e8e138b0058292a5a274d344df3d1195 differ diff --git a/back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec b/back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec new file mode 100644 index 0000000..a067585 Binary files /dev/null and b/back-to-the-future/flask_session/e923b6aa9df3b01e5182b1a003bf35ec differ diff --git a/back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 b/back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 new file mode 100644 index 0000000..237b8a5 Binary files /dev/null and b/back-to-the-future/flask_session/e974e3a27a6325862014cc322254eae9 differ diff --git a/back-to-the-future/flask_session/e9fa9601ed3049fc587f4fe7a79b714d b/back-to-the-future/flask_session/e9fa9601ed3049fc587f4fe7a79b714d new file mode 100644 index 0000000..58bb4cb Binary files /dev/null and b/back-to-the-future/flask_session/e9fa9601ed3049fc587f4fe7a79b714d differ diff --git a/back-to-the-future/flask_session/ea4feb9cbd4982377f8952f693c508d7 b/back-to-the-future/flask_session/ea4feb9cbd4982377f8952f693c508d7 new file mode 100644 index 0000000..f27fe35 Binary files /dev/null and b/back-to-the-future/flask_session/ea4feb9cbd4982377f8952f693c508d7 differ diff --git a/back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 b/back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 new file mode 100644 index 0000000..0da91f9 Binary files /dev/null and b/back-to-the-future/flask_session/eb719038ef362e4fde8b7b3224d75098 differ diff --git a/back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 b/back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 new file mode 100644 index 0000000..031f05d Binary files /dev/null and b/back-to-the-future/flask_session/ee19c744649264c1537173fba3a11df4 differ diff --git a/back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 b/back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 new file mode 100644 index 0000000..e1f823c Binary files /dev/null and b/back-to-the-future/flask_session/ee87118eb53b5c941f2134ee0cd61508 differ diff --git a/back-to-the-future/flask_session/ef064997d68d665a6ef04443d43eaae3 b/back-to-the-future/flask_session/ef064997d68d665a6ef04443d43eaae3 new file mode 100644 index 0000000..1a107d4 Binary files /dev/null and b/back-to-the-future/flask_session/ef064997d68d665a6ef04443d43eaae3 differ diff --git a/back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc b/back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc new file mode 100644 index 0000000..6fe65ad Binary files /dev/null and b/back-to-the-future/flask_session/efd4c0fb34e78ea7cd825af8f89b0fbc differ diff --git a/back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 b/back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 new file mode 100644 index 0000000..9d178c1 Binary files /dev/null and b/back-to-the-future/flask_session/f0dd61f72859cdbe4e4f9a417e659817 differ diff --git a/back-to-the-future/flask_session/f33166d7a9275a433902c984d9ae6b4a b/back-to-the-future/flask_session/f33166d7a9275a433902c984d9ae6b4a new file mode 100644 index 0000000..a09b2ca Binary files /dev/null and b/back-to-the-future/flask_session/f33166d7a9275a433902c984d9ae6b4a differ diff --git a/back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 b/back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 new file mode 100644 index 0000000..e7c625d Binary files /dev/null and b/back-to-the-future/flask_session/f435dcda99208cbdac00b580b6e40b93 differ diff --git a/back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 b/back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 new file mode 100644 index 0000000..9fcf4fb Binary files /dev/null and b/back-to-the-future/flask_session/f4745a9cf85051fd561cb8325c5e4314 differ diff --git a/back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 b/back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 new file mode 100644 index 0000000..e2f17a6 Binary files /dev/null and b/back-to-the-future/flask_session/f49747bd1cb88b14c946e5a167412850 differ diff --git a/back-to-the-future/flask_session/f63cf29bae980013270fbf4f1f9ec772 b/back-to-the-future/flask_session/f63cf29bae980013270fbf4f1f9ec772 new file mode 100644 index 0000000..12cf633 Binary files /dev/null and b/back-to-the-future/flask_session/f63cf29bae980013270fbf4f1f9ec772 differ diff --git a/back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b b/back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b new file mode 100644 index 0000000..27b7a8e Binary files /dev/null and b/back-to-the-future/flask_session/f700cc8bd7d384a318b16419cc59820b differ diff --git a/back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 b/back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 new file mode 100644 index 0000000..c81a348 Binary files /dev/null and b/back-to-the-future/flask_session/f7dd1d01df355bed4bd0c3199557e610 differ diff --git a/back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e b/back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e new file mode 100644 index 0000000..2627cea Binary files /dev/null and b/back-to-the-future/flask_session/f84876bdeaa1e73ba1863dae6aac850e differ diff --git a/back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 b/back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 new file mode 100644 index 0000000..992a15e Binary files /dev/null and b/back-to-the-future/flask_session/f9385592b78b595cd41625cc39ab1c27 differ diff --git a/back-to-the-future/flask_session/f9a8c0ad84ed84cfeecd4ace493df951 b/back-to-the-future/flask_session/f9a8c0ad84ed84cfeecd4ace493df951 new file mode 100644 index 0000000..23c280c Binary files /dev/null and b/back-to-the-future/flask_session/f9a8c0ad84ed84cfeecd4ace493df951 differ diff --git a/back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 b/back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 new file mode 100644 index 0000000..e8bf17a Binary files /dev/null and b/back-to-the-future/flask_session/f9b86358cb779b1dd907dfa8f1849b55 differ diff --git a/back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b b/back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b new file mode 100644 index 0000000..bbfd8cf Binary files /dev/null and b/back-to-the-future/flask_session/fa1ff5df9646c63b4c384ad7647eca9b differ diff --git a/back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 b/back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 new file mode 100644 index 0000000..81768d9 Binary files /dev/null and b/back-to-the-future/flask_session/fc6babfe600fb622a3bb209a8fc10e30 differ diff --git a/decrypt-the-flag/3 b/decrypt-the-flag/3 new file mode 100644 index 0000000..5400f83 --- /dev/null +++ b/decrypt-the-flag/3 @@ -0,0 +1,33 @@ +import random +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Util.number import long_to_bytes +#from secret import flag, randkey + +nonce = -1 +flag = 'Z'*46 +randkey= 'A'*32 +def encrypt_and_update(msg, nonce): + cipher = ChaCha20.new(key=randkey, nonce=long_to_bytes(nonce)) + nonce = random.getrandbits(12*8) + return cipher.encrypt(msg.encode()) + + +def main(): + seed = int(input( + "Hi, our system doesn't support analogic entropy... so please give a value to initialize me!\n> ")) + random.seed(seed) + nonce = random.getrandbits(12*8) + + print("OK! I can now give you the encrypted secret!") + print(encrypt_and_update(flag, nonce).hex()) + + confirm = input("Do you want to encrypt something else? (y/n)") + while confirm.lower() != 'n': + if confirm.lower() == 'y': + msg = input("What is the message? ") + print(encrypt_and_update(msg, nonce).hex()) + confirm = input("Do you want to encrypt something else? (y/n)") + + +if __name__ == '__main__': + main() diff --git a/decrypt-the-flag/attack.py b/decrypt-the-flag/attack.py new file mode 100644 index 0000000..a4b3d04 --- /dev/null +++ b/decrypt-the-flag/attack.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +from pwn import * +import random +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Util.number import long_to_bytes + +HOST = "130.192.5.212" +PORT = "6561" +#Using the same seed I generate the same random numbers +#in the same order +# Repeating a nonce with the same key +# reveals the XOR of two different messages, which allows decryption. +seed = 123 +nlen = 12*8 +random.seed(seed) +nonce = random.getrandbits(nlen) +print(f"Nonce:{nonce}") +random.seed(seed) +nonce1 = random.getrandbits(nlen) +#Use this nonce +print(f"Nonce1:{nonce1}") +print(long_to_bytes(nonce1).hex()) +# Used nonce +flag="81d36783bb44a32f060a30aa0551f71c12d81a888dfdd8c317dd3afd0905db796357dbb8642a2c9eae2ab1db2eb7" +flag = bytes.fromhex(flag) +amsg="83c07f92ae4ad05b3c7e10dd7472856c63b43df8f588b4b660aa4a917170ab5a0f73fb9b120e5ce78b08c0ad5c8b" +amsg = bytes.fromhex(amsg) +apayload = b'A'*46 +ks = bytes(m ^ a for m,a in zip(amsg,apayload)) +fflag = bytes(f ^ k for f,k in zip(flag,ks)) +print(fflag) +#ks= bytes([f ^ a for f,a in zip(bytes.fromhex(b'A'*46),bytes.fromhex(amsg))]) +#print(bytes([f ^ a for f,a in zip(flag,ks)])) diff --git a/decrypt-the-flag/chall.py b/decrypt-the-flag/chall.py new file mode 100644 index 0000000..20bace6 --- /dev/null +++ b/decrypt-the-flag/chall.py @@ -0,0 +1,34 @@ +import random +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Util.number import long_to_bytes +#from secret import flag, randkey + +nonce = -1 +flag = 'Z'*46 +randkey= b'A'*32 +def encrypt_and_update(msg, nonce): + print(f"Encrypting with NONCE:{nonce}") + cipher = ChaCha20.new(key=randkey, nonce=long_to_bytes(nonce)) + nonce = random.getrandbits(12*8) + return cipher.encrypt(msg.encode()) + + +def main(): + seed = int(input( + "Hi, our system doesn't support analogic entropy... so please give a value to initialize me!\n> ")) + random.seed(seed) + nonce = random.getrandbits(12*8) + + print("OK! I can now give you the encrypted secret!") + print(encrypt_and_update(flag, nonce).hex()) + + confirm = input("Do you want to encrypt something else? (y/n)") + while confirm.lower() != 'n': + if confirm.lower() == 'y': + msg = input("What is the message? ") + print(encrypt_and_update(msg, nonce).hex()) + confirm = input("Do you want to encrypt something else? (y/n)") + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle-v2/attack.py b/fool-the-oracle-v2/attack.py new file mode 100644 index 0000000..d921811 --- /dev/null +++ b/fool-the-oracle-v2/attack.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +from pwn import * + +HOST = "130.192.5.212" +PORT = "6542" + +server = remote(HOST,PORT) +sleepT = 0.1 + +payload = b'A'*32 +flag = "CRYPTO25{ad3c6c1e-5cac-4c87-b5c3-a5dab511fee3}" +firstBlock = b"CRYPTO25{ad3c6c1" +secondBlock = b"e-5cac-4c87-b5c3" +thirdBlock=b"-a5dab511fee3}" +flagGuessed = b'' +"""for i in range(16): + # Create one pad block with the 5 random bytes + beforePad = b'A'*11 + pad = b'A'*(16-(i+1)) + fPayload = pad + flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + sleep(sleepT) + server.recv(1024) + sleep(sleepT) + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + toSend = beforePad+fPayload+guess+pad + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[32:48]: + print(f"Block1:{ciphertext[16:32]} Block2:{ciphertext[32:48]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" + +"""for i in range(16): + beforePad = b'A'*11 + pad = firstBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[48:64]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" +for i in range(16): + beforePad = b'A'*11 + pad = secondBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[64:80]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) diff --git a/fool-the-oracle-v2/chall.py b/fool-the-oracle-v2/chall.py new file mode 100644 index 0000000..49e8bdf --- /dev/null +++ b/fool-the-oracle-v2/chall.py @@ -0,0 +1,41 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +#from secret import flag +flag = "puppa" +assert (len(flag) == len("CRYPTO25{}") + 36) + +key = get_random_bytes(24) +padding = get_random_bytes(5) +flag = flag.encode() + + +def encrypt() -> bytes: + data = bytes.fromhex(input("> ").strip()) + payload = padding + data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle-v3/attack.py b/fool-the-oracle-v3/attack.py new file mode 100644 index 0000000..56ecef5 --- /dev/null +++ b/fool-the-oracle-v3/attack.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +from pwn import * + +HOST = "130.192.5.212" +PORT = "6543" + +server = remote(HOST,PORT) +sleepT = 0.1 + +firstBlock=b"CRYPTO25{e3ab216" +#If the pad generated is correct the second and third block are equal +#Then I guessed the random pad +for i in range(16): + pad=b'A'*i + secondBlock=b'B'*16 + thirdBlock=b'B'*16 + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = pad + secondBlock + thirdBlock + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + ciphertext = server.recv(1024) + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[32:48]: + PAD_NUM=i + print(f"Found the right padding num:{PAD_NUM}") + break +firstBlock=b"CRYPTO25{e3ab216" +secondBlock="9-39d5-43aa-bde7" +thirdBlock="-02286c2e2e56}" +flag="CRYPTO25{e3ab2169-39d5-43aa-bde7-02286c2e2e56}" +#lastBlock=b'A'*16 +lastBlock=firstBlock +flagGuessed=b'' +#beginning=32 +#end=48 +beginning=48 +end=64 +flag=b'' + +for j in range(1,3): + print(f"{'-'*5} Finding block n:{j+1} {'-'*5}") + for i in range(16): + beforePad = b'A'*PAD_NUM + pad = lastBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = beforePad + fPayload+guess+pad + print(f"Payload len: {len(fPayload+guess)} Pad len: {len(pad)}") + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + ciphertext = server.recv(1024) + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[16:32] == ciphertext[beginning:end]: + #print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + lastBlock=flagGuessed + flag+=lastBlock + print(f"Entire block guessed:{lastBlock}") + flagGuessed=b'' + beginning+=16 + end+=16 + if(b'}' in flagGuessed): + break +print(flag) diff --git a/fool-the-oracle-v3/chall.py b/fool-the-oracle-v3/chall.py new file mode 100644 index 0000000..f6c78a6 --- /dev/null +++ b/fool-the-oracle-v3/chall.py @@ -0,0 +1,42 @@ +from Crypto.Cipher import AES +from Crypto.Util.Padding import pad, unpad +from Crypto.Random import get_random_bytes +from random import randint +from secret import flag + +assert (len(flag) == len("CRYPTO25{}") + 36) + +key = get_random_bytes(24) +padding = get_random_bytes(randint(1, 15)) +flag = flag.encode() + + +def encrypt() -> bytes: + data = bytes.fromhex(input("> ").strip()) + payload = padding + data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle/attack.py b/fool-the-oracle/attack.py new file mode 100644 index 0000000..e572196 --- /dev/null +++ b/fool-the-oracle/attack.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +from Cryptodome.Cipher import AES +from pwn import * +import math +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' +HOST = "130.192.5.212" +PORT = "6541" +server = remote(HOST, PORT) +sleepT = 0.1 +# First block +#discoveringFlag=b"CRYPTO25{96ce8a93-d548-4f88-bc6" +firstBlock=b"CRYPTO25{96ce8a9" +secondBlock=b"3-d548-4f88-bc6c" +thirdBlock=b"-db6eb3c96382}" + +print(firstBlock+secondBlock+thirdBlock) +sleep(1000) + +flagGuessed=b"" +"""for i in range(15): + pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + toSend = fPayload+guess+pad + #toSend = fPayload+guess+fPayload[i:] + #print(len(fPayload[i:])) + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[0:16] == ciphertext[16:32]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize +""" +for i in range(16): + pad = secondBlock[(i+1):] + #pad = b'A'*(16 - (len(flagGuessed)+1) ) + fPayload = pad + flagGuessed + #fPayload = b"A"*(16 - (len(fBlock+flagGuessed)+1) )+fBlock+flagGuessed + #fPayload = fBlock[(i+1):]+flagGuessed + for guess in string.printable: + guess = bytes(guess,'utf-8') + server.send(b'enc\n') + server.recv(1024) + sleep(sleepT) + #The second pad can be whatever + toSend = fPayload+guess+pad + print(f"Sending {toSend} with len {len(toSend)}") + server.send( toSend.hex()) + server.send(b'\n') + sleep(sleepT) + #print(server.recv(1024)) + ciphertext = server.recv(1024) + #print(f"Ciphertext:{ciphertext}") + ciphertext = bytes.fromhex(ciphertext.strip(b" >").split(b"\n")[0].decode('utf-8')) + if ciphertext[0:16] == ciphertext[48:64]: + print(f"Block1:{ciphertext[0:16]} Block2:{ciphertext[16:32]}") + print(f"Matched guess: {guess}") + flagGuessed += guess + print(f"Already Guessed: {flagGuessed}") + break + sleep(sleepT) + #ciphertext//AES.blocksize + +server.close() +# CRYPTO25{flag} total length of 46, almost 3 blocks less 2 bytes +# One block is 16 bytes +#flag = CRYPTO25{CCCCCC diff --git a/fool-the-oracle/chall.py b/fool-the-oracle/chall.py new file mode 100644 index 0000000..7741997 --- /dev/null +++ b/fool-the-oracle/chall.py @@ -0,0 +1,43 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +#from secret import flag + +flag = f"CRYPTO25({'A'*36})" +#Total flag len is 46 +#The block size is 16 +#16 32 48 +assert (len(flag) == len("CRYPTO25{}") + 36) +key = get_random_bytes(24) +flag = flag.encode() + +# the encrypted payload is the given Data + Flag +def encrypt() -> bytes: + data = bytes.fromhex(input("> ")) + payload = data + flag + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + print(cipher.encrypt(pad(payload, AES.block_size)).hex()) + + +def main(): + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + + +if __name__ == '__main__': + main() diff --git a/fool-the-oracle/lecture.py b/fool-the-oracle/lecture.py new file mode 100644 index 0000000..0abb21a --- /dev/null +++ b/fool-the-oracle/lecture.py @@ -0,0 +1,67 @@ +import os +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' + +if __name__ == '__main__': + #server = remote(HOST, PORT) + #server.send(iv) + #server.send(ciphertext) + #response = server.recv(1024) + #print(response) + #server.close() + + #server = remote(HOST, PORT) + #server.send(iv) + + #edt = bytearray(ciphertext) + #edt[-1] = 0 + #server.send(edt) + #response = server.recv(1024) + #print(response) + #server.close() +#--------------- + print(len(ciphertext)//AES.block_size) + N = len(ciphertext)//AES.block_size) + #This initial part will be non modifiabke + #We put all the block except the last one + initial_part = ciphertext[:(N-2)*AES.block_size] + #The second to last block is the one swapped in CBC then it is not dependent from the others(?) + block_to_modify = bytearray(ciphertext[(N-2)*AES.block_size:(N-1)*AES.block_size]) + last_block = ciphertext[(N-1]*AES.block_size:] + + byte_index = AES.block_size - 1 + c15 = block_to_modify[byte_index] + + for c_prime_15 in range(256): + + block_to_modify[byte_index] = c_prime_15 + to_send = initial_part + block_to_modify + last_block + + server = remote(HOST, PORT) + server.send(iv) + server.send(to_send) + response = server.recv(1024) + #print(response) + server.close() + + if response = b'OK': + print("c_prime_15"+str(c_prime_15)) + p_prime_15 = c_prime_15 ^ 1 + p_15 = p_prime_15 ^ c_15 + print("p_prime_15"+str(p_prime_15)) + print("p_15"+str(p_15)) + p_prime_15 = 191 + + c_second_15 = p_prime_15 ^ 2 + block_to_modify[byte_index] = c_second_15 + + byte_index -= 1 + c_14 = block_to_modify[byte_index] + + for c_prime_14 in range(256): + + block_to_modify[byte_index] = c_prime_14 + to_send = initial_part + block_to_modify + last_block + + ##connect to the server etc + diff --git a/force-decryption/attack.py b/force-decryption/attack.py new file mode 100644 index 0000000..d926e45 --- /dev/null +++ b/force-decryption/attack.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +from pwn import * +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +import os +HOST = "130.192.5.212" +PORT = "6523" +server = remote(HOST, PORT) +# I cant encrypt iamsuperadmin +# I can encrypt a xorred version of it +# I can generate a different IV to obtain the original iamsuperadmin? +# (iamsuperadmin XOR something) XOR IV -> Encrypted +# Encrypted -> Decrypted XORRED +# P XOR S XOR IV = P' +# S XOR IV = IV'? To give in decryption phase? +sleepT = 1 +print(server.recv(1024)) +server.send(b'enc') +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) + +leak = b"mynamesuperadmin" +#XOR the leak +payload = bytes([l ^ 1 for l in leak]) +print(f"Sending payload {payload.hex()}") +server.send(payload.hex()) +server.send(b'\n') +sleep(sleepT) +mres = server.recv(1024).split(b'\n') +print(mres) +iv = mres[0].split(b':')[1].strip() +iv = bytes.fromhex(iv.decode('utf-8')) +enc = mres[1].split(b':')[1].strip() +print(f"Received IV {iv.hex()} enc {enc}") +#Do not touch encrypted block +ivm = bytes([i ^ 1 for i in iv]) +print(f"Malicious IV:{ivm.hex()} len:{len(ivm)}") +sleep(sleepT) +server.send(b'dec\n') +print(server.recv(1024)) +sleep(sleepT) +server.send(enc) +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) +server.send(ivm.hex()) +server.send(b'\n') +sleep(sleepT) +print(server.recv(1024)) +#string = "6c786f606c64727471647360656c686\n" +#string = bytes.fromhex(string) +#Maybe like an inverse known text attack? +# I can decrypt with the same key and IV multiple given cipherblock + #to obtain the key? +# P ----> C1 +# P2 ----> C2 L + +"""leak = b"mynamesuperadmin" +#XOR the leak +payload = bytes([l ^ 1 for l in leak]) +print(f"leak:{leak.hex()} len:{len(leak)}") +print(f"payload:{bytes.fromhex(payload.hex())}") +#XOR the original IV +iv = b"" +ivm = bytes([i ^ 1 for i in iv]) +print(f"Malicious IV:{ivm.hex()} len:{len(ivm)}") +""" diff --git a/force-decryption/chall.py b/force-decryption/chall.py new file mode 100644 index 0000000..434b7ac --- /dev/null +++ b/force-decryption/chall.py @@ -0,0 +1,77 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag + +key = get_random_bytes(16) +leak = b"mynamesuperadmin" + + +def make_cipher(): + IV = get_random_bytes(16) + cipher = AES.new(key, AES.MODE_CBC, IV=IV) + return IV, cipher + + +def encrypt(): + string = input("What do you want to encrypt?\n> ") + #string = leak + #stringX = bytes(([s ^ 1 for s in string])) + string = bytes.fromhex(string) + #string = stringX + if len(string) != 16: + + print("Sorry, you can encrypt only 16 bytes!") + return + + if leak == string: + print("Sorry, you can't encrypt that!") + return + + IV, cipher = make_cipher() + encrypted = cipher.encrypt(string) + + print(F"IV: {IV.hex()}\nEncrypted: {encrypted.hex()}\n") + + +def decrypt(): + string = input("What do you want to decrypt?\n> ") + string = bytes.fromhex(string) + + IV = input("Gimme the IV\n> ") + IV = bytes.fromhex(IV) + + if (IV == leak): + print("Nice try...") + return + + cipher = AES.new(key, AES.MODE_CBC, IV=IV) + + decrypted = cipher.decrypt(string) + if leak == decrypted: + print(f"Good job. Your flag: PUPPA") + else: + print(f"Mh, a normal day.\nDecrypted: {decrypted.hex()}") + + +if __name__ == '__main__': + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "enc - encrypt something\n" + \ + "dec - decrypt something\n" + \ + "help - show this menu again\n" + \ + "> " + + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "enc": + encrypt() + elif cmd == "dec": + decrypt() + elif cmd == "crack": + decrypt(encrypt()) diff --git a/force-decryption/lecture.py b/force-decryption/lecture.py new file mode 100644 index 0000000..2076cba --- /dev/null +++ b/force-decryption/lecture.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +import os diff --git a/forge-a-cookie/attack.py b/forge-a-cookie/attack.py new file mode 100644 index 0000000..c643e02 --- /dev/null +++ b/forge-a-cookie/attack.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +import json +import base64 +def foo(name,nonce): + + #token = json.dumps({ + # "username" : name + #}) + token = json.dumps({ + "admin" : True + }) + if json.loads(token).get("admin",False) == True: + print("ADMIN achieved") + else: + print("erorr") + #ENCRYPTED token.encode() + tc = token.encode() + etc = base64.b64encode(tc).decode() + dec_token = base64.b64decode(etc) + user = json.loads(dec_token) + print(user) + print(user.get("admin",False)) + print(f"Token encoded: {tc}") + print(f"Token:{token}") +foo("admin",1) +name = input("Give me name!\n").strip() +token = json.dumps({ + "username" : name +}) +print(token.encode()) + +def attack(): + enc_token = input("Give me the token:") + nonce, token = enc_token.split(".") + print(f"{nonce}, {token}") + payload = json.dumps({ + "username" : "aaaa" + }).encode() + adminPayload = json.dumps({ + "admin" : True + }).encode() + adminTok = b'' + tok = base64.b64decode(token) + keystream = b'' + print(f"Len payload:{len(payload)} Len tok:{len(tok)}") + keystream = bytes([p ^ t for p, t in zip(payload, tok)]) + print(len(keystream)) + adminTok = bytes([aP ^ k for aP, k in zip(adminPayload, keystream)]) + print(f"admin Token:{adminTok} len admin Payload:{len(adminPayload)} lenTok:{len(adminTok)}") + print(f"{nonce}.{base64.b64encode(adminTok).decode()}") + #for i,j in zip(tok,payload): + + # print(bytes(i^j)) + #print(keystream) +#attack("j5l1MgGWqU06x2GvgXGEnXkoFPs=") +attack() diff --git a/forge-a-cookie/chall.py b/forge-a-cookie/chall.py new file mode 100644 index 0000000..ba531d5 --- /dev/null +++ b/forge-a-cookie/chall.py @@ -0,0 +1,80 @@ +from Cryptodome.Cipher import ChaCha20 +from Cryptodome.Random import get_random_bytes +#from secret import flag +import json +import base64 + +key = get_random_bytes(32) + + +def make_cipher(): + nonce = get_random_bytes(12) + cipher = ChaCha20.new(key=key, nonce=nonce) + return nonce, cipher + + +def get_user_token(name): + nonce, cipher = make_cipher() + token = json.dumps({ + "username": name + }) + #token = json.dumps({ + # "admin": True + #}) + print(f"{token.encode()}") + + enc_token = cipher.encrypt(token.encode()) + print(f"ENC_TOKEN:{enc_token}, NONCE:{nonce}") + return f"{base64.b64encode(nonce).decode()}.{base64.b64encode(enc_token).decode()}" + + +def check_user_token(token): + nonce, token = token.split(".") + #It uses the nonce from the token + nonce = base64.b64decode(nonce) + print(f"CHECK NONCE {nonce} TOKEN {base64.b64decode(token)}") + #Uses the same KEY used at the beginning + #cipher = ChaCha20.new(key=key, nonce=nonce) + cipher = ChaCha20.new(key=key, nonce=nonce) + #Obtain from the token and the nonce the key used + #at the beginning forge new cookie enjoy + dec_token = cipher.decrypt(base64.b64decode(token)) + + user = json.loads(dec_token) + print(user.get("admin",False)) + if user.get("admin", False) == True: + return True + else: + return False + + +def get_flag(token): + #token = input("What is your token?\n> ").strip() + if check_user_token(token): + print("You are admin!") + print(f"This is your flag!\nPUPPA") + else: + print("HEY! WHAT ARE YOU DOING!?") + exit(1) + + +if __name__ == "__main__": + name = input("Hi, please tell me your name!\n> ").strip() + token = get_user_token(name) + print("This is your token: " + token) + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "help - show this menu again\n" + \ + "flag - get the flag\n" + \ + "> " + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "flag": + #check_user_token(token) + get_flag(token) diff --git a/forge-another-cookie/attack.py b/forge-another-cookie/attack.py new file mode 100644 index 0000000..60d4e5d --- /dev/null +++ b/forge-another-cookie/attack.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +from pwn import * +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +HOST = "130.192.5.212" +PORT = "6552" +server = remote(HOST,PORT) +sleepT = 0.1 +#21 bytes of cookie + username bytes to add +"""firstBlock=b'username='+b'A'*7 +print(len(firstBlock)) +#secondBlock=pad(b'true',AES.block_size) +thirdBlock=b'A'*9+b'&admin=' +print(len(firstBlock+thirdBlock))""" +payload = b'A'*7+pad(b'true',AES.block_size)+b'B'*9 +# &admin in one block and false in another one +# remove false and add true block +print(server.recv(1024)) +sleep(sleepT) +print(f"Sending:{payload,len(payload)}") +server.send(payload) +server.send(b'\n') +sleep(sleepT) +enc = server.recv(1024).strip().split(b'\n')[0] +enc = int(enc) +enc=long_to_bytes(enc) +#print(enc[0:16]) +#print(enc[16:32]) +copypaste=enc[0:16]+enc[32:48]+enc[16:32] +out=bytes_to_long(copypaste) +sleep(sleepT) +server.send(b'flag\n') +print(server.recv(1024)) +sleep(sleepT) +server.send(str(out)) +server.send(b'\n') +print(server.recv(1024)) +sleep(sleepT) diff --git a/forge-another-cookie/chall.py b/forge-another-cookie/chall.py new file mode 100644 index 0000000..65f02ae --- /dev/null +++ b/forge-another-cookie/chall.py @@ -0,0 +1,94 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Util.Padding import pad, unpad +from Cryptodome.Random import get_random_bytes +from Cryptodome.Util.number import long_to_bytes, bytes_to_long +#from secret import flag + +key = get_random_bytes(32) + +flag="puppa" + +def sanitize_field(field: str): + return field \ + .replace("/", "_") \ + .replace("&", "") \ + .replace(":", "") \ + .replace(";", "") \ + .replace("<", "") \ + .replace(">", "") \ + .replace('"', "") \ + .replace("'", "") \ + .replace("(", "") \ + .replace(")", "") \ + .replace("[", "") \ + .replace("]", "") \ + .replace("{", "") \ + .replace("}", "") \ + .replace("=", "") + + +def parse_cookie(cookie: str) -> dict: + parsed = {} + for field in cookie.split("&"): + key, value = field.strip().split("=") + key = sanitize_field(key.strip()) + value = sanitize_field(value.strip()) + parsed[key] = value + + return parsed + + +def login(): + username = input("Username: ") + username = sanitize_field(username) + + cipher = AES.new(key, AES.MODE_ECB) + + cookie = f"username={username}&admin=false" + #cookie=f"username={'A'*11}&admin=false" + print(cookie.encode()) + print(len(cookie.encode())) + print(pad(cookie.encode(),AES.block_size)) + out = bytes_to_long(cipher.encrypt(pad(cookie.encode(), AES.block_size))) + print(len(long_to_bytes(out))) + print(out) + #print(len(bytes_to_long(cipher.encrypt(pad(cookie.encode(), AES.block_size))))) + +def get_flag(): + cookie = int(input("Cookie: ")) + + cipher = AES.new(key=key, mode=AES.MODE_ECB) + + try: + dec_cookie = unpad(cipher.decrypt( + long_to_bytes(cookie)), AES.block_size).decode() + print("Dec:"+dec_cookie) + token = parse_cookie(dec_cookie) + print(token) + if token["admin"] != 'true': + print("You are not an admin!") + return + + print(f"OK! Your flag: {flag}") + except: + print("Something didn't work :C") + + +if __name__ == "__main__": + login() + + menu = \ + "What do you want to do?\n" + \ + "quit - quit the program\n" + \ + "help - show this menu again\n" + \ + "flag - get the flag\n" + \ + "> " + while True: + cmd = input(menu).strip() + + if cmd == "quit": + break + elif cmd == "help": + continue + elif cmd == "flag": + get_flag() diff --git a/guess-mode-double-shot/attack.py b/guess-mode-double-shot/attack.py new file mode 100644 index 0000000..0694ee4 --- /dev/null +++ b/guess-mode-double-shot/attack.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +from pwn import * + +HOST = "130.192.5.212" +PORT = "6532" + +server = remote(HOST, PORT) +sleepT = 0.5 +# Different IV when CBC therefore different encryption? +for i in range(128): + print('-'*20) + print(server.recv(1024)) + payload = (b'A'*32).hex() + server.send(payload) + server.send('\n') + sleep(sleepT) + enc = server.recv(1024).split(b":")[1].split(b'\n')[0].strip() + print(f"Encryption1:{enc}") + enc = bytes.fromhex(enc.decode('utf-8')) + sleep(sleepT) + #payload2 = bytes([d1 ^ e1 for d1, e1 in zip(b'A'*32, enc)]) + payload2 = (b'A'*32).hex() + #print(payload2) + + #payload2= (b'B'*32).hex() + server.send(payload2) + server.send('\n') + sleep(sleepT) + enc2 = server.recv(1024).split(b":")[1].split(b'\n')[0].strip() + #print(enc) + print(f"Encryption2:{enc2}") + enc2 = bytes.fromhex(enc2.decode('utf-8')) + sleep(sleepT) + if(enc==enc2): + print("ECB") + server.send(b"ECB") + server.send("\n") + else: + print("CBC") + server.send(b"CBC") + server.send("\n") + sleep(sleepT) + #print(server.recv(1024)) + sleep(sleepT) + +print(server.recv(1024)) diff --git a/guess-mode-double-shot/chall.py b/guess-mode-double-shot/chall.py new file mode 100644 index 0000000..f3aa2e1 --- /dev/null +++ b/guess-mode-double-shot/chall.py @@ -0,0 +1,61 @@ +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random +flag="puppa" +modes_mapping = { + "ECB": AES.MODE_ECB, + "CBC": AES.MODE_CBC +} + + +class RandomCipherRandomMode(): + def __init__(self): + modes = [AES.MODE_ECB, AES.MODE_CBC] + self.mode = random.choice(modes) + self.key = get_random_bytes(32) + if self.mode == AES.MODE_ECB: + self.iv = None + self.cipher = AES.new(key=self.key, mode=self.mode) + else: + self.iv = get_random_bytes(16) + self.cipher = AES.new(key=self.key, iv=self.iv, mode=self.mode) + + def encrypt(self, data): + return self.cipher.encrypt(data) + + def decrypt(self, data): + return self.cipher.decrypt(data) + + +def main(): + + for i in range(128): + cipher = RandomCipherRandomMode() + + print(f"Challenge #{i}") + + data = b"\00"*32 + + otp = get_random_bytes(len(data)) + #I dont know the OTP generated + for _ in range(2): + print(f"The otp is:{otp.hex()}") + #data = bytes.fromhex(input("Input: ").strip()) + if len(data) != 32: + print("Data must be 32 bytes long") + return + data = bytes([d ^ o for d, o in zip(data, otp)]) + print(f"Output: {cipher.encrypt(data).hex()}") + mode_test = input(f"What mode did I use? (ECB, CBC)\n") + if mode_test in modes_mapping.keys() and modes_mapping[mode_test] == cipher.mode: + print("OK, next") + else: + print("Wrong, sorry") + return + + print(f"The flag is: {flag}") + + +if __name__ == "__main__": + main() diff --git a/guess-mode-one-shot/ECBvsCBCClient.py b/guess-mode-one-shot/ECBvsCBCClient.py new file mode 100644 index 0000000..a65b247 --- /dev/null +++ b/guess-mode-one-shot/ECBvsCBCClient.py @@ -0,0 +1,46 @@ +import os +os.environ['PWNLIB_NOTERM'] = 'True' # Configuration patch to allow pwntools to be run inside of an IDE +os.environ['PWNLIB_SILENT'] = 'True' + +from pwn import * +from math import ceil +from Cryptodome.Cipher import AES + +#from myconfig import HOST,PORT + + + +BLOCK_SIZE = AES.block_size +BLOCK_SIZE_HEX = 2*BLOCK_SIZE + +HOST = "130.192.5.212" +PORT = "6531" + +server = remote(HOST, PORT) + +# stole from the server code... +# message = "This is what I received: " + msg + " -- END OF MESSAGE" +start_str = "This is what I received: " +# print(len(start_str)) +pad_len = ceil(len(start_str)/BLOCK_SIZE)*BLOCK_SIZE-len(start_str) + +msg = b"A"*(16*2+pad_len) #2 * AES.block_size + oad_len +print("Sending: "+str(msg)) +server.send(msg) + + +ciphertext = server.recv(1024) +ciphertext_hex = ciphertext.hex() +print(ciphertext_hex) + +server.close() + +for i in range(0,int(len(ciphertext_hex)//BLOCK_SIZE_HEX)): + print(ciphertext_hex[i*BLOCK_SIZE_HEX:(i+1)*BLOCK_SIZE_HEX]) + + +print("Selected mode is", end=' ') +if ciphertext[2*BLOCK_SIZE:3*BLOCK_SIZE] == ciphertext[3*BLOCK_SIZE:4*BLOCK_SIZE] : + print("ECB") +else: + print("CBC") diff --git a/guess-mode-one-shot/chall.py b/guess-mode-one-shot/chall.py new file mode 100644 index 0000000..7b04ee4 --- /dev/null +++ b/guess-mode-one-shot/chall.py @@ -0,0 +1,61 @@ +# see note info on smartphone + +from Cryptodome.Cipher import AES +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random + +modes_mapping = { + "ECB": AES.MODE_ECB, + "CBC": AES.MODE_CBC +} + + +class RandomCipherRandomMode(): + def __init__(self): + modes = [AES.MODE_ECB, AES.MODE_CBC] + self.mode = random.choice(modes) + self.key = get_random_bytes(32) + if self.mode == AES.MODE_ECB: + self.iv = None + self.cipher = AES.new(key=self.key, mode=self.mode) + else: + self.iv = get_random_bytes(16) + self.cipher = AES.new(key=self.key, iv=self.iv, mode=self.mode) + + def encrypt(self, data): + return self.cipher.encrypt(data) + + def decrypt(self, data): + return self.cipher.decrypt(data) + + +def main(): + + for i in range(128): + cipher = RandomCipherRandomMode() + + print(f"Challenge #{i}") + + otp = get_random_bytes(32) + print(f"The otp I'm using: {otp.hex()}") + data = bytes.fromhex(input("Input: ").strip()) + if len(data) != 32: + print("Data must be 32 bytes long") + return + + data = bytes([d ^ o for d, o in zip(data, otp)]) + print(f"Output: {cipher.encrypt(data).hex()}") + + mode_test = input(f"What mode did I use? (ECB, CBC)\n") + if mode_test in modes_mapping.keys() and modes_mapping[mode_test] == cipher.mode: + print("OK, next") + else: + print("Wrong, sorry") + return + + print(f"The flag is: puppa") + + +if __name__ == "__main__": + main() diff --git a/guess-mode-one-shot/main.py b/guess-mode-one-shot/main.py new file mode 100644 index 0000000..d5be861 --- /dev/null +++ b/guess-mode-one-shot/main.py @@ -0,0 +1,68 @@ +import os + +os.environ['PWNLIB_NOTERM'] = 'True' +os.environ['PWNLIB_SILENT'] = 'True' + +#The python script consider two bytes sent as one (Ex aa is \xaa so one byte) the same thing on the otp received. +from pwn import * +from Cryptodome.Cipher import AES + + +# see note info on smartphone +from Cryptodome.Random import get_random_bytes +#from secret import flag +import random +############################ +BLOCK_SIZE = AES.block_size +BLOCK_SIZE_HEX = 2*BLOCK_SIZE +############################ +HOST = "130.192.5.212" +PORT = "6531" +server = remote(HOST, PORT) +############################ +for i in range(128): + print("-"*10+f"{i}"+"-"*10) + print(f"{server.recvuntil(b'\n')}") + otp = server.recvuntil(b'\n').split(b':')[1].strip() + print(f"Received OTP:{otp}") + sleep(0.1) + otp_bytes = bytes.fromhex(otp.decode('utf-8')) + print(f"OTP bytes len:{len(otp_bytes)}") + prepayload = b"A"*32 # Remember to send newline + payload = bytes([p ^ o for p, o in zip(prepayload,otp_bytes)]) + ############################ + hex_string = "" + for byte in payload: + hex_string += f'{byte:02x}' + print(f"hexstring len:{len(hex_string)}") + ############################# + server.send(hex_string) + server.send(b'\n') + # "Input:" + print(f"{server.recv(6)}") + sleep(0.1) + ciphertext = server.recvuntil(b'\n').split(b'\n')[0].split(b':')[1].strip() + sleep(0.1) + ########################### + ciphertext_hex = ciphertext.hex() + + print(f"Ciphertext obtained len:{len(ciphertext)} AES_block_size:{AES.block_size}") + + for i in range(0,int(len(ciphertext_hex)//BLOCK_SIZE_HEX)): + print(ciphertext_hex[i*BLOCK_SIZE_HEX:(i+1)*BLOCK_SIZE_HEX]) + + print("Selected mode is", end=' ') + if ciphertext[0:32] == ciphertext[32:64] : + server.send("ECB") + print("ECB") + else: + server.send("CBC") + print("CBC") + server.send(b'\n') + print(f"{server.recvuntil(b'\n')}") + sleep(0.1) + print(f"Should be 'Ok Next':{server.recvuntil(b'\n')}") + print("-"*10+"-"*10) + #print(f"{server.recv(1024)}") + #print(f"{server.recv(1024)}") +print(f"FLAG:{server.recv(1024)}") \ No newline at end of file diff --git a/long-secret-message/attack.py b/long-secret-message/attack.py new file mode 100644 index 0000000..834382d --- /dev/null +++ b/long-secret-message/attack.py @@ -0,0 +1,211 @@ +#!/usr/bin/env python3 +import numpy +from string import * +with open("./hacker-manifesto.enc") as f: + lines = f.readlines() + +for i in range(len(lines)): + lines[i] = bytes.fromhex(lines[i]) + +#shortest_line = min(lines,key=len) +#min_len = len(shortest_line) +longest_line = max(lines, key=len) +max_len = len(longest_line) +candidates_list = [] + +CHARACTER_FREQ = { + 'a': 0.0651738, 'b': 0.0124248, 'c': 0.0217339, 'd': 0.0349835, 'e': 0.1041442, 'f': 0.0197881, 'g': 0.0158610, + 'h': 0.0492888, 'i': 0.0558094, 'j': 0.0009033, 'k': 0.0050529, 'l': 0.0331490, 'm': 0.0202124, 'n': 0.0564513, + 'o': 0.0596302, 'p': 0.0137645, 'q': 0.0008606, 'r': 0.0497563, 's': 0.0515760, 't': 0.0729357, 'u': 0.0225134, + 'v': 0.0082903, 'w': 0.0171272, 'x': 0.0013692, 'y': 0.0145984, 'z': 0.0007836, ' ': 0.1918182 +} # ',' + +for byte_to_guess in range(max_len): + #print(f"Byte num:{byte_to_guess}") + counters = numpy.zeros(256,dtype=float) + for guessed_byte in range(256): + for line in lines: + #print(f"Now line: {line}") + #line = bytes.fromhex(line) + if byte_to_guess >= len(line): + continue + if chr(line[byte_to_guess] ^ guessed_byte) in printable: + counters[guessed_byte] += CHARACTER_FREQ.get(chr(line[byte_to_guess] ^ guessed_byte).lower(),0) + + max_match = max(counters) + + match_list = [(counters[i],i) for i in range(256)] + ordered_match_list=sorted(match_list, reverse=True) + + candidates = [] + #for pair in ordered_match_list: + # if pair[0] < max_match * .95: + # break + # candidates.append(pair) + + candidates_list.append(ordered_match_list) + +keystream = bytearray() +for x in candidates_list: + keystream += x[0][1].to_bytes(1,byteorder='big') + + +from Cryptodome.Util.strxor import strxor + +dec = keystream[0] ^ lines[0][0] +mask = dec ^ ord('T') +keystream[0] = keystream[0] ^ mask + +dec1 = keystream[1] ^ lines[0][1] +mask = dec1 ^ ord('h') +keystream[1] = keystream[1] ^ mask + +dec2 = keystream[2] ^ lines[0][2] +mask = dec2 ^ ord('i') +keystream[2] = keystream[2] ^ mask + +dec3 = keystream[3] ^ lines[0][3] +mask = dec3 ^ ord('s') +keystream[3] = keystream[3] ^ mask + +dec5 = keystream[5] ^ lines[0][5] +mask = dec5 ^ ord('i') +keystream[5] = keystream[5] ^ mask + +pos=28 +dec = keystream[pos] ^ lines[0][pos] +mask = dec ^ ord('o') +keystream[pos] = keystream[pos] ^ mask + +l=4 +pos=17 +dec = keystream[pos] ^ lines[4][pos] +mask = dec ^ ord('s') +keystream[pos] = keystream[pos] ^ mask + +l=4 +pos=20 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('w') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=34 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord(' ') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=36 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord(' ') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=37 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('s') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=38 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('e') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=40 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('v') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=49 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('r') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=53 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('b') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=42 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('w') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=43 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('a') +keystream[pos] = keystream[pos] ^ mask + +l=2 +pos=45 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('n') +keystream[pos] = keystream[pos] ^ mask + +l=0 +pos=46 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('o') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=57 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('t') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=58 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('i') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=59 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('n') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=64 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('t') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=65 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('h') +keystream[pos] = keystream[pos] ^ mask + +l=1 +pos=67 +dec = keystream[pos] ^ lines[l][pos] +mask = dec ^ ord('u') +keystream[pos] = keystream[pos] ^ mask + + + + + + + + + + + + + + + + +for line in lines: + l = min(len(keystream),len(line)) + print(strxor(line[:l],keystream[:l])) diff --git a/long-secret-message/chall-original.py b/long-secret-message/chall-original.py new file mode 100644 index 0000000..15c5b71 --- /dev/null +++ b/long-secret-message/chall-original.py @@ -0,0 +1,19 @@ +import os +from Cryptodome.Cipher import ChaCha20 + +key = os.urandom(32) +nonce = os.urandom(12) +print(f"Using key: {key.hex()}, nonce: {nonce.hex()}") + +with open("./hacker-manifesto.txt") as f: + lines = f.readlines() +# +#hacker-manifesto.txt encrypted in enc +enc = [] + +for line in lines: + cipher = ChaCha20.new(key=key, nonce=nonce) + enc.append(cipher.encrypt(line.encode()).hex()) + +with open("./hacker-manifesto.enc", "w") as f: + f.write("\n".join(enc)) diff --git a/long-secret-message/chall.py b/long-secret-message/chall.py new file mode 100644 index 0000000..944429b --- /dev/null +++ b/long-secret-message/chall.py @@ -0,0 +1,21 @@ +import os +from Cryptodome.Cipher import ChaCha20 + +key = os.urandom(32) +nonce = os.urandom(12) +print(f"Using key: {key.hex()}, nonce: {nonce.hex()}") + +with open("./hacker-manifesto.txt") as f: + lines = f.readlines() +# +#hacker-manifesto.txt encrypted in enc +enc = [] +#Maybe recreating the cipher generate the same keystream? +# Yes it is. + +for line in lines: + cipher = ChaCha20.new(key=key, nonce=nonce) + enc.append(cipher.encrypt(line.encode()).hex()) + +with open("./hacker-manifesto.enc", "w") as f: + f.write("\n".join(enc)) diff --git a/long-secret-message/hacker-manifesto.enc b/long-secret-message/hacker-manifesto.enc new file mode 100644 index 0000000..f0f47e4 --- /dev/null +++ b/long-secret-message/hacker-manifesto.enc @@ -0,0 +1,8 @@ +bafb25656f777862abf3da47fc6cacbd314a2b551260ffa17ac09bc4b88a42ac31620c5733294beae8087fb92801c8bc8c0b682f294ea8bb60ed3dbe02f933f68eade8aa43 +8cf62d633b672b2da2a6dc0fda1888fc2a41725b6b2bff9873cede93a28b4be87e6b4a1667324bb8fb0d79bf7c12cba0c90b6232295fb8b733ea23b911ba2cb3dab1efba3d79 +9ef2357f21792b24abf48810d7599ebd3c4a2917586ebd9032c1d2c1a3d84da0746c1a572e270ea3f9446dbb2f1d80a68c1873252958b9fe30ec25b11fee3ebfdcb0eea86979 +89ff39623b716531e8a6c909db1893f22a053f1a5022ff806185f8e18ea87a872338115967164beae81c6ab63301c2fc8244260a675ee0a72feb6ab417f637fadbaaa0c5 +8de1257b26706a2eb7a88830da188fe53656285b4b27ab9d7dd0cf93a49347a6316e051b283302eafa0d6eb23306d3f2c20b72226654a1b229ea33fb56ed32aec6b6f5bb6979 +9cf6207f28776437b7a6ca0ede4bc4b371051d15586ea69a6785d8d2bb940ebd622d09052e2c47a4ec0869f47c2ac8a78c087322655ee0bf34f127be15ba39b5c3bbf3e36979 +97fc3936387f6c27e4f1c915cc14cae430507c16493cbb9060899bcab88d0eab79680b036b614fa4e94476b33953d3bd8c1f756b6854a4fe34ec33f702f57bb7cfb2e5ef3c005b9c +8cf6207f2a686e62adf28f149f5e85ef7f4a29091c21a89b32c3d7d2b0d40eab21680940257319e7bc527fe27147c4e49c473f2a685eeded21a679b315f96aef97eee2e1 \ No newline at end of file diff --git a/long-secret-message/original.enc b/long-secret-message/original.enc new file mode 100644 index 0000000..f0f47e4 --- /dev/null +++ b/long-secret-message/original.enc @@ -0,0 +1,8 @@ +bafb25656f777862abf3da47fc6cacbd314a2b551260ffa17ac09bc4b88a42ac31620c5733294beae8087fb92801c8bc8c0b682f294ea8bb60ed3dbe02f933f68eade8aa43 +8cf62d633b672b2da2a6dc0fda1888fc2a41725b6b2bff9873cede93a28b4be87e6b4a1667324bb8fb0d79bf7c12cba0c90b6232295fb8b733ea23b911ba2cb3dab1efba3d79 +9ef2357f21792b24abf48810d7599ebd3c4a2917586ebd9032c1d2c1a3d84da0746c1a572e270ea3f9446dbb2f1d80a68c1873252958b9fe30ec25b11fee3ebfdcb0eea86979 +89ff39623b716531e8a6c909db1893f22a053f1a5022ff806185f8e18ea87a872338115967164beae81c6ab63301c2fc8244260a675ee0a72feb6ab417f637fadbaaa0c5 +8de1257b26706a2eb7a88830da188fe53656285b4b27ab9d7dd0cf93a49347a6316e051b283302eafa0d6eb23306d3f2c20b72226654a1b229ea33fb56ed32aec6b6f5bb6979 +9cf6207f28776437b7a6ca0ede4bc4b371051d15586ea69a6785d8d2bb940ebd622d09052e2c47a4ec0869f47c2ac8a78c087322655ee0bf34f127be15ba39b5c3bbf3e36979 +97fc3936387f6c27e4f1c915cc14cae430507c16493cbb9060899bcab88d0eab79680b036b614fa4e94476b33953d3bd8c1f756b6854a4fe34ec33f702f57bb7cfb2e5ef3c005b9c +8cf6207f2a686e62adf28f149f5e85ef7f4a29091c21a89b32c3d7d2b0d40eab21680940257319e7bc527fe27147c4e49c473f2a685eeded21a679b315f96aef97eee2e1 \ No newline at end of file diff --git a/openssl-asym/convert.py b/openssl-asym/convert.py new file mode 100644 index 0000000..5e5b653 --- /dev/null +++ b/openssl-asym/convert.py @@ -0,0 +1,12 @@ +payload1 = "00:9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:60:7f:41:bd:85:7b:d9:04:e1:97:5b:1f:9b:05:ce:ac:2c:c4:55:3f:b4:8b:89:4d:0a:50:9a:09:4e:5e:8f:5b:5f:55:69:72:5f:04:9b:3a:8a:09:b4:7f:8d:b2:ca:52:0e:5e:bf:f4:b0:ee:c9:ba:dc:93:4f:6d:d3:1f:82:1a:d9:fc:2c:a7:3f:18:23:0d:d7:44:c7:28:54:67:84:ee:73:92:65:f0:1c:e8:1e:6d:4d:95:65:b4:c8:4f:b8:04:62:58:2b:ee:32:64:a0:a7:dc:99:25:0e:50:53:76:bc:30:db:71:5e:93:d6:9f:1f:88:1c:76:5d:82:c8:59:39:51" +payload2 = "00:d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07" +print("Payload1:") +for i in payload1.split(":"): + print(i, end="") +print("") +print("Payload2:") +for i in payload2.split(":"): + print(i, end="") +print("") +print("Length "+ str(len(payload1.split(":")))) +print("Length "+ str(len(payload2.split(":")))) \ No newline at end of file diff --git a/openssl-asym/create_flag.py b/openssl-asym/create_flag.py new file mode 100644 index 0000000..4ff8d0a --- /dev/null +++ b/openssl-asym/create_flag.py @@ -0,0 +1,13 @@ +import sys + +for i in sys.argv: + payload = i + mlen = len(payload.split(":")) + print("------") + print("CRYPTO25{",end="") + if mlen % 64 == 0: + print("00:",end="") + print(payload,end="") + print("}") + print("Length:"+str(mlen)) + print("------") \ No newline at end of file diff --git a/openssl-asym/prime b/openssl-asym/prime new file mode 100755 index 0000000..080049b Binary files /dev/null and b/openssl-asym/prime differ diff --git a/openssl-asym/prime.c b/openssl-asym/prime.c new file mode 100644 index 0000000..4c6b57a --- /dev/null +++ b/openssl-asym/prime.c @@ -0,0 +1,85 @@ +#include +#include +#include +#define PRINT(obj) print_fmt(BN_bn2hex(obj)) +void print_fmt(char* after){ + for(int i=0; i < strlen(after); i++){ + if(i != 0 && i % 2 == 0) + printf(":"); + if(after[i] - '0' <= 9 && after[i] - '0' >= 0) + printf("%c",after[i]); + else + printf("%c", after[i]+32); + } +} +int main(){ + BIGNUM *bn1 = BN_new(); + BIGNUM *bn2 = BN_new(); + BIGNUM *res = BN_new(); + BIGNUM *rem = BN_new(); + BN_CTX *ctx = BN_CTX_new(); + char payload1[] = "009eee82dc2cd4a00c4f5a7b8663b0c1ed0677fcebde1a235df4c3ff876a7dadc607faa835f6ae0503573e223676d50d574f99f958ad637ae745a6aafa023423b69d34157b1141b6b1cab91acd2955bd42f504abdf454a9d4eca4e01f9f8745967eeb6a9fb96b7c09400178a530eb6d831c968e66438d3633a04d7886bf0e1ad607f41bd857bd904e1975b1f9b05ceac2cc4553fb48b894d0a509a094e5e8f5b5f5569725f049b3a8a09b47f8db2ca520e5ebff4b0eec9badc934f6dd31f821ad9fc2ca73f18230dd744c728546784ee739265f01ce81e6d4d9565b4c84fb80462582bee3264a0a7dc99250e505376bc30db715e93d69f1f881c765d82c8593951"; + char payload2[] = "00d2c601326b4c4b855f527bb78ed68ae4c8767e6bc9249a3ecacd2fc9b875d4f97111e1cfbe62d32c5ff9fd9bfaed62f3df44c757fbee9bb232cb5449296c692e301d8c1ffab18ee44966c1fb927c82ca60c940a40ab2db50ecf6ff98a71623388d06d27ca9858ac22b4dd4e6f189e5b04254a05f3cddc764330511fbee8b2607"; + BN_hex2bn(&bn1, payload1); + BN_hex2bn(&bn2,payload2); + //printf(" --- ADD Operation: ---\n"); + BN_add(res, bn1, bn2); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //printf("\n--- SUB Operation ---\n"); + BN_sub(res, bn1, bn2); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //printf("\n--- MUL Operation --- \n"); + BN_mul(res,bn1,bn2,ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf(" "); + //Skip BN_sqr + BN_div(res,rem,bn1,bn2,ctx); + PRINT(res); + printf(" "); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n DIV is prime \n"); + //else + // printf("DIV is not prime \n"); + //printf("\nReminder:\n"); + PRINT(rem); + printf(" "); + //printf("\n --- MOD Operation --- \n"); + BN_mod(rem, bn1, bn2,ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(rem); + printf(" "); + //printf("\n --- NNMOD Operation --- \n"); + BN_nnmod(rem, bn1, bn2, ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + + PRINT(rem); + printf(" "); + //printf("\n --- GCD Operation --- \n"); + BN_gcd(res, bn1, bn2, ctx); + //if(BN_check_prime(bn1, NULL, NULL)) + // printf("\n NUMBER is prime \n"); + PRINT(res); + printf("\n"); + //if(BN_check_prime(bn1,NULL,NULL)){ + // printf("BN1 is prime\n"); + //} + //if(BN_check_prime(bn2,NULL,NULL)){ + // printf("BN2 is prime\n"); + //} + BN_free(bn1); + BN_free(bn2); + BN_free(res); + BN_free(rem); + BN_CTX_free(ctx); + return 0; +} \ No newline at end of file diff --git a/openssl-asym/python b/openssl-asym/python new file mode 100644 index 0000000..1532560 --- /dev/null +++ b/openssl-asym/python @@ -0,0 +1 @@ +9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:61:52:07:be:b7:e7:25:50:66:f6:ad:9b:52:94:a5:37:11:8c:cb:be:20:54:ad:e7:49:1b:67:39:18:17:05:30:58:c6:7b:54:2e:c2:fe:0d:b6:69:ae:7d:29:ad:b7:b5:02:3e:04:bc:08:ea:b8:56:8e:c6:1a:c2:1c:48:ee:84:08:2c:4a:33:5f:12:d4:9c:bb:8e:2d:ea:4f:fa:01:71:3d:f3:2f:30:c0:f2:d1:48:9e:82:5c:b4:60:f6:ce:27:9a:e5:32:c0:af:0e:26:32:9e:c4:72:e3:37:45:00:a1:e1:1d:c5:fe:f3:13:7c:e6:ec:4f:7b:6f:7e:b6:e4:5f:58 9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:5f:ac:7b:bc:53:10:8c:b9:5c:38:08:a3:e3:76:f8:21:47:fb:de:c1:48:c2:64:b2:cb:85:cc:d9:84:a6:19:86:65:e4:57:90:8f:46:38:67:5d:a9:ba:81:f1:b7:dc:ef:1a:7f:7b:2d:58:f2:db:1f:2a:60:84:19:89:f6:15:b1:ab:cc:0f:1b:1f:1d:71:7e:f2:fb:60:66:58:d5:08:6b:a9:31:9c:af:78:dd:6b:91:fc:a8:6e:b5:2f:a8:a1:e1:29:cb:25:1b:b5:bb:1b:1d:1a:6d:d7:39:69:61:ec:d6:80:99:1c:be:34:99:c1:58:23:e9:71:4b:86:d9:ce:13:4a 82:da:94:90:0e:c6:91:4f:06:4d:4b:55:0d:42:f9:30:54:4b:20:56:7e:44:bd:29:20:83:df:71:b1:37:69:b6:b8:be:5f:ec:b9:b4:eb:55:85:d1:7f:39:00:38:11:9e:22:f2:6d:ad:cc:0e:e5:27:60:01:ab:7e:a0:3e:55:7a:4b:e7:71:bc:ed:69:7f:44:07:20:94:27:49:a9:04:20:82:65:e9:e3:84:0a:e2:86:70:18:23:87:1a:f6:2e:cf:3c:67:c1:59:09:4b:ca:1e:c2:4f:6f:b6:ef:bd:a1:4b:fe:00:02:87:ab:29:05:2d:0a:f1:43:0c:f1:c4:2a:ed:83:af:9b:b1:10:bc:c4:78:bc:57:43:5b:3d:ed:61:8c:de:e3:14:15:f3:09:7a:d9:27:e2:b0:22:9c:4c:57:b2:59:59:71:c2:5f:79:92:ca:29:9c:06:d9:80:2d:89:45:b0:e5:42:fa:85:fb:0b:75:4f:9b:de:b9:22:5a:72:d2:48:c0:6d:d6:11:d2:18:ee:6f:78:0e:87:04:14:8c:eb:84:52:47:5c:69:f2:e7:4e:83:2f:b0:22:0d:54:25:b1:67:fd:0b:5f:da:2a:79:19:50:e5:03:56:08:d9:5d:25:24:a7:4f:41:4a:fc:5d:f0:f5:d8:df:65:fa:db:52:e7:74:1d:4b:82:c5:6d:29:d2:5a:ff:7f:e8:58:72:42:ca:02:b5:e8:db:bc:b4:3b:4e:d3:d9:12:94:d7:b1:50:2b:be:05:8e:32:ce:13:15:d9:4b:af:a9:c0:5e:5b:28:38:76:31:41:d2:0e:c5:1e:85:61:f6:b0:6c:10:43:18:d4:e1:21:05:1b:da:3a:9d:36:d3:06:6a:3f:fb:7c:da:4e:f5:4f:82:d0:6d:85:59:f9:e2:20:f4:60:bd:5f:e7:dc:82:b3:16:89:bd:d9:cc:05:4a:08:c7:be:91:89:dd:de:a9:ad:0b:3d:e1:75:f9:7c:53:42:47:77:25:ed:97:37 c1:08:c9:57:09:e0:73:72:7d:b4:5e:4b:4b:20:bf:3c:57:41:bf:5c:bc:14:4d:a6:6a:bd:4d:86:69:06:9f:73:9d:40:2c:60:0f:29:7b:0b:4c:c7:7b:f6:5e:e5:a6:10:02:71:3e:74:a5:ac:b9:7f:f3:c5:78:42:ca:fe:50:6f:5b:1b:df:c7:ee:36:20:bb:56:73:ab:11:fa:e2:bf:a8:69:7d:e6:f4:5c:27:c1:21:69:3c:0e:1d:2d:dd:70:25:11:57:9f:8a:5a:60:58:09:90:5c:54:e0:55:2a:55:1c:e1:36:9d:14:70:ab:b4:e2:ce:c4:92:6b:fa:14:8f:e7 0 0 0 d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07 diff --git a/openssl-dgst/HMAC_computation_EVP.c b/openssl-dgst/HMAC_computation_EVP.c new file mode 100644 index 0000000..fb25e0a --- /dev/null +++ b/openssl-dgst/HMAC_computation_EVP.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "deadbeefdeadbeef"; + unsigned char secret[] = "this_is_my_secret"; + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 16); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha512(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + if(!EVP_DigestSignUpdate(hmac_ctx, secret, strlen(secret))) + handle_errors(); + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + if(!EVP_DigestSignUpdate(hmac_ctx, secret, strlen(secret))) + handle_errors(); + + unsigned char hmac_value[EVP_MD_size(EVP_sha512())]; + size_t hmac_len = EVP_MD_size(EVP_sha512 + ()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("CRYPTO25{"); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("}"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-dgst/file.txt b/openssl-dgst/file.txt new file mode 100644 index 0000000..b350ab7 --- /dev/null +++ b/openssl-dgst/file.txt @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \ No newline at end of file diff --git a/openssl-dgst/hash3 b/openssl-dgst/hash3 new file mode 100755 index 0000000..1e28fd6 Binary files /dev/null and b/openssl-dgst/hash3 differ diff --git a/openssl-dgst/hash3.c b/openssl-dgst/hash3.c new file mode 100644 index 0000000..84cd346 --- /dev/null +++ b/openssl-dgst/hash3.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include + +#define MAXBUF 1024 + +int main(int argc, char **argv){ + + + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + EVP_MD_CTX *md = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + EVP_DigestInit(md, EVP_sha256()); + + int n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + EVP_DigestUpdate(md, buffer, n); + } + + unsigned char md_value[EVP_MD_size(EVP_sha256())]; + int md_len; + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + EVP_DigestFinal_ex(md, md_value, &md_len); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(md); + + printf("The digest is: "); + for(int i = 0; i < md_len; i++) + printf("%02x", md_value[i]); + printf("\n"); + + return 0; + +} diff --git a/openssl-dgst/hex b/openssl-dgst/hex new file mode 100755 index 0000000..d7368f7 Binary files /dev/null and b/openssl-dgst/hex differ diff --git a/openssl-dgst/keyedigest.c b/openssl-dgst/keyedigest.c new file mode 100644 index 0000000..73518f2 --- /dev/null +++ b/openssl-dgst/keyedigest.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include + +#define MAXBUF 1024 + +int main(int argc, char **argv){ + + + unsigned char secret[] = "this_is_my_secret"; + if(argc != 2){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + EVP_MD_CTX *md = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + EVP_DigestInit(md, EVP_sha512()); + + int n; + unsigned char buffer[MAXBUF]; + EVP_DigestUpdate(md, secret, strlen(secret)); + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + EVP_DigestUpdate(md, buffer, n); + } + EVP_DigestUpdate(md, secret, strlen(secret)); + unsigned char md_value[EVP_MD_size(EVP_sha512())]; + int md_len; + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + EVP_DigestFinal_ex(md, md_value, &md_len); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(md); + + printf("The digest is: "); + for(int i = 0; i < md_len; i++) + printf("%02x", md_value[i]); + printf("\n"); + + return 0; + +} \ No newline at end of file diff --git a/openssl-enc/COLORFGBG=15;0 b/openssl-enc/COLORFGBG=15;0 new file mode 100644 index 0000000..71db247 --- /dev/null +++ b/openssl-enc/COLORFGBG=15;0 @@ -0,0 +1,2 @@ + ÒçôÿûZÔ +®á5Xìº1¿sºàb7bÆ\kËHP&³p‘ãÜ«8 \ No newline at end of file diff --git a/openssl-enc/aes128.txt b/openssl-enc/aes128.txt new file mode 100644 index 0000000..e69de29 diff --git a/openssl-enc/code.c b/openssl-enc/code.c new file mode 100644 index 0000000..73a49f0 --- /dev/null +++ b/openssl-enc/code.c @@ -0,0 +1,118 @@ +#include +#include + +#include +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 +#define MAX_BUFFER 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + +int main(int argc, char **argv) +{ + +// int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc); +// int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); +// int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + + + + + if(argc != 5){ + fprintf(stderr,"Invalid parameters. Usage: %s file_in key iv file_out\n",argv[0]); + exit(1); + } + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + abort(); + } + + if(strlen(argv[2])!=64){ + fprintf(stderr,"Wrong key length\n"); + abort(); + } + if(strlen(argv[3])!=32){ + fprintf(stderr,"Wrong IV length\n"); + abort(); + } + + FILE *f_out; + if((f_out = fopen(argv[4],"wb")) == NULL) { + fprintf(stderr,"Couldn't open the output file, try again\n"); + abort(); + } + + unsigned char key[strlen(argv[2])/2]; + for(int i = 0; i < strlen(argv[2])/2;i++){ + sscanf(&argv[2][2*i],"%2hhx", &key[i]); + } + + unsigned char iv[strlen(argv[3])/2]; + for(int i = 0; i < strlen(argv[3])/2;i++){ + sscanf(&argv[3][2*i],"%2hhx", &iv[i]); + } + + /* Load the human readable error strings for libcrypto */ + ERR_load_crypto_strings(); + /* Load all digest and cipher algorithms */ + OpenSSL_add_all_algorithms(); + + + + // pedantic mode: check NULL + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + + if(!EVP_CipherInit(ctx,EVP_chacha20(), key, iv, DECRYPT)) + handle_errors(); + + int length; + unsigned char ciphertext[MAX_BUFFER+16]; + + int n_read; + unsigned char buffer[MAX_BUFFER]; + + while((n_read = fread(buffer,1,MAX_BUFFER,f_in)) > 0){ + printf("n_Read=%d-",n_read); + if(!EVP_CipherUpdate(ctx,ciphertext,&length,buffer,n_read)) + handle_errors(); + printf("length=%d\n",length); + if(fwrite(ciphertext, 1, length,f_out) < length){ + fprintf(stderr,"Error writing the output file\n"); + abort(); + } + } + + if(!EVP_CipherFinal_ex(ctx,ciphertext,&length)) + handle_errors(); + + printf("lenght=%d\n",length); + + if(fwrite(ciphertext,1, length, f_out) < length){ + fprintf(stderr,"Error writing in the output file\n"); + abort(); + } + + EVP_CIPHER_CTX_free(ctx); + + fclose(f_in); + fclose(f_out); + + printf("File encrypted!\n"); + + + // completely free all the cipher data + CRYPTO_cleanup_all_ex_data(); + /* Remove error strings */ + ERR_free_strings(); + + return 0; +} + diff --git a/openssl-enc/enc b/openssl-enc/enc new file mode 100755 index 0000000..e003422 Binary files /dev/null and b/openssl-enc/enc differ diff --git a/openssl-enc/enc.exe b/openssl-enc/enc.exe new file mode 100755 index 0000000..41b2e90 Binary files /dev/null and b/openssl-enc/enc.exe differ diff --git a/openssl-enc/enc1.c b/openssl-enc/enc1.c new file mode 100644 index 0000000..04a05b6 --- /dev/null +++ b/openssl-enc/enc1.c @@ -0,0 +1,44 @@ +#include +#include + +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 + +int main() +{ + + + unsigned char key[] = "0123456789ABCDEF"; + unsigned char iv[] = "1111111111111111"; + + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + EVP_CipherInit(ctx,EVP_aes_128_cbc(), key, iv, ENCRYPT); + //This disable the padding + EVP_CIPHER_CTX_set_padding(ctx, 0); + + unsigned char plaintext[] = "This is the plaintext to encrypt."; //len 33 + unsigned char ciphertext[48]; + + int update_len, final_len; + int ciphertext_len=0; + + EVP_CipherUpdate(ctx,ciphertext,&update_len,plaintext,strlen(plaintext)); + ciphertext_len+=update_len; + printf("update size: %d\n",ciphertext_len); + + EVP_CipherFinal_ex(ctx,ciphertext+ciphertext_len,&final_len); + ciphertext_len+=final_len; + + EVP_CIPHER_CTX_free(ctx); + + printf("Ciphertext lenght = %d\n", ciphertext_len); + for(int i = 0; i < ciphertext_len; i++) + printf("%02x", ciphertext[i]); + printf("\n"); + + return 0; +} + diff --git a/openssl-enc/file.enc b/openssl-enc/file.enc new file mode 100644 index 0000000..e3b93ce --- /dev/null +++ b/openssl-enc/file.enc @@ -0,0 +1 @@ +$·4€jz|‚ZÈÚ9»ìýÜÙmi2+`Ù \ No newline at end of file diff --git a/openssl-enc/file.txt b/openssl-enc/file.txt new file mode 100644 index 0000000..e7b7fa4 --- /dev/null +++ b/openssl-enc/file.txt @@ -0,0 +1 @@ +CRYPTO25{MyDecryptedString} diff --git a/openssl-enc/guess.exe b/openssl-enc/guess.exe new file mode 100755 index 0000000..16d0e39 Binary files /dev/null and b/openssl-enc/guess.exe differ diff --git a/openssl-enc/guess.py b/openssl-enc/guess.py new file mode 100644 index 0000000..5b0d96b --- /dev/null +++ b/openssl-enc/guess.py @@ -0,0 +1,50 @@ +import os +cipher_names = [ + "AES-128-CBC", + "AES-192-CBC", + "AES-256-CBC", + "AES-128-CTR", + "AES-192-CTR", + "AES-256-CTR", + "AES-128-GCM", + "AES-192-GCM", + "AES-256-GCM", + "DES-CBC", + "DES-EDE3-CBC", + "ChaCha20-Poly1305", + "Camellia-128-CBC", + "Camellia-192-CBC", + "Camellia-256-CBC", + "Camellia-128-CTR", + "Camellia-192-CTR", + "Camellia-256-CTR", + "BF-CBC", # Blowfish + "BF-CFB", # Blowfish + "BF-OFB", # Blowfish + "BF-ECB", # Blowfish + "CAST5-CBC", # CAST5 + "CAST5-CFB", # CAST5 + "CAST5-OFB", # CAST5 + "CAST5-ECB", # CAST5 + "IDEA-CBC", # IDEA + "IDEA-CFB", # IDEA + "IDEA-OFB", # IDEA + "IDEA-ECB", # IDEA + "RC2-CBC", # RC2 + "RC2-CFB", # RC2 + "RC2-OFB", # RC2 + "RC2-ECB", # RC2 + "RC4", # RC4 (stream cipher) + "ARIA-128-CBC", #ARIA + "ARIA-192-CBC", #ARIA + "ARIA-256-CBC", #ARIA + "ARIA-128-CTR", #ARIA + "ARIA-192-CTR", #ARIA + "ARIA-256-CTR", #ARIA + "ARIA-128-GCM", #ARIA + "ARIA-192-GCM", #ARIA + "ARIA-256-GCM", #ARIA +] + +for i in cipher_names: + os.system("./guess.exe guessalgo.enc "+i) diff --git a/openssl-enc/guessalgo.c b/openssl-enc/guessalgo.c new file mode 100644 index 0000000..9500441 --- /dev/null +++ b/openssl-enc/guessalgo.c @@ -0,0 +1,121 @@ +#include +#include + +#include +#include + + +#define ENCRYPT 1 +#define DECRYPT 0 +#define MAX_BUFFER 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + +int main(int argc, char **argv) +{ + +// int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc); +// int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); +// int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + + + + + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s file_in ALGO-TO-USE\n",argv[0]); + exit(1); + } + + + FILE *f_in; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + abort(); + } + /* + if(strlen(argv[2])!=32){ + fprintf(stderr,"Wrong key length\n"); + abort(); + } + if(strlen(argv[3])!=32){ + fprintf(stderr,"Wrong IV length\n"); + abort(); + } + */ + /*FILE *f_out; + if((f_out = fopen(argv[2],"wb")) == NULL) { + fprintf(stderr,"Couldn't open the output file, try again\n"); + abort(); + }*/ + unsigned char key[] = "0123456789ABCDEF"; + unsigned char iv[] = "0123456789ABCDEF"; + /*unsigned char key[strlen(argv[2])/2]; + for(int i = 0; i < strlen(argv[2])/2;i++){ + sscanf(&argv[2][2*i],"%2hhx", &key[i]); + } + + unsigned char iv[strlen(argv[3])/2]; + for(int i = 0; i < strlen(argv[3])/2;i++){ + sscanf(&argv[3][2*i],"%2hhx", &iv[i]); + } + */ + /* Load the human readable error strings for libcrypto */ + ERR_load_crypto_strings(); + /* Load all digest and cipher algorithms */ + OpenSSL_add_all_algorithms(); // deprecated since version 1.1.1 + + + + // pedantic mode: check NULL + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + + if(!EVP_CipherInit(ctx,EVP_get_cipherbyname(argv[2]), key, iv, DECRYPT)) + handle_errors(); + EVP_CIPHER_CTX_set_padding(ctx,0); + int length; + unsigned char ciphertext[MAX_BUFFER+16]; + + int n_read; + unsigned char buffer[MAX_BUFFER]; + + while((n_read = fread(buffer,1,MAX_BUFFER,f_in)) > 0){ + //printf("n_Read=%d-",n_read); + if(!EVP_CipherUpdate(ctx,ciphertext,&length,buffer,n_read)) + handle_errors(); + //printf("length=%d\n",length); + + /*if(fwrite(ciphertext, 1, length,f_out) < length){ + fprintf(stderr,"Error writing the output file\n"); + abort(); + }*/ + } + + if(!EVP_CipherFinal_ex(ctx,ciphertext,&length)) + handle_errors(); + + //printf("lenght=%d\n",length); + printf("ALGORITHM:%s, Output: %s\n", argv[2], ciphertext); + /*if(fwrite(ciphertext,1, length, f_out) < length){ + fprintf(stderr,"Error writing in the output file\n"); + abort(); + } + */ + EVP_CIPHER_CTX_free(ctx); + + fclose(f_in); +// fclose(f_out); + + //printf("File decrypted!\n"); + + + // completely free all the cipher data + CRYPTO_cleanup_all_ex_data(); + /* Remove error strings */ + ERR_free_strings(); + + return 0; +} + diff --git a/openssl-enc/guessalgo.enc b/openssl-enc/guessalgo.enc new file mode 100644 index 0000000..7a382ce --- /dev/null +++ b/openssl-enc/guessalgo.enc @@ -0,0 +1 @@ +e’~¢Mv•ÀÚ6—ñ˜9"Ôh•­|†/y0oÿQ>ø \ No newline at end of file diff --git a/openssl-enc/output.txt b/openssl-enc/output.txt new file mode 100644 index 0000000..e69de29 diff --git a/openssl-hmac/HMAC_computation_EVP.c b/openssl-hmac/HMAC_computation_EVP.c new file mode 100644 index 0000000..3540d15 --- /dev/null +++ b/openssl-hmac/HMAC_computation_EVP.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "keykeykeykeykeykey"; + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s filename\n",argv[0]); + exit(1); + } + + + FILE *f_in,*f_in2; + if((f_in = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the input file, try again\n"); + exit(1); + } + if((f_in2 = fopen(argv[2],"r")) == NULL) { + fprintf(stderr,"Couldn't open the second input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 18); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha256(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + unsigned char buf2[MAXBUF]; + while((n = fread(buf2,1,MAXBUF,f_in2)) > 0){ + if(!EVP_DigestSignUpdate(hmac_ctx, buf2, n)) + handle_errors(); + } + + unsigned char hmac_value[EVP_MD_size(EVP_sha256())]; + size_t hmac_len = EVP_MD_size(EVP_sha256()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("The HMAC is: "); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("\n"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-hmac/file.txt b/openssl-hmac/file.txt new file mode 100644 index 0000000..b350ab7 --- /dev/null +++ b/openssl-hmac/file.txt @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \ No newline at end of file diff --git a/openssl-hmac/file2.txt b/openssl-hmac/file2.txt new file mode 100644 index 0000000..6be9cca --- /dev/null +++ b/openssl-hmac/file2.txt @@ -0,0 +1,7 @@ +In placerat sagittis efficitur. Vestibulum id erat pharetra, ultricies elit vitae, maximus nisi. Mauris placerat ipsum ac arcu fringilla, et placerat erat blandit. Ut eget ligula id tortor vehicula lacinia a eu dui. Praesent vestibulum, nibh a euismod fringilla, elit eros tempor ex, vitae luctus urna dui pellentesque mauris. Ut viverra quam in eleifend pretium. Interdum et malesuada fames ac ante ipsum primis in faucibus. + +Sed bibendum a velit et dignissim. Phasellus euismod fringilla augue, ut iaculis nibh vestibulum et. Maecenas molestie enim ac ligula dignissim placerat. Sed bibendum, odio ac gravida mattis, tellus eros posuere risus, vitae sagittis metus diam sed orci. Suspendisse pulvinar tortor nec metus iaculis congue. Aenean egestas leo ac dignissim vulputate. Etiam tempus justo tellus, nec elementum magna pulvinar at. Praesent justo eros, ultricies nec gravida vitae, cursus a ipsum. Integer semper quam nunc. Mauris pulvinar ultricies varius. Proin velit enim, dapibus vitae lorem id, facilisis sodales ligula. Aenean fermentum ante a semper mattis. Fusce finibus ullamcorper nisi, ac commodo tortor. Donec urna augue, gravida in erat a, vehicula pulvinar lacus. + +Sed non erat at nisl facilisis consectetur. Cras fringilla diam et neque varius sollicitudin. Proin lacinia dui vel quam venenatis, id mollis ante ullamcorper. Vivamus nisl mi, convallis a dolor et, pellentesque congue est. Nulla dictum et massa ut egestas. Nunc porta commodo arcu eu egestas. Nullam ut mollis diam. Mauris vulputate, magna ultricies ullamcorper venenatis, purus elit consectetur ipsum, ac dictum magna ante a ex. Ut posuere fermentum sapien. Mauris accumsan mattis ex quis dictum. + +Maecenas at augue eu sem egestas rhoncus vitae at nisi. Proin faucibus tincidunt ipsum at molestie. Praesent et condimentum tortor, id eleifend elit. Fusce interdum congue magna eget dapibus. Pellentesque a odio laoreet arcu tempus venenatis at vitae nisl. In venenatis dapibus velit eu semper. Etiam orci lorem, dignissim et lorem at, malesuada sollicitudin nulla. Sed egestas iaculis metus. Curabitur cursus interdum gravida. Donec ultrices dictum mi vel varius. Nunc ex ante, blandit eu rhoncus sed, volutpat non massa. Nam sed molestie ipsum. \ No newline at end of file diff --git a/openssl-hmac/hex b/openssl-hmac/hex new file mode 100755 index 0000000..bc295b2 Binary files /dev/null and b/openssl-hmac/hex differ diff --git a/openssl-hmac/hmac b/openssl-hmac/hmac new file mode 100755 index 0000000..0ee1191 Binary files /dev/null and b/openssl-hmac/hmac differ diff --git a/openssl-hmac/hmac.c b/openssl-hmac/hmac.c new file mode 100644 index 0000000..2722fda --- /dev/null +++ b/openssl-hmac/hmac.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include + +#define MAXBUF 1024 + +void handle_errors(){ + ERR_print_errors_fp(stderr); + abort(); +} + + +int main(int argc, char **argv){ + + + unsigned char key[] = "keykeykeykeykeykey"; + if(argc != 3){ + fprintf(stderr,"Invalid parameters. Usage: %s filename filename\n",argv[0]); + exit(1); + } + + + FILE *f_in1,*f_in2; + if((f_in1 = fopen(argv[1],"r")) == NULL) { + fprintf(stderr,"Couldn't open the first input file, try again\n"); + exit(1); + } + if((f_in2 = fopen(argv[2],"r")) == NULL) { + fprintf(stderr,"Couldn't open the second input file, try again\n"); + exit(1); + } + + + //EVP_MD_CTX *EVP_MD_CTX_new(void); + //pedantic mode? Check if md == NULL + EVP_MD_CTX *hmac_ctx = EVP_MD_CTX_new(); + + //int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + // int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); + // Returns 1 for success and 0 for failure. + EVP_PKEY *hkey; + hkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 16); + + if(!EVP_DigestSignInit(hmac_ctx, NULL, EVP_sha256(), NULL, hkey)) + handle_errors(); + + size_t n; + unsigned char buffer[MAXBUF]; + while((n = fread(buffer,1,MAXBUF,f_in1)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer, n)) + handle_errors(); + } + size_t n2; + unsigned char buffer2[MAXBUF]; + while((n2 = fread(buffer2,1,MAXBUF,f_in2)) > 0){ + // Returns 1 for success and 0 for failure. + if(!EVP_DigestSignUpdate(hmac_ctx, buffer2, n2)) + handle_errors(); + } + + unsigned char hmac_value[EVP_MD_size(EVP_sha256())]; + size_t hmac_len = EVP_MD_size(EVP_sha256()); + + //int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned size_t *s); + // EVP_DigestSignFinal(hmac_ctx, NULL, &hmac_len); + if(!EVP_DigestSignFinal(hmac_ctx, hmac_value, &hmac_len)) + handle_errors(); + + // void EVP_MD_CTX_free(EVP_MD_CTX *ctx); + EVP_MD_CTX_free(hmac_ctx); + + printf("CRYPTO25{"); + for(int i = 0; i < hmac_len; i++) + printf("%02x", hmac_value[i]); + printf("}"); + + + return 0; + +} \ No newline at end of file diff --git a/openssl-rand/format.py b/openssl-rand/format.py new file mode 100644 index 0000000..650a4f4 --- /dev/null +++ b/openssl-rand/format.py @@ -0,0 +1,6 @@ +rand1="4c-75-82-ca-02-07-bd-1d-8d-52-f0-6c-7a-d6-b7-87-83-95-06-2f-e0-f7-d4-24-f8-03-68-97-41-4c-85-29-e5-0d-b0-e4-3c-ee-74-dc-18-8a-aa-26-f0-46-94-e8-52-91-4a-43-8f-dd-ea-bb-a8-cf-51-14-79-ec-17-c2" +rand1=rand1.split("-") +output="" +for i in rand1: + output+="\\x"+i +print(output) \ No newline at end of file diff --git a/openssl-rand/openssl-rand.c b/openssl-rand/openssl-rand.c new file mode 100644 index 0000000..be2740e --- /dev/null +++ b/openssl-rand/openssl-rand.c @@ -0,0 +1,21 @@ +#include +#define MAX 64 +int main(){ + unsigned char rand1[MAX]="\xed\x8a\x3b\xe8\x17\x68\x38\x78\xf6\xb1\x77\x3e\x73\xb3\xf7\x97\xf3\x00\x47\x76\x54\xee\x8d\x51\x0a\x2f\x10\x79\x17\xf8\xea\xd8\x81\x83\x6e\x0f\x0c\xb8\x49\x5a\x77\xef\x2d\x62\xb6\x5e\xe2\x10\x69\xd6\xcc\xd6\xa0\x77\xa2\x0a\xd3\xf7\x9f\xa7\x9e\xa7\xc9\x08"; + unsigned char rand2[MAX]="\x4c\x75\x82\xca\x02\x07\xbd\x1d\x8d\x52\xf0\x6c\x7a\xd6\xb7\x87\x83\x95\x06\x2f\xe0\xf7\xd4\x24\xf8\x03\x68\x97\x41\x4c\x85\x29\xe5\x0d\xb0\xe4\x3c\xee\x74\xdc\x18\x8a\xaa\x26\xf0\x46\x94\xe8\x52\x91\x4a\x43\x8f\xdd\xea\xbb\xa8\xcf\x51\x14\x79\xec\x17\xc2"; + + unsigned char k1[MAX]; + unsigned char k2[MAX]; + unsigned char key[MAX]; + for(int i=0; i<64; i++){ + k1[i]=rand1[i]|rand2[i]; + k2[i]=rand1[i]&rand2[i]; + key[i]=k1[i]^k2[i]; + } + printf("CRYPTO25{"); + for(int i=0; i < MAX; i++) + printf("%02x-", key[i]); + printf("}"); + printf("\n"); + return 0; +} \ No newline at end of file