figenc

[RADIOACTIVE] rsa and symmetric key encryption scripts and executables
git clone git://git.figbert.com/figenc.git
Log | Files | Refs | README

commit e51da0de4194deba112b8a17adfc682e2c5cd1db
parent bae44878e6110ffdf20c78124bdfc73341e28349
Author: therealFIGBERT <naomi@FIGBERT-Mini.local>
Date:   Fri, 12 Jul 2019 19:08:28 -1000

Major update: Merging Windows and MacOS branches into one, changing file organization, simplyfying code, formatting code, and more

Diffstat:
RMacOS/figENC.app/Contents/Info.plist -> Executables/figENC.app/Contents/Info.plist | 0
RMacOS/figENC.app/Contents/MacOS/Python -> Executables/figENC.app/Contents/MacOS/Python | 0
RMacOS/figENC.app/Contents/MacOS/_bisect.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_bisect.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_blake2.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_blake2.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_bz2.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_bz2.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_cffi_backend.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_cffi_backend.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_cn.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_cn.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_hk.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_hk.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_iso2022.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_iso2022.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_jp.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_jp.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_kr.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_kr.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_codecs_tw.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_codecs_tw.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_contextvars.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_contextvars.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_ctypes.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_ctypes.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_datetime.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_datetime.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_decimal.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_decimal.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_hashlib.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_hashlib.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_heapq.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_heapq.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_lzma.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_lzma.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_md5.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_md5.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_multibytecodec.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_multibytecodec.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_opcode.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_opcode.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_pickle.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_pickle.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_posixsubprocess.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_posixsubprocess.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_random.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_random.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_scproxy.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_scproxy.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_sha1.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_sha1.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_sha256.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_sha256.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_sha3.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_sha3.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_sha512.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_sha512.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_socket.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_socket.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_ssl.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_ssl.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_struct.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_struct.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_struct/cpython-37m-darwin/sotruct.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_struct/cpython-37m-darwin/sotruct.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/_tkinter.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/_tkinter.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/base_library.zip -> Executables/figENC.app/Contents/MacOS/base_library.zip | 0
RMacOS/figENC.app/Contents/MacOS/binascii.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/binascii.cpython-37m-darwin.so | 0
AExecutables/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info | 2++
RMacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_constant_time.abi3.so -> Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_constant_time.abi3.so | 0
RMacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_openssl.abi3.so -> Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_openssl.abi3.so | 0
RMacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_padding.abi3.so -> Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_padding.abi3.so | 0
RMacOS/figENC.app/Contents/MacOS/figENC_MacOS -> Executables/figENC.app/Contents/MacOS/figENC_MacOS | 0
RMacOS/figENC.app/Contents/MacOS/grp.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/grp.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/libcrypto.1.1.dylib -> Executables/figENC.app/Contents/MacOS/libcrypto.1.1.dylib | 0
RMacOS/figENC.app/Contents/MacOS/libncursesw.5.dylib -> Executables/figENC.app/Contents/MacOS/libncursesw.5.dylib | 0
RMacOS/figENC.app/Contents/MacOS/libssl.1.1.dylib -> Executables/figENC.app/Contents/MacOS/libssl.1.1.dylib | 0
RMacOS/figENC.app/Contents/MacOS/libtcl8.6.dylib -> Executables/figENC.app/Contents/MacOS/libtcl8.6.dylib | 0
RMacOS/figENC.app/Contents/MacOS/libtk8.6.dylib -> Executables/figENC.app/Contents/MacOS/libtk8.6.dylib | 0
RMacOS/figENC.app/Contents/MacOS/math.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/math.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/pyexpat.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/pyexpat.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/readline.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/readline.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/resource.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/resource.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/select.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/select.cpython-37m-darwin.so | 0
AExecutables/figENC.app/Contents/MacOS/tcl | 2++
RMacOS/figENC.app/Contents/MacOS/termios.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/termios.cpython-37m-darwin.so | 0
AExecutables/figENC.app/Contents/MacOS/tk | 2++
RMacOS/figENC.app/Contents/MacOS/unicodedata.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/unicodedata.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/zlib.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/zlib.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/MacOS/zlib/cpython-37m-darwin/soib.cpython-37m-darwin.so -> Executables/figENC.app/Contents/MacOS/zlib/cpython-37m-darwin/soib.cpython-37m-darwin.so | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/AUTHORS.rst -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/AUTHORS.rst | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/INSTALLER -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/INSTALLER | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.APACHE -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.APACHE | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.BSD -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.BSD | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.PSF -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.PSF | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/METADATA -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/METADATA | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/RECORD -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/RECORD | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/WHEEL -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/WHEEL | 0
RMacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/top_level.txt -> Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/top_level.txt | 0
RMacOS/figENC.app/Contents/Resources/icon-windowed.icns -> Executables/figENC.app/Contents/Resources/icon-windowed.icns | 0
RMacOS/figENC.app/Contents/Resources/tcl/auto.tcl -> Executables/figENC.app/Contents/Resources/tcl/auto.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/clock.tcl -> Executables/figENC.app/Contents/Resources/tcl/clock.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/ascii.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/ascii.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/big5.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/big5.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1250.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1250.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1251.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1251.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1252.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1252.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1253.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1253.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1254.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1254.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1255.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1255.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1256.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1256.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1257.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1257.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp1258.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp1258.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp437.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp437.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp737.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp737.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp775.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp775.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp850.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp850.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp852.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp852.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp855.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp855.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp857.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp857.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp860.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp860.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp861.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp861.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp862.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp862.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp863.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp863.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp864.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp864.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp865.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp865.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp866.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp866.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp869.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp869.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp874.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp874.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp932.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp932.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp936.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp936.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp949.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp949.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/cp950.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/cp950.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/dingbats.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/dingbats.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/ebcdic.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/ebcdic.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/euc-cn.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/euc-cn.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/euc-jp.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/euc-jp.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/euc-kr.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/euc-kr.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/gb12345.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/gb12345.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/gb1988.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/gb1988.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/gb2312-raw.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/gb2312-raw.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/gb2312.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/gb2312.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022-jp.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022-jp.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022-kr.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022-kr.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-1.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-1.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-10.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-10.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-13.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-13.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-14.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-14.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-15.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-15.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-16.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-16.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-2.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-2.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-3.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-3.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-4.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-4.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-5.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-5.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-6.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-6.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-7.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-7.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-8.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-8.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-9.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-9.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/jis0201.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/jis0201.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/jis0208.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/jis0208.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/jis0212.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/jis0212.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/koi8-r.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/koi8-r.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/koi8-u.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/koi8-u.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/ksc5601.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/ksc5601.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macCentEuro.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macCentEuro.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macCroatian.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macCroatian.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macCyrillic.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macCyrillic.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macDingbats.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macDingbats.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macGreek.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macGreek.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macIceland.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macIceland.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macJapan.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macJapan.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macRoman.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macRoman.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macRomania.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macRomania.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macThai.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macThai.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macTurkish.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macTurkish.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/macUkraine.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/macUkraine.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/shiftjis.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/shiftjis.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/symbol.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/symbol.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/encoding/tis-620.enc -> Executables/figENC.app/Contents/Resources/tcl/encoding/tis-620.enc | 0
RMacOS/figENC.app/Contents/Resources/tcl/history.tcl -> Executables/figENC.app/Contents/Resources/tcl/history.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/http1.0/http.tcl -> Executables/figENC.app/Contents/Resources/tcl/http1.0/http.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/http1.0/pkgIndex.tcl -> Executables/figENC.app/Contents/Resources/tcl/http1.0/pkgIndex.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/init.tcl -> Executables/figENC.app/Contents/Resources/tcl/init.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/af.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/af.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/af_za.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/af_za.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ar.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ar.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ar_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ar_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ar_jo.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ar_jo.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ar_lb.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ar_lb.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ar_sy.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ar_sy.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/be.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/be.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/bg.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/bg.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/bn.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/bn.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/bn_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/bn_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ca.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ca.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/cs.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/cs.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/da.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/da.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/de.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/de.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/de_at.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/de_at.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/de_be.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/de_be.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/el.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/el.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_au.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_au.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_be.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_be.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_bw.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_bw.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_ca.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_ca.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_gb.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_gb.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_hk.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_hk.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_ie.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_ie.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_nz.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_nz.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_ph.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_ph.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_sg.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_sg.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_za.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_za.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/en_zw.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/en_zw.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/eo.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/eo.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_ar.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_ar.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_bo.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_bo.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_cl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_cl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_co.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_co.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_cr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_cr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_do.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_do.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_ec.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_ec.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_gt.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_gt.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_hn.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_hn.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_mx.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_mx.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_ni.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_ni.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_pa.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_pa.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_pe.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_pe.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_pr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_pr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_py.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_py.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_sv.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_sv.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_uy.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_uy.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/es_ve.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/es_ve.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/et.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/et.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/eu.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/eu.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/eu_es.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/eu_es.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fa.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fa.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fa_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fa_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fa_ir.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fa_ir.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fi.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fi.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fo.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fo.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fo_fo.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fo_fo.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fr_be.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fr_be.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fr_ca.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fr_ca.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/fr_ch.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/fr_ch.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ga.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ga.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ga_ie.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ga_ie.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/gl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/gl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/gl_es.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/gl_es.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/gv.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/gv.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/gv_gb.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/gv_gb.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/he.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/he.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/hi.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/hi.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/hi_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/hi_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/hr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/hr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/hu.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/hu.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/id.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/id.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/id_id.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/id_id.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/is.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/is.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/it.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/it.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/it_ch.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/it_ch.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ja.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ja.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kl_gl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kl_gl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ko.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ko.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ko_kr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ko_kr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kok.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kok.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kok_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kok_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kw.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kw.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/kw_gb.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/kw_gb.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/lt.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/lt.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/lv.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/lv.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/mk.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/mk.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/mr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/mr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/mr_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/mr_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ms.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ms.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ms_my.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ms_my.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/mt.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/mt.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/nb.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/nb.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/nl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/nl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/nl_be.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/nl_be.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/nn.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/nn.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/pl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/pl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/pt.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/pt.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/pt_br.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/pt_br.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ro.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ro.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ru.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ru.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ru_ua.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ru_ua.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sh.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sh.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sk.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sk.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sl.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sl.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sq.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sq.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sv.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sv.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/sw.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/sw.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ta.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ta.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/ta_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/ta_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/te.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/te.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/te_in.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/te_in.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/th.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/th.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/tr.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/tr.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/uk.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/uk.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/vi.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/vi.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/zh.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/zh.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/zh_cn.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/zh_cn.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/zh_hk.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/zh_hk.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/zh_sg.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/zh_sg.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/msgs/zh_tw.msg -> Executables/figENC.app/Contents/Resources/tcl/msgs/zh_tw.msg | 0
RMacOS/figENC.app/Contents/Resources/tcl/opt0.4/optparse.tcl -> Executables/figENC.app/Contents/Resources/tcl/opt0.4/optparse.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/opt0.4/pkgIndex.tcl -> Executables/figENC.app/Contents/Resources/tcl/opt0.4/pkgIndex.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/package.tcl -> Executables/figENC.app/Contents/Resources/tcl/package.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/parray.tcl -> Executables/figENC.app/Contents/Resources/tcl/parray.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/safe.tcl -> Executables/figENC.app/Contents/Resources/tcl/safe.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/tclAppInit.c -> Executables/figENC.app/Contents/Resources/tcl/tclAppInit.c | 0
RMacOS/figENC.app/Contents/Resources/tcl/tclIndex -> Executables/figENC.app/Contents/Resources/tcl/tclIndex | 0
RMacOS/figENC.app/Contents/Resources/tcl/tm.tcl -> Executables/figENC.app/Contents/Resources/tcl/tm.tcl | 0
RMacOS/figENC.app/Contents/Resources/tcl/word.tcl -> Executables/figENC.app/Contents/Resources/tcl/word.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/bgerror.tcl -> Executables/figENC.app/Contents/Resources/tk/bgerror.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/button.tcl -> Executables/figENC.app/Contents/Resources/tk/button.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/choosedir.tcl -> Executables/figENC.app/Contents/Resources/tk/choosedir.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/clrpick.tcl -> Executables/figENC.app/Contents/Resources/tk/clrpick.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/comdlg.tcl -> Executables/figENC.app/Contents/Resources/tk/comdlg.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/console.tcl -> Executables/figENC.app/Contents/Resources/tk/console.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/dialog.tcl -> Executables/figENC.app/Contents/Resources/tk/dialog.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/entry.tcl -> Executables/figENC.app/Contents/Resources/tk/entry.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/focus.tcl -> Executables/figENC.app/Contents/Resources/tk/focus.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/fontchooser.tcl -> Executables/figENC.app/Contents/Resources/tk/fontchooser.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/iconlist.tcl -> Executables/figENC.app/Contents/Resources/tk/iconlist.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/icons.tcl -> Executables/figENC.app/Contents/Resources/tk/icons.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/images/README -> Executables/figENC.app/Contents/Resources/tk/images/README | 0
RMacOS/figENC.app/Contents/Resources/tk/images/logo.eps -> Executables/figENC.app/Contents/Resources/tk/images/logo.eps | 0
RMacOS/figENC.app/Contents/Resources/tk/images/logo100.gif -> Executables/figENC.app/Contents/Resources/tk/images/logo100.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/logo64.gif -> Executables/figENC.app/Contents/Resources/tk/images/logo64.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/logoLarge.gif -> Executables/figENC.app/Contents/Resources/tk/images/logoLarge.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/logoMed.gif -> Executables/figENC.app/Contents/Resources/tk/images/logoMed.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo.eps -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo.eps | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo100.gif -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo100.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo150.gif -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo150.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo175.gif -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo175.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo200.gif -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo200.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo75.gif -> Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo75.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/images/tai-ku.gif -> Executables/figENC.app/Contents/Resources/tk/images/tai-ku.gif | 0
RMacOS/figENC.app/Contents/Resources/tk/listbox.tcl -> Executables/figENC.app/Contents/Resources/tk/listbox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/megawidget.tcl -> Executables/figENC.app/Contents/Resources/tk/megawidget.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/menu.tcl -> Executables/figENC.app/Contents/Resources/tk/menu.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/mkpsenc.tcl -> Executables/figENC.app/Contents/Resources/tk/mkpsenc.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/msgbox.tcl -> Executables/figENC.app/Contents/Resources/tk/msgbox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/cs.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/cs.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/da.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/da.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/de.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/de.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/el.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/el.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/en.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/en.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/en_gb.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/en_gb.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/eo.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/eo.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/es.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/es.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/fr.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/fr.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/hu.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/hu.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/it.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/it.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/nl.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/nl.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/pl.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/pl.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/pt.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/pt.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/ru.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/ru.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/msgs/sv.msg -> Executables/figENC.app/Contents/Resources/tk/msgs/sv.msg | 0
RMacOS/figENC.app/Contents/Resources/tk/obsolete.tcl -> Executables/figENC.app/Contents/Resources/tk/obsolete.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/optMenu.tcl -> Executables/figENC.app/Contents/Resources/tk/optMenu.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/palette.tcl -> Executables/figENC.app/Contents/Resources/tk/palette.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/panedwindow.tcl -> Executables/figENC.app/Contents/Resources/tk/panedwindow.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/pkgIndex.tcl -> Executables/figENC.app/Contents/Resources/tk/pkgIndex.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/safetk.tcl -> Executables/figENC.app/Contents/Resources/tk/safetk.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/scale.tcl -> Executables/figENC.app/Contents/Resources/tk/scale.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/scrlbar.tcl -> Executables/figENC.app/Contents/Resources/tk/scrlbar.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/spinbox.tcl -> Executables/figENC.app/Contents/Resources/tk/spinbox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/tclIndex -> Executables/figENC.app/Contents/Resources/tk/tclIndex | 0
RMacOS/figENC.app/Contents/Resources/tk/tearoff.tcl -> Executables/figENC.app/Contents/Resources/tk/tearoff.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/text.tcl -> Executables/figENC.app/Contents/Resources/tk/text.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/tk.tcl -> Executables/figENC.app/Contents/Resources/tk/tk.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/tkAppInit.c -> Executables/figENC.app/Contents/Resources/tk/tkAppInit.c | 0
RMacOS/figENC.app/Contents/Resources/tk/tkfbox.tcl -> Executables/figENC.app/Contents/Resources/tk/tkfbox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/altTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/altTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/aquaTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/aquaTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/button.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/button.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/clamTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/clamTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/classicTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/classicTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/combobox.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/combobox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/cursors.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/cursors.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/defaults.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/defaults.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/entry.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/entry.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/fonts.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/fonts.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/menubutton.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/menubutton.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/notebook.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/notebook.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/panedwindow.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/panedwindow.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/progress.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/progress.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/scale.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/scale.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/scrollbar.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/scrollbar.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/sizegrip.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/sizegrip.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/spinbox.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/spinbox.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/treeview.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/treeview.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/ttk.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/ttk.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/utils.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/utils.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/vistaTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/vistaTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/winTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/winTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/ttk/xpTheme.tcl -> Executables/figENC.app/Contents/Resources/tk/ttk/xpTheme.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/unsupported.tcl -> Executables/figENC.app/Contents/Resources/tk/unsupported.tcl | 0
RMacOS/figENC.app/Contents/Resources/tk/xmfbox.tcl -> Executables/figENC.app/Contents/Resources/tk/xmfbox.tcl | 0
RWindows/figENC.exe -> Executables/figENC.exe | 0
DMacOS/decrypt.py | 74--------------------------------------------------------------------------
DMacOS/encrypt.py | 39---------------------------------------
DMacOS/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info | 2--
DMacOS/figENC.app/Contents/MacOS/tcl | 2--
DMacOS/figENC.app/Contents/MacOS/tk | 2--
DMacOS/figENC_MacOS.py | 495-------------------------------------------------------------------------------
DMacOS/initiate_key.py | 56--------------------------------------------------------
AScripts/decrypt.py | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AScripts/encrypt.py | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
AScripts/figENC.py | 517+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AScripts/initiate_key.py | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DWindows/decrypt.py | 74--------------------------------------------------------------------------
DWindows/encrypt.py | 39---------------------------------------
DWindows/figENC_Windows.py | 282-------------------------------------------------------------------------------
DWindows/initiate_key.py | 83-------------------------------------------------------------------------------
393 files changed, 691 insertions(+), 1148 deletions(-)

