procertum-smartsign
The package downloads a prebuilt binary installer from the official vendor's domain (certum.eu), which is not on the standard whitelist but is plausibly legitimate; it then extracts and installs the bundled files without executing the installer, reducing risk. The source is not executed, and the build process is transparent, limiting impact to trust in the vendor's binary integrity.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt binary installer from the official vendor's domain (certum.eu), which is not on the standard whitelist but is plausibly legitimate; it then extracts and installs the bundled files without executing the installer, reducing risk. The source is not executed, and the build process is transparent, limiting impact to trust in the vendor's binary integrity.
1 higher static finding superseded - not the current verdict (shown for transparency)
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:14
"https://files.certum.eu/software/SimplySignDesktop/Linux-Ubuntu/${_fullver}/SimplySignDesktop-${_fullver}-x86_64-prod-ubuntu.bin"
PKGBUILD
1 offending line(s) highlighted# Maintainer: delthas <arch@delthas.fr>
pkgname=procertum-smartsign
pkgver=9.4.3.0
_fullver=2.9.14-${pkgver}
pkgrel=1
pkgdesc="Creation and verification of secure electronic signatures."
arch=(x86_64)
url="https://support.certum.eu/en/software/${pkgname}/"
license=("LicenseRef-${pkgname}-software-license")
depends=("gcc-libs" "java-runtime>=23" "pcsclite")
optdepends=("ccid: USB CCID smart-card reader support"
"opensc: PKCS#11 support for additional smart cards")
source=(
"https://files.certum.eu/software/SimplySignDesktop/Linux-Ubuntu/${_fullver}/SimplySignDesktop-${_fullver}-x86_64-prod-ubuntu.bin"
)
md5sums=('36a19c83255d35f51d09a1f299845177')
prepare() {
# Avoid trusting the installer; extract manually from the first gzip header.
# This is the "naive" command that calls the installer, to extract itself.
# sh "./SimplySignDesktop-${_fullver}-${CARCH}-prod-ubuntu.bin" --noexec --keep --nox11 --nochown --target "${srcdir}/${pkgname}-${pkgver}"
# This tells grep not to try to parse Unicode codepoints from the file, since we are doing binary operations.
export LANG=C
OFFSET=$(grep -obUaP -m 1 "\x1F\x8B" SimplySignDesktop-${_fullver}-x86_64-prod-ubuntu.bin | cut -d ':' -f 1)
mkdir -p "${srcdir}/${pkgname}-${pkgver}"
tail -c +$(($OFFSET+1)) SimplySignDesktop-${_fullver}-x86_64-prod-ubuntu.bin | tar -C "${srcdir}/${pkgname}-${pkgver}" -xzf -
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}/SS-$pkgver-dist"
install -Dm644 -t "$pkgdir/usr/lib/$pkgname" *.jar *.so
install -Dm755 -t "$pkgdir/usr/lib/$pkgname" *.sh
install -Dm644 -t "$pkgdir/usr/lib/$pkgname/lib" lib/*
install -m755 -d "$pkgdir/usr/bin"
ln -s "/usr/lib/$pkgname/proCertumSmartSign.sh" "$pkgdir/usr/bin/$pkgname"
install -Dm644 proCertumSmartSign.png "$pkgdir/usr/share/icons/hicolor/512x512/apps/$pkgname.png"
sed -i -E 's|(Exec=).*|\1'"/usr/bin/$pkgname"'|gm' proCertumSmartSign.desktop
sed -i -E 's|(Icon=).*|\1'"$pkgname"'|gm' proCertumSmartSign.desktop
install -Dm644 proCertumSmartSign.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" licenses/proCertumSmartSign_*_licence.rtf
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |