imported scripts from intellicastle project and adapted to bordercastle

This commit is contained in:
Leon Poyyayil 2025-10-25 08:02:34 +02:00
parent 6178c58132
commit dd07940e6a
29 changed files with 1744 additions and 2 deletions

View file

@ -1,3 +1,144 @@
#!/bin/bash
echo "building BorderCastle JCE provider ..."
## -- FILE ------------------------------------------------------------------
## name : bordercastle.sh
## project : BoarderZone: BorderCastle
## created : Leon Poyyayil - 2013-08-01
## language : Linux shell script
## environment: GNU bash
## copyright : (c) 1990-2025 by Leon Poyyayil (private), Switzerland
## license : Bouncy Castle License. see LICENSE
## --------------------------------------------------------------------------
# this script builds the Bouncy Castle JCE provider from scratch with changed
# package names to allow for independency of other Bouncy/Spongy Castle users.
SCRIPT_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
MAIN_DIR=$(readlink -f "$SCRIPT_DIR")
pushd $MAIN_DIR >/dev/null
. bordercastle.conf
BC_PKG="r${VERSION_MAJOR}rv${VERSION_MINOR}"
BC_DIR="bc-java-${BC_PKG}"
BC_URL="https://github.com/bcgit/bc-java/archive/refs/tags/${BC_PKG}.zip"
BC_ZIP=bouncycastle/crypto-${BC_VER}.zip
PATCH=bouncycastle/crypto-$BC_VER.patch
DELIMITER=$'\n==========\n'
if [[ "$FORCED" == "true" ]]; then
verbose "cleaning up old stuff ..."
rm -rf bc* boca* crypto crypto-$BC_VER log/*.done
rm -rf private/patch/bouncycastle/*
rm -rf private/patch/bordercastle/*
fi
if [ -f "$BC_ZIP" ]; then
verbose "BouncyCastle v. $BC_VER already downloaded"
else
info "downloading BouncyCastle v. $BC_VER ..."
wget -O "$BC_ZIP" "$BC_URL" -nv -o log/bouncycastle-download.log
fi
if [[ ! -d crypto && ! -d bc-light && ! -d boca-light ]]; then
info "extracting original BouncyCastle v. $BC_VER sources ..."
unzip -o -b $BC_ZIP 2>&1 > log/crypto-$BC_VER.zip.log
mv $BC_DIR crypto
chmod -R u+w crypto/*
rm -f log/*.done
else
verbose "BouncyCastle already unpacked"
fi
if [[ -d crypto && ! -d bc-light && ! -d boca-light ]]; then
info "${DELIMITER}converting original BouncyCastle source tree to maven layout ..."
bin/bouncycastle-to-maven-layout.sh 2>&1 | tee log/bouncycastle-to-maven-layout.sh.log
rm -f log/*.done
else
verbose "BouncyCastle already converted to maven layout"
fi
if [[ -d bc-light && ! -d boca-light ]]; then
info "${DELIMITER}converting BouncyCastle source tree to BorderCastle packages ..."
bin/bouncycastle-to-bordercastle.sh 2>&1 | tee log/bouncycastle-to-bordercastle.sh.log
rm -f log/*.done
else
verbose "BouncyCastle already converted to BorderCastle"
fi
if [[ ! -d private/patch/bouncycastle/boca-light ]]; then
info "${DELIMITER}preparing patch creation ..."
mkdir -p private/patch/bouncycastle
cp -a boca-* private/patch/bouncycastle/
else
verbose "BorderCastle patch already prepared"
fi
if [[ -f "$PATCH" && ! -f log/crypto-$BC_VER.patch.done ]]; then
info "${DELIMITER}applying BorderCastle source code patch ..."
patch -p1 < "$PATCH" 2>&1 | tee log/crypto-$BC_VER.patch.log
touch log/crypto-$BC_VER.patch.done
else
verbose "BorderCastle already patched"
fi
if [[ ! -d private/patch/bordercastle/boca-light ]]; then
info "${DELIMITER}updating patch ..."
mkdir -p private/patch/bordercastle
cp -a boca-* private/patch/bordercastle/
pushd private/patch >/dev/null
diff -rupN bouncycastle bordercastle > ../../bouncycastle/crypto-${BC_VER}-new.patch
popd >/dev/null
info "=> examine new patch: bouncycastle/crypto-${BC_VER}-new.patch"
else
verbose "BorderCastle patch already updated"
fi
if [[ ! -f log/bordercastle-compile.done ]]; then
info "${DELIMITER}compiling BorderCastle source code with maven ..."
LOGFILE=log/bordercastle-compile.sh.log
bin/bordercastle-compile.sh 2>&1 | tee "$LOGFILE"
SEARCH_QUERY="\[INFO\] BUILD FAILURE"
if grep -q "$SEARCH_QUERY" "$LOGFILE"; then
echo "${DELIMITER}maven build failed, aborting"
exit -1
fi
touch log/bordercastle-compile.done
else
verbose "BorderCastle already compiled"
fi
if [[ ! -f libs/bordercastle-jce-javadoc.zip ]]; then
info "${DELIMITER}generating BorderCastle javadoc ..."
bin/bordercastle-javadoc.sh 2>&1 | tee log/bordercastle-javadoc.sh.log
else
verbose "BorderCastle javadoc already generated"
fi
if [[ ! -f libs/bordercastle-jce.jar ]]; then
info "${DELIMITER}re-packing BorderCastle JCE provider .jar ..."
bin/bordercastle-repack.sh 2>&1 | tee log/bordercastle-repack.sh.log
else
verbose "BorderCastle JCE provider already re-packed"
fi
if [[ ! -f libs/bordercastle-jce-obfuscated.jar ]]; then
info "${DELIMITER}obfuscating BorderCastle JCE provider .jar ..."
bin/bordercastle-obfuscate.sh 2>&1 | tee log/bordercastle-obfuscate.sh.log
else
verbose "BorderCastle JCE provider already obfuscated"
fi
if [[ ! -f libs/signed/bordercastle-jce-$BC_VER.jar ]]; then
info "${DELIMITER}signing BorderCastle libraries .jar ..."
bin/bordercastle-sign.sh 2>&1 | tee log/bordercastle-sign.sh.log
else
verbose "BorderCastle libraries already signed"
fi
if [[ "$FORCED" == "true" ]]; then
info "${DELIMITER}cleaning intermediate build files ..."
bin/bordercastle-post-build-cleanup.sh 2>&1 | tee log/bordercastle-post-build-cleanup.sh.log
fi
popd >/dev/null
## -- EOF -------------------------------------------------------------------