38 lines
956 B
Python
Executable File
38 lines
956 B
Python
Executable File
#!/usr/bin/env python3
|
|
import sys
|
|
|
|
oldexcepthook = sys.excepthook
|
|
def newexcepthook(type,value,traceback):
|
|
oldexcepthook(type,value,traceback)
|
|
#input("Press ENTER to quit.")
|
|
sys.excepthook = newexcepthook
|
|
|
|
import os
|
|
p = os.path.join
|
|
pUp = os.path.dirname
|
|
s = False
|
|
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
|
|
s = os.path.realpath(sys.executable)
|
|
else:
|
|
s = os.path.realpath(__file__)
|
|
sp = pUp(s)
|
|
|
|
# script start
|
|
try:
|
|
from Cryptodome.Cipher import AES
|
|
except:
|
|
from Crypto.Cipher import AES
|
|
bufferSize = int(os.environ["fstream_aesbuffer"])
|
|
unbufferedStdout = os.fdopen(sys.stdout.fileno(),"wb",0) # Make unbuffered stdout
|
|
|
|
pw = os.environ["fstream_aespass"].encode("utf-8")
|
|
while len(pw) < 32: pw = pw + pw
|
|
pw = pw[:32]
|
|
|
|
while True:
|
|
data = sys.stdin.buffer.read(bufferSize)
|
|
if len(data) != bufferSize: sys.exit(0)
|
|
cipher = AES.new(pw, AES.MODE_CBC)
|
|
unbufferedStdout.write(cipher.iv)
|
|
unbufferedStdout.write(cipher.encrypt(data))
|