diff --git a/MacOS/figENC.app/Contents/Info.plist b/Executables/figENC.app/Contents/Info.plist diff --git a/MacOS/figENC.app/Contents/MacOS/Python b/Executables/figENC.app/Contents/MacOS/Python Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_bisect.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_bisect.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_blake2.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_blake2.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_bz2.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_bz2.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_cffi_backend.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_cffi_backend.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_cn.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_cn.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_hk.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_hk.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_iso2022.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_iso2022.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_jp.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_jp.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_kr.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_kr.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_codecs_tw.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_codecs_tw.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_contextvars.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_contextvars.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_ctypes.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_ctypes.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_datetime.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_datetime.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_decimal.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_decimal.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_hashlib.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_hashlib.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_heapq.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_heapq.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_lzma.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_lzma.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_md5.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_md5.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_multibytecodec.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_multibytecodec.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_opcode.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_opcode.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_pickle.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_pickle.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_posixsubprocess.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_posixsubprocess.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_random.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_random.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_scproxy.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_scproxy.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_sha1.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_sha1.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_sha256.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_sha256.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_sha3.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_sha3.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_sha512.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_sha512.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_socket.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_socket.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_ssl.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_ssl.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_struct.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_struct.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_struct/cpython-37m-darwin/sotruct.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_struct/cpython-37m-darwin/sotruct.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/_tkinter.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/_tkinter.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/base_library.zip b/Executables/figENC.app/Contents/MacOS/base_library.zip Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/binascii.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/binascii.cpython-37m-darwin.so Binary files differ. diff --git a/Executables/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info b/Executables/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info @@ -0,0 +1 @@ +../Resources/cryptography-2.7-py3.7.egg-info +\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_constant_time.abi3.so b/Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_constant_time.abi3.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_openssl.abi3.so b/Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_openssl.abi3.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_padding.abi3.so b/Executables/figENC.app/Contents/MacOS/cryptography/hazmat/bindings/_padding.abi3.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/figENC_MacOS b/Executables/figENC.app/Contents/MacOS/figENC_MacOS Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/grp.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/grp.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/libcrypto.1.1.dylib b/Executables/figENC.app/Contents/MacOS/libcrypto.1.1.dylib Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/libncursesw.5.dylib b/Executables/figENC.app/Contents/MacOS/libncursesw.5.dylib Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/libssl.1.1.dylib b/Executables/figENC.app/Contents/MacOS/libssl.1.1.dylib Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/libtcl8.6.dylib b/Executables/figENC.app/Contents/MacOS/libtcl8.6.dylib Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/libtk8.6.dylib b/Executables/figENC.app/Contents/MacOS/libtk8.6.dylib Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/math.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/math.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/pyexpat.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/pyexpat.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/readline.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/readline.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/resource.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/resource.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/select.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/select.cpython-37m-darwin.so Binary files differ. diff --git a/Executables/figENC.app/Contents/MacOS/tcl b/Executables/figENC.app/Contents/MacOS/tcl @@ -0,0 +1 @@ +../Resources/tcl +\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/termios.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/termios.cpython-37m-darwin.so Binary files differ. diff --git a/Executables/figENC.app/Contents/MacOS/tk b/Executables/figENC.app/Contents/MacOS/tk @@ -0,0 +1 @@ +../Resources/tk +\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/unicodedata.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/unicodedata.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/zlib.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/zlib.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/MacOS/zlib/cpython-37m-darwin/soib.cpython-37m-darwin.so b/Executables/figENC.app/Contents/MacOS/zlib/cpython-37m-darwin/soib.cpython-37m-darwin.so Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/AUTHORS.rst b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/AUTHORS.rst diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/INSTALLER b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/INSTALLER diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.APACHE b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.APACHE diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.BSD b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.BSD diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.PSF b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/LICENSE.PSF diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/METADATA b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/METADATA diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/RECORD b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/RECORD diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/WHEEL b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/WHEEL diff --git a/MacOS/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/top_level.txt b/Executables/figENC.app/Contents/Resources/cryptography-2.7-py3.7.egg-info/top_level.txt diff --git a/MacOS/figENC.app/Contents/Resources/icon-windowed.icns b/Executables/figENC.app/Contents/Resources/icon-windowed.icns Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tcl/auto.tcl b/Executables/figENC.app/Contents/Resources/tcl/auto.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/clock.tcl b/Executables/figENC.app/Contents/Resources/tcl/clock.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/ascii.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/ascii.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/big5.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/big5.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1250.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1250.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1251.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1251.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1252.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1252.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1253.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1253.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1254.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1254.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1255.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1255.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1256.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1256.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1257.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1257.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp1258.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp1258.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp437.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp437.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp737.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp737.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp775.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp775.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp850.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp850.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp852.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp852.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp855.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp855.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp857.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp857.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp860.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp860.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp861.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp861.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp862.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp862.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp863.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp863.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp864.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp864.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp865.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp865.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp866.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp866.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp869.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp869.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp874.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp874.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp932.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp932.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp936.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp936.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp949.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp949.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/cp950.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/cp950.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/dingbats.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/dingbats.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/ebcdic.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/ebcdic.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/euc-cn.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/euc-cn.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/euc-jp.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/euc-jp.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/euc-kr.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/euc-kr.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/gb12345.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/gb12345.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/gb1988.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/gb1988.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/gb2312-raw.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/gb2312-raw.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/gb2312.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/gb2312.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022-jp.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022-jp.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022-kr.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022-kr.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso2022.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso2022.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-1.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-1.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-10.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-10.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-13.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-13.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-14.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-14.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-15.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-15.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-16.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-16.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-2.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-2.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-3.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-3.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-4.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-4.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-5.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-5.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-6.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-6.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-7.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-7.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-8.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-8.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/iso8859-9.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/iso8859-9.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/jis0201.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/jis0201.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/jis0208.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/jis0208.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/jis0212.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/jis0212.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/koi8-r.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/koi8-r.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/koi8-u.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/koi8-u.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/ksc5601.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/ksc5601.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macCentEuro.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macCentEuro.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macCroatian.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macCroatian.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macCyrillic.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macCyrillic.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macDingbats.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macDingbats.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macGreek.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macGreek.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macIceland.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macIceland.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macJapan.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macJapan.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macRoman.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macRoman.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macRomania.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macRomania.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macThai.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macThai.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macTurkish.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macTurkish.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/macUkraine.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/macUkraine.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/shiftjis.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/shiftjis.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/symbol.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/symbol.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/encoding/tis-620.enc b/Executables/figENC.app/Contents/Resources/tcl/encoding/tis-620.enc diff --git a/MacOS/figENC.app/Contents/Resources/tcl/history.tcl b/Executables/figENC.app/Contents/Resources/tcl/history.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/http1.0/http.tcl b/Executables/figENC.app/Contents/Resources/tcl/http1.0/http.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/http1.0/pkgIndex.tcl b/Executables/figENC.app/Contents/Resources/tcl/http1.0/pkgIndex.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/init.tcl b/Executables/figENC.app/Contents/Resources/tcl/init.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/af.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/af.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/af_za.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/af_za.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ar.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ar.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ar_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ar_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ar_jo.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ar_jo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ar_lb.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ar_lb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ar_sy.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ar_sy.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/be.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/be.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/bg.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/bg.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/bn.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/bn.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/bn_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/bn_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ca.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ca.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/cs.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/cs.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/da.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/da.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/de.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/de.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/de_at.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/de_at.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/de_be.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/de_be.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/el.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/el.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_au.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_au.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_be.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_be.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_bw.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_bw.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_ca.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_ca.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_gb.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_gb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_hk.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_hk.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_ie.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_ie.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_nz.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_nz.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_ph.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_ph.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_sg.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_sg.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_za.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_za.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/en_zw.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/en_zw.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/eo.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/eo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_ar.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_ar.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_bo.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_bo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_cl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_cl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_co.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_co.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_cr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_cr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_do.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_do.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_ec.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_ec.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_gt.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_gt.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_hn.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_hn.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_mx.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_mx.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_ni.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_ni.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_pa.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_pa.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_pe.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_pe.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_pr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_pr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_py.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_py.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_sv.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_sv.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_uy.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_uy.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/es_ve.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/es_ve.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/et.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/et.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/eu.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/eu.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/eu_es.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/eu_es.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fa.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fa.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fa_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fa_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fa_ir.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fa_ir.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fi.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fi.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fo.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fo_fo.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fo_fo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fr_be.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fr_be.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fr_ca.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fr_ca.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/fr_ch.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/fr_ch.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ga.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ga.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ga_ie.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ga_ie.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/gl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/gl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/gl_es.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/gl_es.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/gv.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/gv.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/gv_gb.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/gv_gb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/he.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/he.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/hi.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/hi.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/hi_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/hi_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/hr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/hr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/hu.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/hu.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/id.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/id.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/id_id.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/id_id.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/is.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/is.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/it.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/it.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/it_ch.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/it_ch.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ja.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ja.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kl_gl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kl_gl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ko.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ko.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ko_kr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ko_kr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kok.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kok.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kok_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kok_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kw.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kw.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/kw_gb.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/kw_gb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/lt.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/lt.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/lv.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/lv.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/mk.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/mk.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/mr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/mr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/mr_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/mr_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ms.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ms.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ms_my.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ms_my.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/mt.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/mt.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/nb.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/nb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/nl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/nl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/nl_be.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/nl_be.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/nn.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/nn.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/pl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/pl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/pt.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/pt.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/pt_br.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/pt_br.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ro.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ro.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ru.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ru.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ru_ua.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ru_ua.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sh.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sh.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sk.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sk.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sl.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sq.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sq.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sv.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sv.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/sw.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/sw.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ta.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ta.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/ta_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/ta_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/te.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/te.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/te_in.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/te_in.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/th.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/th.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/tr.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/tr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/uk.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/uk.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/vi.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/vi.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/zh.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/zh.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/zh_cn.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/zh_cn.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/zh_hk.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/zh_hk.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/zh_sg.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/zh_sg.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/msgs/zh_tw.msg b/Executables/figENC.app/Contents/Resources/tcl/msgs/zh_tw.msg diff --git a/MacOS/figENC.app/Contents/Resources/tcl/opt0.4/optparse.tcl b/Executables/figENC.app/Contents/Resources/tcl/opt0.4/optparse.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/opt0.4/pkgIndex.tcl b/Executables/figENC.app/Contents/Resources/tcl/opt0.4/pkgIndex.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/package.tcl b/Executables/figENC.app/Contents/Resources/tcl/package.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/parray.tcl b/Executables/figENC.app/Contents/Resources/tcl/parray.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/safe.tcl b/Executables/figENC.app/Contents/Resources/tcl/safe.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/tclAppInit.c b/Executables/figENC.app/Contents/Resources/tcl/tclAppInit.c diff --git a/MacOS/figENC.app/Contents/Resources/tcl/tclIndex b/Executables/figENC.app/Contents/Resources/tcl/tclIndex diff --git a/MacOS/figENC.app/Contents/Resources/tcl/tm.tcl b/Executables/figENC.app/Contents/Resources/tcl/tm.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tcl/word.tcl b/Executables/figENC.app/Contents/Resources/tcl/word.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/bgerror.tcl b/Executables/figENC.app/Contents/Resources/tk/bgerror.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/button.tcl b/Executables/figENC.app/Contents/Resources/tk/button.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/choosedir.tcl b/Executables/figENC.app/Contents/Resources/tk/choosedir.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/clrpick.tcl b/Executables/figENC.app/Contents/Resources/tk/clrpick.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/comdlg.tcl b/Executables/figENC.app/Contents/Resources/tk/comdlg.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/console.tcl b/Executables/figENC.app/Contents/Resources/tk/console.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/dialog.tcl b/Executables/figENC.app/Contents/Resources/tk/dialog.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/entry.tcl b/Executables/figENC.app/Contents/Resources/tk/entry.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/focus.tcl b/Executables/figENC.app/Contents/Resources/tk/focus.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/fontchooser.tcl b/Executables/figENC.app/Contents/Resources/tk/fontchooser.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/iconlist.tcl b/Executables/figENC.app/Contents/Resources/tk/iconlist.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/icons.tcl b/Executables/figENC.app/Contents/Resources/tk/icons.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/README b/Executables/figENC.app/Contents/Resources/tk/images/README diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/logo.eps b/Executables/figENC.app/Contents/Resources/tk/images/logo.eps diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/logo100.gif b/Executables/figENC.app/Contents/Resources/tk/images/logo100.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/logo64.gif b/Executables/figENC.app/Contents/Resources/tk/images/logo64.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/logoLarge.gif b/Executables/figENC.app/Contents/Resources/tk/images/logoLarge.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/logoMed.gif b/Executables/figENC.app/Contents/Resources/tk/images/logoMed.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo.eps b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo.eps diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo100.gif b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo100.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo150.gif b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo150.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo175.gif b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo175.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo200.gif b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo200.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/pwrdLogo75.gif b/Executables/figENC.app/Contents/Resources/tk/images/pwrdLogo75.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/images/tai-ku.gif b/Executables/figENC.app/Contents/Resources/tk/images/tai-ku.gif Binary files differ. diff --git a/MacOS/figENC.app/Contents/Resources/tk/listbox.tcl b/Executables/figENC.app/Contents/Resources/tk/listbox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/megawidget.tcl b/Executables/figENC.app/Contents/Resources/tk/megawidget.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/menu.tcl b/Executables/figENC.app/Contents/Resources/tk/menu.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/mkpsenc.tcl b/Executables/figENC.app/Contents/Resources/tk/mkpsenc.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgbox.tcl b/Executables/figENC.app/Contents/Resources/tk/msgbox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/cs.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/cs.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/da.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/da.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/de.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/de.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/el.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/el.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/en.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/en.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/en_gb.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/en_gb.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/eo.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/eo.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/es.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/es.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/fr.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/fr.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/hu.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/hu.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/it.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/it.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/nl.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/nl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/pl.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/pl.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/pt.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/pt.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/ru.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/ru.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/msgs/sv.msg b/Executables/figENC.app/Contents/Resources/tk/msgs/sv.msg diff --git a/MacOS/figENC.app/Contents/Resources/tk/obsolete.tcl b/Executables/figENC.app/Contents/Resources/tk/obsolete.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/optMenu.tcl b/Executables/figENC.app/Contents/Resources/tk/optMenu.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/palette.tcl b/Executables/figENC.app/Contents/Resources/tk/palette.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/panedwindow.tcl b/Executables/figENC.app/Contents/Resources/tk/panedwindow.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/pkgIndex.tcl b/Executables/figENC.app/Contents/Resources/tk/pkgIndex.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/safetk.tcl b/Executables/figENC.app/Contents/Resources/tk/safetk.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/scale.tcl b/Executables/figENC.app/Contents/Resources/tk/scale.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/scrlbar.tcl b/Executables/figENC.app/Contents/Resources/tk/scrlbar.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/spinbox.tcl b/Executables/figENC.app/Contents/Resources/tk/spinbox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/tclIndex b/Executables/figENC.app/Contents/Resources/tk/tclIndex diff --git a/MacOS/figENC.app/Contents/Resources/tk/tearoff.tcl b/Executables/figENC.app/Contents/Resources/tk/tearoff.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/text.tcl b/Executables/figENC.app/Contents/Resources/tk/text.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/tk.tcl b/Executables/figENC.app/Contents/Resources/tk/tk.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/tkAppInit.c b/Executables/figENC.app/Contents/Resources/tk/tkAppInit.c diff --git a/MacOS/figENC.app/Contents/Resources/tk/tkfbox.tcl b/Executables/figENC.app/Contents/Resources/tk/tkfbox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/altTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/altTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/aquaTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/aquaTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/button.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/button.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/clamTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/clamTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/classicTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/classicTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/combobox.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/combobox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/cursors.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/cursors.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/defaults.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/defaults.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/entry.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/entry.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/fonts.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/fonts.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/menubutton.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/menubutton.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/notebook.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/notebook.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/panedwindow.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/panedwindow.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/progress.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/progress.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/scale.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/scale.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/scrollbar.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/scrollbar.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/sizegrip.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/sizegrip.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/spinbox.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/spinbox.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/treeview.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/treeview.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/ttk.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/ttk.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/utils.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/utils.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/vistaTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/vistaTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/winTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/winTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/ttk/xpTheme.tcl b/Executables/figENC.app/Contents/Resources/tk/ttk/xpTheme.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/unsupported.tcl b/Executables/figENC.app/Contents/Resources/tk/unsupported.tcl diff --git a/MacOS/figENC.app/Contents/Resources/tk/xmfbox.tcl b/Executables/figENC.app/Contents/Resources/tk/xmfbox.tcl diff --git a/Windows/figENC.exe b/Executables/figENC.exe Binary files differ. diff --git a/MacOS/decrypt.py b/MacOS/decrypt.py @@ -1,73 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - -def rsa_dec(target_file_raw, save_folder, passkey): - passcode = passkey - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - private_key_source = save_folder + 'private_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(private_key_source, 'rb') as private_key_file: - private_key = serialization.load_pem_private_key( - private_key_file.read(), - password=bytes(passcode, 'utf-8'), - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - encoded_key_data = symmetric_key_file.read() - symmetric_key_data = private_key.decrypt( - encoded_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - symmetric_key = Fernet(symmetric_key_data) - file_to_decrypt = target_file - with open(file_to_decrypt, 'rb') as read_file: - encrypted_data = read_file.read() - original_message = symmetric_key.decrypt(encrypted_data) - with open(file_to_decrypt, 'wb') as write_file: - write_file.write(original_message) - with open(symmetric_key_source, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key_data) - -def weak_dec(target_file_raw, save_folder): - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - private_key_source = save_folder + 'private_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(private_key_source, 'rb') as private_key_file: - private_key = serialization.load_pem_private_key( - private_key_file.read(), - password=None, - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - encoded_key_data = symmetric_key_file.read() - symmetric_key_data = private_key.decrypt( - encoded_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - symmetric_key = Fernet(symmetric_key_data) - file_to_decrypt = target_file - with open(file_to_decrypt, 'rb') as read_file: - encrypted_data = read_file.read() - original_message = symmetric_key.decrypt(encrypted_data) - with open(file_to_decrypt, 'wb') as write_file: - write_file.write(original_message) - with open(symmetric_key_source, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key_data) -\ No newline at end of file diff --git a/MacOS/encrypt.py b/MacOS/encrypt.py @@ -1,38 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - -def rsa_enc(target_file_raw, save_folder): - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - public_key_source = save_folder + 'public_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(public_key_source, 'rb') as public_key_file: - public_key = serialization.load_pem_public_key( - public_key_file.read(), - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - symmetric_key_data = symmetric_key_file.read() - symmetric_key = Fernet(symmetric_key_data) - file_to_encrypt = target_file - with open(file_to_encrypt) as read_file: - file_data = read_file.read() - data = symmetric_key.encrypt(bytes(file_data, 'utf-8')) - encrypted_key = public_key.encrypt( - symmetric_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - with open(file_to_encrypt, 'wb') as write_file: - write_file.write(data) - with open(symmetric_key_source, 'wb') as crypto_key_file: - crypto_key_file.write(encrypted_key) -\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info b/MacOS/figENC.app/Contents/MacOS/cryptography-2.7-py3.7.egg-info @@ -1 +0,0 @@ -../Resources/cryptography-2.7-py3.7.egg-info -\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/tcl b/MacOS/figENC.app/Contents/MacOS/tcl @@ -1 +0,0 @@ -../Resources/tcl -\ No newline at end of file diff --git a/MacOS/figENC.app/Contents/MacOS/tk b/MacOS/figENC.app/Contents/MacOS/tk @@ -1 +0,0 @@ -../Resources/tk -\ No newline at end of file diff --git a/MacOS/figENC_MacOS.py b/MacOS/figENC_MacOS.py @@ -1,494 +0,0 @@ -import tkinter as tk -from initiate_key import rsa_key -from encrypt import rsa_enc -from decrypt import rsa_dec -from decrypt import weak_dec - -crypto_mode = "" - - -def setup(mode): - """"Change the GUI to match the app mode, - based on the user's action_list selection. - - Keyword arguments: - mode -- an int (0-6) corresponding with the action_list selection - """ - mode = mode[0] - global crypto_mode - if mode == 0: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill = "both") - file_label.config(text = "Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill = "x") - passcode_frame.pack(fill = "both") - passcode_label.config(text = "Set private key passcode") - passcode_label.pack() - passcode_instructions.config( - text = ( - "CRITICAL: DO NOT FORGET YOUR" - "PASSCODE.\nWITHOUT IT, " - "YOUR DATA WILL BE LOST." - ) - ) - passcode_instructions.pack() - passcode_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Save location for keys") - save_label.pack() - save_instructions.config( - text = ( - "Save the keys to an empty folder, " - "and store them somewhere secure\n" - "If other key files exist in the same" - "folder, they will be overwritten" - ) - ) - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Encrypt file/s") - submit.pack(pady = "10") - crypto_mode = "key_enc" - elif mode == 1: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill = "both") - file_label.config(text = "Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Save location for keys") - save_label.pack() - save_instructions.config( - text = ( - "Save the keys to an empty folder, " - "and store them somewhere secure\n" - "If other key files exist in the same" - "folder, they will be overwritten" - ) - ) - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Encrypt file/s") - submit.pack(pady = "10") - crypto_mode = "weak_key_enc" - elif mode == 2: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill = "both") - file_label.config(text = "Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Key location") - save_label.pack() - save_instructions.config(text = "Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Encrypt file/s") - submit.pack(pady = "10") - crypto_mode = "enc" - elif mode == 3: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill = "both") - file_label.config(text = "Filepath/s to the file/s to decrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill = "x") - passcode_frame.pack(fill = "both") - passcode_label.config(text = "Private key passcode") - passcode_label.pack() - passcode_instructions.config( - text = ( - "Passcode must be the same " - "passcode used when the keys were created" - ) - ) - passcode_instructions.pack() - passcode_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Key location") - save_label.pack() - save_instructions.config(text = "Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Decrypt file/s") - submit.pack(pady = "10") - crypto_mode = "dec" - elif mode == 4: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill = "both") - file_label.config(text = "Filepath/s to the file/s to decrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Key location") - save_label.pack() - save_instructions.config(text =" Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Decrypt file/s") - submit.pack(pady = "10") - crypto_mode = "weak_dec" - elif mode == 5: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - passcode_frame.pack(fill = "both") - passcode_label.config(text = "Set private key passcode") - passcode_label.pack() - passcode_instructions.config( - text = ( - "CRITICAL: DO NOT FORGET YOUR PASSCODE.\nWITHOUT IT, " - "YOUR DATA WILL BE LOST." - ) - ) - passcode_instructions.pack() - passcode_input.pack(fill = "x") - save.pack(fill = "both") - save_label.config(text = "Save location for keys") - save_label.pack() - save_instructions.config( - text = ( - "Save the keys to an empty folder, " - "and store them somewhere secure\n" - "If other key files exist in the same" - "folder, they will be overwritten" - ) - ) - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Create keys") - submit.pack(pady = "10") - crypto_mode = "just_key" - elif mode == 6: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - reset_text(file_input) - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - reset_text(passcode_input) - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - reset_text(save_input) - save_input.pack_forget() - submit.pack_forget() - save.pack(fill = "both") - save_label.config(text = "Save location for keys") - save_label.pack() - save_instructions.config( - text = ( - "Save the keys to an empty folder, " - "and store them somewhere secure\n" - "If other key files exist in the same" - "folder, they will be overwritten" - ) - ) - save_instructions.pack() - save_input.pack(fill = "both") - submit.config(text = "Create keys") - submit.pack(pady = "10") - crypto_mode = "weak_key" - - -def reset_text(entry_widget): - """Reset the string value of a tk.Entry object to an empty string - - Keyword arguments: - entry_widget -- a tk.Entry object - """ - entry_widget.delete(0,tk.END) - entry_widget.insert(0,"") - - -def go(mode, save_folder=None, target_file=None, passkey=None): - """Perform the action corresponding to the mode, - using the input data from the user - - Keyword arguments: - mode -- the mode defined by setup() from action_list - save_folder -- the folder where the keys are or will be stored (OPTIONAL) - target_file -- the file to encrypt or decrypt (OPTIONAL) - passkey - the access code to the RSA keys that have them (OPTIONAL) - """ - if mode == "key_enc": - rsa_key(passkey, save_folder) - rsa_enc(target_file, save_folder) - elif mode == "weak_key_enc": - rsa_key(passkey, save_folder) - rsa_enc(target_file, save_folder) - elif mode == "enc": - rsa_enc(target_file, save_folder) - elif mode == "dec": - rsa_dec(target_file, save_folder, passkey) - elif mode == "weak_dec": - weak_dec(target_file, save_folder) - elif mode == "just_key": - rsa_key(passkey, save_folder) - elif mode == "weak_key": - rsa_key(passkey, save_folder) - - -root = tk.Tk() -root.wm_title("figENC") -canvas = tk.Canvas(root, height = 700, width = 500) -canvas.pack() -frame = tk.Frame(root, bg = "#1A181C") -frame.place(relwidth = 1, relheight = 1) - -header = tk.Label( - frame, - text = "figENC", - justify = "center", - font = ("Arial", "24"), - bg = "#643181", - fg = "#B494C7" - ) -subheader = tk.Label( - frame, - text = "Industry leading encryption by FIGBERT", - justify = "center", - font = ("Arial", "18"), - bg = "#643181", - fg = "#B494C7", - pady = "5" - ) -header.pack(fill = "x", side = "top") -subheader.pack(fill = "x", side = "top") - -action = tk.Frame(frame, bg = "#1A181C", pady = "5") -action.pack(fill = "both") -action_label = tk.Label( - action, - text = "Action:", - justify = "left", - font = ("Arial", "14"), - bg = "#1A181C", - fg = "#ACA0B2", - ) -action_label.pack() -action_list = tk.Listbox( - action, - font = ("Arial", "12"), - bg = "#1A181C", - fg = "#b494C7", - bd = 1, - selectbackground = "#643181", - selectmode = "single", - height = 7, - relief = tk.SUNKEN - ) -action_list.insert(1, "Encrypt with fresh keys (password locked)") -action_list.insert(2, "Encrypt with fresh keys (no password)") -action_list.insert(3, "Encrypt with generated keys") -action_list.insert(4, "Decrypt with generated keys (password locked)") -action_list.insert(5, "Decrypt with generated keys (no password)") -action_list.insert(6, "Only create fresh keys (password locked)") -action_list.insert(7, "Only create fresh keys (no password)") -action_list.pack(fill = "both", pady = "10") -submit_action = tk.Button( - action, - text = "Begin Process", - font = ("Arial", "12"), - fg = "#643181", - highlightthickness = 0, - highlightbackground = "#1A181C", - pady = "3", - command = lambda: setup(action_list.curselection()) - ) -submit_action.pack() - -step_two = tk.Frame(frame, bg = "#1A181C") -step_two.pack(fill = "both") -file_frame = tk.Frame(step_two, bg = "#1A181C", pady = "8") -file_label = tk.Label( - file_frame, - text = "If you see this, the app broke", - font = ("Arial", "14"), - bg = "#1A181C", - fg = "#ACA0B2" - ) -file_instructions = tk.Label( - file_frame, - text = "Separate filepaths with colons (:)", - font = ("Arial", "11"), - bg = "#1A181C", - fg = "#B494C7" - ) -file_input = tk.Entry( - file_frame, - font = ("Arial", "12"), - justify = tk.CENTER, - textvariable = tk.StringVar, - bg = "#1A181C", - fg = "#ACA0B2", - insertbackground = "#ACA0B2", - relief = tk.SUNKEN, - borderwidth = 0.5 - ) -passcode_frame = tk.Frame(step_two, bg = "#1A181C", pady = "8") -passcode_label = tk.Label( - passcode_frame, - text = "If you see this, the app broke", - font = ("Arial", "14"), - bg = "#1A181C", - fg = "#ACA0B2" - ) -passcode_instructions = tk.Label( - passcode_frame, - text = "If you see this, the app broke", - font = ("Arial", "11"), - bg = "#1A181C", - fg = "#B494C7" - ) -passcode_input = tk.Entry( - passcode_frame, - font = ("Arial", "12"), - justify = tk.CENTER, - textvariable = tk.StringVar, - relief = tk.SUNKEN, - show = "*", - bg = "#1A181C", - fg = "#ACA0B2", - insertbackground = "#ACA0B2", - borderwidth = 0.5 - ) -save = tk.Frame(step_two, bg = "#1A181C", pady = "8") -save_label = tk.Label( - save, - text = "Save location for keys", - font = ("Arial", "14"), - bg = "#1A181C", - fg = "#ACA0B2" - ) -save_instructions = tk.Label( - save, - text = "If you see this, the app broke", - font = ("Arial", "11"), - bg = "#1A181C", - fg = "#B494C7" - ) -save_input = tk.Entry( - save, - font = ("Arial", "12"), - justify = tk.CENTER, - textvariable = tk.StringVar, - bg = "#1A181C", - fg = "#ACA0B2", - insertbackground = "#ACA0B2", - borderwidth = 0.5, - relief = tk.SUNKEN - ) -submit = tk.Button( - save, - text = "If you see this, the app broke", - font = ("Arial", "12"), - fg = "#643181", - highlightbackground = "#1A181C", - highlightthickness = 0, - pady = "3", - command = lambda: go( - mode = crypto_mode, - save_folder = save_input.get(), - target_file = file_input.get(), - passkey = passcode_input.get() - ) - ) - -root.mainloop() -\ No newline at end of file diff --git a/MacOS/initiate_key.py b/MacOS/initiate_key.py @@ -1,55 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - - -def rsa_key(passkey, save_folder): - """Generate and save a private, public and symmetric key. - - Keyword arguments: - save_folder -- the folder to save the keys to (i.e. C://Desktop) - passkey -- the passkey used to enhance the encryption algorithm (OPTIONAL) - """ - #Generating three key objects (symmetric, private, public) - symmetric_key = Fernet.generate_key() - private_key = rsa.generate_private_key( - public_exponent=65537, - key_size=4096, - backend=default_backend() - ) - public_key = private_key.public_key() - #Converting the public and private key objects to a saveable format - if passkey != "": # - private_key_passcode = passkey - private_key_text = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.BestAvailableEncryption( - bytes(private_key_passcode, 'utf-8') - ) - ) - else: - private_key_text = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption() - ) - public_key_text = public_key.public_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PublicFormat.SubjectPublicKeyInfo - ) - #Saves the keys to the provided directory. - if save_folder[-1] != '/': - save_folder += '/' - private_key_file = save_folder + 'private_key.pem' - public_key_file = save_folder + 'public_key.pem' - symmetric_key_file = save_folder + 'symmetric_key.key' - with open(private_key_file, 'wb') as private_file, \ - open(public_key_file, 'wb') as public_file, \ - open(symmetric_key_file, 'wb') as symmetric_file: - private_file.write(private_key_text) - public_file.write(public_key_text) - symmetric_file.write(symmetric_key) -\ No newline at end of file diff --git a/Scripts/decrypt.py b/Scripts/decrypt.py @@ -0,0 +1,59 @@ +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.fernet import Fernet + + +def rsa_dec(target_file_raw, save_folder, passkey): + """Decrypt all files passed to the function with the symmetric key, + and then replace the symmetric key file's contents with the decrypted + version, decrypted with the private key. + + Keyword arguements: + target_file_raw -- a string composed of file locations seperated by colons + save_folder -- the location of the saved key trio + passkey -- the passkey used to enhance the encryption algorithm (OPTIONAL) + """ + #Turning target_file_raw from a list in string form to a list + target_file_list = target_file_raw.split(":") + if save_folder[-1] != "/": + save_folder += "/" + #Determining the key source + private_key_source = save_folder + "private_key.pem" + symmetric_key_source = save_folder + "symmetric_key.key" + #Creating the keys from the source files + with open(private_key_source, "rb") as private_key_file, \ + open(symmetric_key_source, "rb") as symmetric_key_file: + if passkey != "": + private_key = serialization.load_pem_private_key( + private_key_file.read(), + password = bytes(passkey, "utf-8"), + backend = default_backend() + ) + else: + private_key = serialization.load_pem_private_key( + private_key_file.read(), + password = None, + backend = default_backend() + ) + encoded_key_data = symmetric_key_file.read() + symmetric_key_data = private_key.decrypt( + encoded_key_data, + padding.OAEP( + mgf = padding.MGF1(algorithm = hashes.SHA256()), + algorithm = hashes.SHA256(), + label = None + ) + ) + symmetric_key = Fernet(symmetric_key_data) + #Decrypting and outputting the data + for target_file in target_file_list: + with open(target_file, "rb") as open_file: + encrypted_data = open_file.read() + original_message = symmetric_key.decrypt(encrypted_data) + open_file.write(original_message) + #Outputting the decrypted symmetric key + with open(symmetric_key_source, "wb") as symmetric_file: + symmetric_file.write(symmetric_key_data) +\ No newline at end of file diff --git a/Scripts/encrypt.py b/Scripts/encrypt.py @@ -0,0 +1,51 @@ +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.fernet import Fernet + + +def rsa_enc(target_file_raw, save_folder): + """Encrypt all files passed to the function with the symmetric key, + and then replace the symmetric key file's contents with an encrypted + version, encrypted with the public key. + + Keyword arguments: + target_file_raw -- a string composed of file locations seperated by colons + save_folder -- the location of the saved key trio + """ + #Turning target_file_raw from a list in string form to a list + target_file_list = target_file_raw.split(":") + if save_folder[-1] != '/': + save_folder += '/' + #Determining the key source + public_key_source = save_folder + 'public_key.pem' + symmetric_key_source = save_folder + 'symmetric_key.key' + for target_file in target_file_list: + #Creating the keys from the source files + with open(public_key_source, 'rb') as public_key_file, \ + open(symmetric_key_source, 'rb') as symmetric_key_file, \ + open(target_file) as read_file: + public_key = serialization.load_pem_public_key( + public_key_file.read(), + backend = default_backend() + ) + symmetric_key_data = symmetric_key_file.read() + symmetric_key = Fernet(symmetric_key_data) + file_data = read_file.read() + #Encrypting and outputting the data + data = symmetric_key.encrypt(bytes(file_data, 'utf-8')) + with open(target_file, 'wb') as write_file: + write_file.write(data) + #Encrypting and outputting the symmetric key + encrypted_key = public_key.encrypt( + symmetric_key_data, + padding.OAEP( + mgf = padding.MGF1(algorithm = hashes.SHA256()), + algorithm = hashes.SHA256(), + label = None + ) + ) + with open(symmetric_key_source, 'wb') as crypto_key_file: + crypto_key_file.write(encrypted_key) +\ No newline at end of file diff --git a/Scripts/figENC.py b/Scripts/figENC.py @@ -0,0 +1,516 @@ +from sys import platform +import tkinter as tk +from initiate_key import rsa_key +from encrypt import rsa_enc +from decrypt import rsa_dec + +crypto_mode = "" + + +def setup(mode): + """"Change the GUI to match the app mode, + based on the user's action_list selection. + + Keyword arguments: + mode -- an int (0-6) corresponding with the action_list selection + """ + mode = mode[0] + global crypto_mode + if mode == 0: #Encrypt with fresh keys (password locked) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + file_frame.pack(fill = "both") + file_label.config(text = "Filepath/s to the file/s to encrypt") + file_label.pack() + file_instructions.pack() + file_input.pack(fill = "x") + passcode_frame.pack(fill = "both") + passcode_label.config(text = "Set private key passcode") + passcode_label.pack() + passcode_instructions.config( + text = ( + "CRITICAL: DO NOT FORGET YOUR" + "PASSCODE.\nWITHOUT IT, " + "YOUR DATA WILL BE LOST." + ) + ) + passcode_instructions.pack() + passcode_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Save location for keys") + save_label.pack() + save_instructions.config( + text = ( + "Save the keys to an empty folder, " + "and store them somewhere secure\n" + "If other key files exist in the same" + "folder, they will be overwritten" + ) + ) + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Encrypt file/s") + submit.pack(pady = "10") + crypto_mode = "key_enc" + elif mode == 1: #Encrypt with fresh keys (no password) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + file_frame.pack(fill = "both") + file_label.config(text = "Filepath/s to the file/s to encrypt") + file_label.pack() + file_instructions.pack() + file_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Save location for keys") + save_label.pack() + save_instructions.config( + text = ( + "Save the keys to an empty folder, " + "and store them somewhere secure\n" + "If other key files exist in the same" + "folder, they will be overwritten" + ) + ) + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Encrypt file/s") + submit.pack(pady = "10") + crypto_mode = "weak_key_enc" + elif mode == 2: #Encrypt with generated keys + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + file_frame.pack(fill = "both") + file_label.config(text = "Filepath/s to the file/s to encrypt") + file_label.pack() + file_instructions.pack() + file_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Key location") + save_label.pack() + save_instructions.config(text = "Filepath to matching key trio") + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Encrypt file/s") + submit.pack(pady = "10") + crypto_mode = "enc" + elif mode == 3: #Decrypt with generated keys (password locked) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + file_frame.pack(fill = "both") + file_label.config(text = "Filepath/s to the file/s to decrypt") + file_label.pack() + file_instructions.pack() + file_input.pack(fill = "x") + passcode_frame.pack(fill = "both") + passcode_label.config(text = "Private key passcode") + passcode_label.pack() + passcode_instructions.config( + text = ( + "Passcode must be the same " + "passcode used when the keys were created" + ) + ) + passcode_instructions.pack() + passcode_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Key location") + save_label.pack() + save_instructions.config(text = "Filepath to matching key trio") + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Decrypt file/s") + submit.pack(pady = "10") + crypto_mode = "dec" + elif mode == 4: #Decrypt with generated keys (no password) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + file_frame.pack(fill = "both") + file_label.config(text = "Filepath/s to the file/s to decrypt") + file_label.pack() + file_instructions.pack() + file_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Key location") + save_label.pack() + save_instructions.config(text =" Filepath to matching key trio") + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Decrypt file/s") + submit.pack(pady = "10") + crypto_mode = "weak_dec" + elif mode == 5: #Only create fresh keys (password locked) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + passcode_frame.pack(fill = "both") + passcode_label.config(text = "Set private key passcode") + passcode_label.pack() + passcode_instructions.config( + text = ( + "CRITICAL: DO NOT FORGET YOUR PASSCODE.\nWITHOUT IT, " + "YOUR DATA WILL BE LOST." + ) + ) + passcode_instructions.pack() + passcode_input.pack(fill = "x") + save.pack(fill = "both") + save_label.config(text = "Save location for keys") + save_label.pack() + save_instructions.config( + text = ( + "Save the keys to an empty folder, " + "and store them somewhere secure\n" + "If other key files exist in the same" + "folder, they will be overwritten" + ) + ) + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Create keys") + submit.pack(pady = "10") + crypto_mode = "just_key" + elif mode == 6: #Only create fresh keys (no password) + file_frame.pack_forget() + file_label.pack_forget() + file_instructions.pack_forget() + reset_text(file_input) + file_input.pack_forget() + passcode_frame.pack_forget() + passcode_label.pack_forget() + passcode_instructions.pack_forget() + reset_text(passcode_input) + passcode_input.pack_forget() + save.pack_forget() + save_label.pack_forget() + save_instructions.pack_forget() + reset_text(save_input) + save_input.pack_forget() + submit.pack_forget() + save.pack(fill = "both") + save_label.config(text = "Save location for keys") + save_label.pack() + save_instructions.config( + text = ( + "Save the keys to an empty folder, " + "and store them somewhere secure\n" + "If other key files exist in the same" + "folder, they will be overwritten" + ) + ) + save_instructions.pack() + save_input.pack(fill = "both") + submit.config(text = "Create keys") + submit.pack(pady = "10") + crypto_mode = "weak_key" + + +def reset_text(entry_widget): + """Reset the string value of a tk.Entry object to an empty string + + Keyword arguments: + entry_widget -- a tk.Entry object + """ + entry_widget.delete(0,tk.END) + entry_widget.insert(0,"") + + +def go(mode, save_folder=None, target_file=None, passkey=None): + """Perform the action corresponding to the mode, + using the input data from the user + + Keyword arguments: + mode -- the mode defined by setup() from action_list + save_folder -- the folder where the keys are or will be stored (OPTIONAL) + target_file -- the file to encrypt or decrypt (OPTIONAL) + passkey - the access code to the RSA keys that have them (OPTIONAL) + """ + if mode == "key_enc": + rsa_key(passkey, save_folder) + rsa_enc(target_file, save_folder) + elif mode == "weak_key_enc": + rsa_key(passkey, save_folder) + rsa_enc(target_file, save_folder) + elif mode == "enc": + rsa_enc(target_file, save_folder) + elif mode == "dec": + rsa_dec(target_file, save_folder, passkey) + elif mode == "weak_dec": + rsa_dec(target_file, save_folder, passkey) + elif mode == "just_key": + rsa_key(passkey, save_folder) + elif mode == "weak_key": + rsa_key(passkey, save_folder) + + +root = tk.Tk() +root.wm_title("figENC") +canvas = tk.Canvas(root, height = 700, width = 500) +canvas.pack() +frame = tk.Frame(root, bg = "#1A181C") +frame.place(relwidth = 1, relheight = 1) + +header = tk.Label( + frame, + text = "figENC", + justify = tk.CENTER, + font = ("Arial", "24"), + bg = "#643181", + fg = "#B494C7" +) +subheader = tk.Label( + frame, + text = "Industry leading encryption by FIGBERT", + justify = tk.CENTER, + font = ("Arial", "18"), + bg = "#643181", + fg = "#B494C7", + pady = "5" +) +header.pack(fill = "x", side = "top") +subheader.pack(fill = "x", side = "top") + +action = tk.Frame(frame, bg = "#1A181C", pady = "5") +action.pack(fill = "both") +action_label = tk.Label( + action, + text = "Action:", + justify = tk.LEFT, + font = ("Arial", "14"), + bg = "#1A181C", + fg = "#ACA0B2", +) +action_label.pack() +action_list = tk.Listbox( + action, + font = ("Arial", "12"), + bg = "#1A181C", + fg = "#B494C7", + selectbackground = "#643181", + selectmode = tk.SINGLE, + height = 7, + relief = tk.SUNKEN +) +action_list.insert(1, "Encrypt with fresh keys (password locked)") +action_list.insert(2, "Encrypt with fresh keys (no password)") +action_list.insert(3, "Encrypt with generated keys") +action_list.insert(4, "Decrypt with generated keys (password locked)") +action_list.insert(5, "Decrypt with generated keys (no password)") +action_list.insert(6, "Only create fresh keys (password locked)") +action_list.insert(7, "Only create fresh keys (no password)") +action_list.pack(fill = "both", pady = "10") +if platform == "darwin": + submit_action = tk.Button( + action, + text = "Begin Process", + font = ("Arial", "12"), + fg = "#643181", + highlightthickness = 0, + highlightbackground = "#1A181C", + pady = "3", + command = lambda: setup(action_list.curselection()) + ) +else: + submit_action = tk.Button( + action, + text = " Begin Process", + font = ("Arial", "12"), + bg = "#643181", + fg = "#B494C7", + command = lambda: setup(action_list.curselection()) + ) +submit_action.pack() + +step_two = tk.Frame(frame, bg = "#1A181C") +step_two.pack(fill = "both") +file_frame = tk.Frame(step_two, bg = "#1A181C", pady = "8") +file_label = tk.Label( + file_frame, + text = "If you see this, the app broke", + font = ("Arial", "14"), + bg = "#1A181C", + fg = "#ACA0B2" +) +file_instructions = tk.Label( + file_frame, + text = "Separate filepaths with colons (:)", + font = ("Arial", "11"), + bg = "#1A181C", + fg = "#B494C7" +) +file_input = tk.Entry( + file_frame, + font = ("Arial", "12"), + justify = tk.CENTER, + textvariable = tk.StringVar, + bg = "#1A181C", + fg = "#ACA0B2", + insertbackground = "#ACA0B2", + relief = tk.SUNKEN +) +passcode_frame = tk.Frame(step_two, bg = "#1A181C", pady = "8") +passcode_label = tk.Label( + passcode_frame, + text = "If you see this, the app broke", + font = ("Arial", "14"), + bg = "#1A181C", + fg = "#ACA0B2" +) +passcode_instructions = tk.Label( + passcode_frame, + text = "If you see this, the app broke", + font = ("Arial", "11"), + bg = "#1A181C", + fg = "#B494C7" +) +passcode_input = tk.Entry( + passcode_frame, + font = ("Arial", "12"), + justify = tk.CENTER, + textvariable = tk.StringVar, + relief = tk.SUNKEN, + show = "*", + bg = "#1A181C", + fg = "#ACA0B2", + insertbackground = "#ACA0B2" +) +save = tk.Frame(step_two, bg = "#1A181C", pady = "8") +save_label = tk.Label( + save, + text = "Save location for keys", + font = ("Arial", "14"), + bg = "#1A181C", + fg = "#ACA0B2" +) +save_instructions = tk.Label( + save, + text = "If you see this, the app broke", + font = ("Arial", "11"), + bg = "#1A181C", + fg = "#B494C7" +) +save_input = tk.Entry( + save, + font = ("Arial", "12"), + justify = tk.CENTER, + textvariable = tk.StringVar, + bg = "#1A181C", + fg = "#ACA0B2", + insertbackground = "#ACA0B2", + relief = tk.SUNKEN +) +if platform == "darwin": + submit = tk.Button( + save, + text = "If you see this, the app broke", + font = ("Arial", "12"), + fg = "#643181", + highlightbackground = "#1A181C", + highlightthickness = 0, + pady = "3", + command = lambda: go( + mode = crypto_mode, + save_folder = save_input.get(), + target_file = file_input.get(), + passkey = passcode_input.get() + ) + ) +else: + submit = tk.Button( + save, + text = "If you see this, the app broke", + font = ("Arial", "12"), + bg = "#643181", + fg = "#B494C7", + pady = "3", + command = lambda: go( + mode = crypto_mode, + save_folder = save_input.get(), + target_file = file_input.get(), + passkey = passcode_input.get() + ) + ) + +root.mainloop() +\ No newline at end of file diff --git a/Scripts/initiate_key.py b/Scripts/initiate_key.py @@ -0,0 +1,55 @@ +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.fernet import Fernet + + +def rsa_key(passkey, save_folder): + """Generate and save a private, public and symmetric key. + + Keyword arguments: + save_folder -- the folder to save the keys to (i.e. C://Desktop) + passkey -- the passkey used to enhance the encryption algorithm (OPTIONAL) + """ + #Generating three key objects (symmetric, private, public) + symmetric_key = Fernet.generate_key() + private_key = rsa.generate_private_key( + public_exponent = 65537, + key_size = 4096, + backend = default_backend() + ) + public_key = private_key.public_key() + #Converting the public and private key objects to a saveable format + if passkey != "": # + private_key_passcode = passkey + private_key_text = private_key.private_bytes( + encoding = serialization.Encoding.PEM, + format = serialization.PrivateFormat.PKCS8, + encryption_algorithm = serialization.BestAvailableEncryption( + bytes(private_key_passcode, 'utf-8') + ) + ) + else: + private_key_text = private_key.private_bytes( + encoding = serialization.Encoding.PEM, + format = serialization.PrivateFormat.PKCS8, + encryption_algorithm = serialization.NoEncryption() + ) + public_key_text = public_key.public_bytes( + encoding = serialization.Encoding.PEM, + format = serialization.PublicFormat.SubjectPublicKeyInfo + ) + #Saving the keys to the provided directory. + if save_folder[-1] != '/': + save_folder += '/' + private_key_file = save_folder + 'private_key.pem' + public_key_file = save_folder + 'public_key.pem' + symmetric_key_file = save_folder + 'symmetric_key.key' + with open(private_key_file, 'wb') as private_file, \ + open(public_key_file, 'wb') as public_file, \ + open(symmetric_key_file, 'wb') as symmetric_file: + private_file.write(private_key_text) + public_file.write(public_key_text) + symmetric_file.write(symmetric_key) +\ No newline at end of file diff --git a/Windows/decrypt.py b/Windows/decrypt.py @@ -1,73 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - -def rsa_dec(target_file_raw, save_folder, passkey): - passcode = passkey - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - private_key_source = save_folder + 'private_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(private_key_source, 'rb') as private_key_file: - private_key = serialization.load_pem_private_key( - private_key_file.read(), - password=bytes(passcode, 'utf-8'), - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - encoded_key_data = symmetric_key_file.read() - symmetric_key_data = private_key.decrypt( - encoded_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - symmetric_key = Fernet(symmetric_key_data) - file_to_decrypt = target_file - with open(file_to_decrypt, 'rb') as read_file: - encrypted_data = read_file.read() - original_message = symmetric_key.decrypt(encrypted_data) - with open(file_to_decrypt, 'wb') as write_file: - write_file.write(original_message) - with open(symmetric_key_source, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key_data) - -def weak_dec(target_file_raw, save_folder): - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - private_key_source = save_folder + 'private_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(private_key_source, 'rb') as private_key_file: - private_key = serialization.load_pem_private_key( - private_key_file.read(), - password=None, - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - encoded_key_data = symmetric_key_file.read() - symmetric_key_data = private_key.decrypt( - encoded_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - symmetric_key = Fernet(symmetric_key_data) - file_to_decrypt = target_file - with open(file_to_decrypt, 'rb') as read_file: - encrypted_data = read_file.read() - original_message = symmetric_key.decrypt(encrypted_data) - with open(file_to_decrypt, 'wb') as write_file: - write_file.write(original_message) - with open(symmetric_key_source, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key_data) -\ No newline at end of file diff --git a/Windows/encrypt.py b/Windows/encrypt.py @@ -1,38 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - -def rsa_enc(target_file_raw, save_folder): - target_file_list = target_file_raw.split(":") - if save_folder[-1] != '/': - save_folder += '/' - public_key_source = save_folder + 'public_key.pem' - symmetric_key_source = save_folder + 'symmetric_key.key' - for target_file in target_file_list: - with open(public_key_source, 'rb') as public_key_file: - public_key = serialization.load_pem_public_key( - public_key_file.read(), - backend=default_backend() - ) - with open(symmetric_key_source, 'rb') as symmetric_key_file: - symmetric_key_data = symmetric_key_file.read() - symmetric_key = Fernet(symmetric_key_data) - file_to_encrypt = target_file - with open(file_to_encrypt) as read_file: - file_data = read_file.read() - data = symmetric_key.encrypt(bytes(file_data, 'utf-8')) - encrypted_key = public_key.encrypt( - symmetric_key_data, - padding.OAEP( - mgf=padding.MGF1(algorithm=hashes.SHA256()), - algorithm=hashes.SHA256(), - label=None - ) - ) - with open(file_to_encrypt, 'wb') as write_file: - write_file.write(data) - with open(symmetric_key_source, 'wb') as crypto_key_file: - crypto_key_file.write(encrypted_key) -\ No newline at end of file diff --git a/Windows/figENC_Windows.py b/Windows/figENC_Windows.py @@ -1,281 +0,0 @@ -from initiate_key import rsa_key -from initiate_key import weak_key -from encrypt import rsa_enc -from decrypt import rsa_dec -from decrypt import weak_dec -import tkinter as tk - -crypto_mode = "" -def setup(mode): - mode = mode[0] - global crypto_mode - if mode == 0: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill="both") - file_label.config(text="Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill='x') - passcode_frame.pack(fill="both") - passcode_label.config(text="Set private key passcode") - passcode_label.pack() - passcode_instructions.config(text="CRITICAL: DO NOT FORGET YOUR PASSCODE.\nWITHOUT IT, YOUR DATA WILL BE LOST.") - passcode_instructions.pack() - passcode_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Save location for keys") - save_label.pack() - save_instructions.config(text="Save the keys to an empty folder, and store them somewhere secure\nIf other key files exist in the same folder, they will be overwritten") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Encrypt file/s") - submit.pack(pady="10") - crypto_mode = "key_enc" - elif mode == 1: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill="both") - file_label.config(text="Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Save location for keys") - save_label.pack() - save_instructions.config(text="Save the keys to an empty folder, and store them somewhere secure\nIf other key files exist in the same folder, they will be overwritten") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Encrypt file/s") - submit.pack(pady="10") - crypto_mode = "weak_key_enc" - elif mode == 2: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill="both") - file_label.config(text="Filepath/s to the file/s to encrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Key location") - save_label.pack() - save_instructions.config(text="Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Encrypt file/s") - submit.pack(pady="10") - crypto_mode = "enc" - elif mode == 3: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill="both") - file_label.config(text="Filepath/s to the file/s to decrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill='x') - passcode_frame.pack(fill="both") - passcode_label.config(text="Private key passcode") - passcode_label.pack() - passcode_instructions.config(text="Passcode must be the same passcode used when the keys were created") - passcode_instructions.pack() - passcode_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Key location") - save_label.pack() - save_instructions.config(text="Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Decrypt file/s") - submit.pack(pady="10") - crypto_mode = "dec" - elif mode == 4: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - file_frame.pack(fill="both") - file_label.config(text="Filepath/s to the file/s to decrypt") - file_label.pack() - file_instructions.pack() - file_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Key location") - save_label.pack() - save_instructions.config(text="Filepath to matching key trio") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Decrypt file/s") - submit.pack(pady="10") - crypto_mode = "weak_dec" - elif mode == 5: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - passcode_frame.pack(fill="both") - passcode_label.config(text="Set private key passcode") - passcode_label.pack() - passcode_instructions.config(text="CRITICAL: DO NOT FORGET YOUR PASSCODE.\nWITHOUT IT, YOUR DATA WILL BE LOST.") - passcode_instructions.pack() - passcode_input.pack(fill='x') - save.pack(fill="both") - save_label.config(text="Save location for keys") - save_label.pack() - save_instructions.config(text="Save the keys to an empty folder, and store them somewhere secure\nIf other key files exist in the same folder, they will be overwritten") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Create keys") - submit.pack(pady="10") - crypto_mode = "just_key" - elif mode == 6: - file_frame.pack_forget() - file_label.pack_forget() - file_instructions.pack_forget() - file_input.pack_forget() - passcode_frame.pack_forget() - passcode_label.pack_forget() - passcode_instructions.pack_forget() - passcode_input.pack_forget() - save.pack_forget() - save_label.pack_forget() - save_instructions.pack_forget() - save_input.pack_forget() - submit.pack_forget() - save.pack(fill="both") - save_label.config(text="Save location for keys") - save_label.pack() - save_instructions.config(text="Save the keys to an empty folder, and store them somewhere secure\nIf other key files exist in the same folder, they will be overwritten") - save_instructions.pack() - save_input.pack(fill="both") - submit.config(text="Create keys") - submit.pack(pady="10") - crypto_mode = "weak_key" - -def go(mode, save_folder, target_file, passkey=None): - if mode == "key_enc": - rsa_key(passkey, save_folder) - rsa_enc(target_file, save_folder) - elif mode == "weak_key_enc": - weak_key(save_folder) - rsa_enc(target_file, save_folder) - elif mode == "enc": - rsa_enc(target_file, save_folder) - elif mode == "dec": - rsa_dec(target_file, save_folder, passkey) - elif mode == "weak_dec": - weak_dec(target_file, save_folder) - elif mode == "just_key": - rsa_key(passkey, save_folder) - elif mode == "weak_key": - weak_key(save_folder) - -root = tk.Tk() -root.wm_title("figENC") -canvas = tk.Canvas(root, height=800, width=650) -canvas.pack() -frame = tk.Frame(root, bg="#1A181C") -frame.place(relwidth=1, relheight=1) - -header = tk.Label(frame, text="figENC", justify="center", font=("Arial", "24"), bg="#643181", fg="#B494C7") -subheader = tk.Label(frame, text="Industry leading encryption by FIGBERT", justify="center", font=("Arial", "18"), bg="#643181", fg="#B494C7", pady="5") -header.pack(fill="x", side="top") -subheader.pack(fill="x", side="top") - -action = tk.Frame(frame, bg="#1A181C", pady="5") -action.pack(fill='both') -action_label = tk.Label(action, text="Action:", justify='left', font=("Arial", "14"), bg="#1A181C", fg="#ACA0B2") -action_label.pack() -action_list = tk.Listbox(action, selectmode="single", font=("Arial", "12"), height=7, bd=1, relief=tk.SUNKEN, bg="#1A181C", fg="#B494C7", selectbackground="#643181") -action_list.insert(1, "Encrypt with fresh keys (password locked)") -action_list.insert(2, "Encrypt with fresh keys (no password)") -action_list.insert(3, "Encrypt with generated keys") -action_list.insert(4, "Decrypt with generated keys (password locked)") -action_list.insert(5, "Decrypt with generated keys (no password)") -action_list.insert(6, "Only create fresh keys (password locked)") -action_list.insert(7, "Only create fresh keys (no password)") -action_list.pack(fill='both', pady="10") -submit_action = tk.Button(action, text="Begin Process", font=("Arial", "12"), command=lambda: setup(action_list.curselection()), bg="#643181", fg="#B494C7") -submit_action.pack() - -step_two = tk.Frame(frame, bg="#1A181C") -step_two.pack(fill="both") - -file_frame = tk.Frame(step_two, bg="#1A181C", pady="8") -file_label = tk.Label(file_frame, text="If you see this, the app broke", font=("Arial", "14"), bg="#1A181C", fg="#ACA0B2") -file_instructions = tk.Label(file_frame, text="Separate filepaths with colons (:)", font=("Arial", "11"), bg="#1A181C", fg="#B494C7") -file_input = tk.Entry(file_frame, font=("Arial", "12"), justify=tk.CENTER, textvariable=tk.StringVar, relief=tk.SUNKEN, bg="#1A181C", fg="#ACA0B2", insertbackground="#ACA0B2") -passcode_frame = tk.Frame(step_two, bg="#1A181C", pady="8") -passcode_label = tk.Label(passcode_frame, text="If you see this, the app broke", font=("Arial", "14"), bg="#1A181C", fg="#ACA0B2") -passcode_instructions = tk.Label(passcode_frame, text="If you see this, the app broke", font=("Arial", "11"), bg="#1A181C", fg="#B494C7") -passcode_input = tk.Entry(passcode_frame, font=("Arial", "12"), justify=tk.CENTER, textvariable=tk.StringVar, relief=tk.SUNKEN, bg="#1A181C", fg="#ACA0B2", show="*", insertbackground="#ACA0B2") - -save = tk.Frame(step_two, bg="#1A181C", pady="8") -save_label = tk.Label(save, text="Save location for keys", font=("Arial", "14"), bg="#1A181C", fg="#ACA0B2") -save_instructions = tk.Label(save, text="Save the keys to an empty folder, and store them somewhere secure\nIf other key files exist in the same folder, they will be overwritten", font=("Arial", "11"), bg="#1A181C", fg="#B494C7") -save_input = tk.Entry(save, font=("Arial", "12"), justify=tk.CENTER, textvariable=tk.StringVar, relief=tk.SUNKEN, bg="#1A181C", fg="#ACA0B2", insertbackground="#ACA0B2") -submit = tk.Button(save, text="If you see this, the app broke", font=("Arial", "12"), command=lambda: go(mode=crypto_mode, save_folder=save_input.get(), target_file=file_input.get(), passkey=passcode_input.get()), bg="#643181", fg="#B494C7") - -root.mainloop() -\ No newline at end of file diff --git a/Windows/initiate_key.py b/Windows/initiate_key.py @@ -1,82 +0,0 @@ -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.fernet import Fernet - -#rsa_key() generates a symmetric key as well as a public and private key -def rsa_key(passkey, savefolder): - # Generating the symmetric key for use encrypting the file - symmetric_key = Fernet.generate_key() - # Generating the private key object for use encrypting the symmetric key - private_key = rsa.generate_private_key( - public_exponent=65537, - key_size=4096, - backend=default_backend() - ) - # Generating the public key object for use decrypting the symmetric key - public_key = private_key.public_key() - # Collecting user input to add a password to the private key for additional security - private_key_passcode = passkey - # Turning the private key object to readable text for export - private_key_text = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.BestAvailableEncryption(bytes(private_key_passcode, 'utf-8')) - ) - # Turning the public key object to readable text for export - public_key_text = public_key.public_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PublicFormat.SubjectPublicKeyInfo - ) - # Checking the validity of the filepath provided - if savefolder[-1] != '/': - savefolder += '/' - # Writing the keys to their respective files - private_key_file = savefolder + 'private_key.pem' - public_key_file = savefolder + 'public_key.pem' - symmetric_key_file = savefolder + 'symmetric_key.key' - with open(private_key_file, 'wb') as private_file: - private_file.write(private_key_text) - with open(public_key_file, 'wb') as public_file: - public_file.write(public_key_text) - with open(symmetric_key_file, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key) - -#weak_key() generates a symmetric key as well as a public and private key -def weak_key(savefolder): - # Generating the symmetric key for use encrypting the file - symmetric_key = Fernet.generate_key() - # Generating the private key object for use encrypting the symmetric key - private_key = rsa.generate_private_key( - public_exponent=65537, - key_size=4096, - backend=default_backend() - ) - # Generating the public key object for use decrypting the symmetric key - public_key = private_key.public_key() - # Turning the private key object to readable text for export - private_key_text = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption() - ) - # Turning the public key object to readable text for export - public_key_text = public_key.public_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PublicFormat.SubjectPublicKeyInfo - ) - # Checking the validity of the filepath provided - if savefolder[-1] != '/': - savefolder += '/' - # Writing the keys to their respective files - private_key_file = savefolder + 'private_key.pem' - public_key_file = savefolder + 'public_key.pem' - symmetric_key_file = savefolder + 'symmetric_key.key' - with open(private_key_file, 'wb') as private_file: - private_file.write(private_key_text) - with open(public_key_file, 'wb') as public_file: - public_file.write(public_key_text) - with open(symmetric_key_file, 'wb') as symmetric_file: - symmetric_file.write(symmetric_key) -\ No newline at end of file