Add custom QZ Tray fork with pairing key authentication
- Custom fork of QZ Tray 2.2.x with certificate validation bypassed - Implemented pairing key (HMAC) authentication as replacement - Modified files: PrintSocketClient.java (certificate check disabled) - New files: PairingAuth.java, PairingConfigDialog.java - Excluded build artifacts (out/, lib/javafx*) from repository - Library JARs included for dependency management
This commit is contained in:
109
tray/ant/lib/slim-icu.py
Normal file
109
tray/ant/lib/slim-icu.py
Normal file
@@ -0,0 +1,109 @@
|
||||
# 2018 Yohanes Nugroho <yohanes@gmail.com> (@yohanes)
|
||||
#
|
||||
# 1. Download icu4j source code, build using ant.
|
||||
# It will generate icu4j.jar and icu4j-charset.jar
|
||||
#
|
||||
# 2. Run slim-icu.py to generate slim version.
|
||||
#
|
||||
# To invoke from ant, add python to $PATH
|
||||
# and add the following to build.xml:
|
||||
#
|
||||
# <target name="distill-icu" depends="init">
|
||||
# <exec executable="python">
|
||||
# <arg line="ant/lib/slim-icu.py lib/charsets"/>
|
||||
# </exec>
|
||||
# </target>
|
||||
#
|
||||
# ... then call: ant distill-icu
|
||||
#
|
||||
# 3. Overwrite files in lib/charsets/
|
||||
|
||||
# slim ICU
|
||||
import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
import zipfile
|
||||
from zipfile import ZipFile
|
||||
|
||||
directory = str(Path(__file__).resolve().parent)
|
||||
if len(sys.argv) > 1:
|
||||
directory = sys.argv[1]
|
||||
|
||||
mode = zipfile.ZIP_DEFLATED
|
||||
|
||||
|
||||
def keep_file(filename):
|
||||
# skip all break iterators
|
||||
if filename.endswith(".brk") \
|
||||
or filename.endswith(".dict") \
|
||||
or filename.endswith("unames.icu") \
|
||||
or filename.endswith("ucadata.icu") \
|
||||
or filename.endswith(".spp"):
|
||||
return False
|
||||
|
||||
# keep english and arabic
|
||||
if filename.startswith("en") \
|
||||
or filename.startswith("ar") \
|
||||
or not filename.endswith(".res"):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
zin = ZipFile(os.path.join(directory, 'icu4j.jar'), 'r')
|
||||
zout = ZipFile(os.path.join(directory, 'icu4j-slim.jar'), 'w', mode)
|
||||
|
||||
for item in zin.infolist():
|
||||
buff = zin.read(item.filename)
|
||||
print(item.filename)
|
||||
|
||||
if keep_file(item.filename):
|
||||
print("Keep")
|
||||
zout.writestr(item, buff)
|
||||
else:
|
||||
print("Remove")
|
||||
|
||||
zout.close()
|
||||
zin.close()
|
||||
|
||||
|
||||
def keep_charset_file(filename):
|
||||
to_remove = [
|
||||
"cns-11643-1992.cnv",
|
||||
"ebcdic-xml-us.cnv",
|
||||
"euc-jp-2007.cnv",
|
||||
"euc-tw-2014.cnv",
|
||||
"gb18030.cnv",
|
||||
"ibm-1363_P11B-1998.cnv",
|
||||
"ibm-1364_P110-2007.cnv",
|
||||
"ibm-1371_P100-1999.cnv",
|
||||
"ibm-1373_P100-2002.cnv",
|
||||
"ibm-1375_P100-2008.cnv",
|
||||
"ibm-1383_P110-1999.cnv",
|
||||
"ibm-1386_P100-2001.cnv",
|
||||
"ibm-1388_P103-2001.cnv",
|
||||
"ibm-1390_P110-2003.cnv"
|
||||
]
|
||||
|
||||
for i in to_remove:
|
||||
if i in filename:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
zin = ZipFile(os.path.join(directory, 'icu4j-charset.jar'), 'r')
|
||||
zout = ZipFile(os.path.join(directory, 'icu4j-charset-slim.jar'), 'w', mode)
|
||||
|
||||
for item in zin.infolist():
|
||||
buff = zin.read(item.filename)
|
||||
print(item.filename, end=' ')
|
||||
|
||||
if keep_charset_file(item.filename):
|
||||
print("Keep")
|
||||
zout.writestr(item, buff)
|
||||
else:
|
||||
print("Remove")
|
||||
|
||||
zout.close()
|
||||
zin.close()
|
||||
Reference in New Issue
Block a user