cedula-uruguay-pkcs11

maintainer carlosplanchon · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The package downloads a proprietary .deb from an official Uruguayan government host for repackaging; while the host is not whitelisted, it is plausibly official and the payload is a known, self-contained middleware component, not an obfuscated or universally swappable binary.

Triggered rules

LOW AI review downgraded a static finding 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 proprietary .deb from an official Uruguayan government host for repackaging; while the host is not whitelisted, it is plausibly official and the payload is a known, self-contained middleware component, not an obfuscated or universally swappable binary.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host 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:17 source=("libclassicclient.deb::https://archivos.agesic.gub.uy/nextcloud/index.php/s/8kqSb9z4xKABM8T/download")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Carlos A. Planchón <carlosandresplanchonprestes@gmail.com>
2
3# This package is not affiliated with or endorsed by AGESIC.
4# This package repackages proprietary middleware distributed by AGESIC for Arch Linux.
5
6pkgname=cedula-uruguay-pkcs11
7pkgver=7.5.0
8pkgrel=2
9pkgdesc="PKCS#11 middleware for the Uruguayan electronic ID card (cédula)"
10arch=('x86_64')
11url="https://www.gub.uy/agencia-gobierno-electronico-sociedad-informacion-conocimiento/firma-digital/drivers-para-usar-cedula-digital"
12license=('custom')
13depends=('pcsclite' 'ccid')
14optdepends=('qt5-base: GUI for the secure PIN / bio dialogs (SecurePinDialog/SecureBioDialog)')
15makedepends=('binutils' 'tar')
16options=('!debug')
17source=("libclassicclient.deb::https://archivos.agesic.gub.uy/nextcloud/index.php/s/8kqSb9z4xKABM8T/download")
18sha256sums=('b6fd0150fcea2b952b0d82027324cf3250dea6f42eaac430d6d08ea22eb840ed')
19
20prepare() {
21 cd "$srcdir"
22 ar x libclassicclient.deb
23}
24
25package() {
26 cd "$srcdir"
27
28 local extractdir="$srcdir/extract"
29 rm -rf "$extractdir"
30 mkdir -p "$extractdir"
31
32 tar -xf data.tar.* -C "$extractdir"
33
34 install -dm755 "$pkgdir/usr/lib/ClassicClient"
35 cp -a "$extractdir/usr/lib/ClassicClient/." "$pkgdir/usr/lib/ClassicClient/"
36
37 if [[ -d "$extractdir/etc/ClassicClient" ]]; then
38 install -dm755 "$pkgdir/etc/ClassicClient"
39 cp -a "$extractdir/etc/ClassicClient/." "$pkgdir/etc/ClassicClient/"
40 fi
41
42 install -dm755 "$pkgdir/usr/lib/pkcs11"
43 ln -sf ../ClassicClient/libgclib.so "$pkgdir/usr/lib/pkcs11/libgclib.so"
44
45 # Install the helper binaries the upstream .deb ships in /usr/bin (previously
46 # omitted by this package). The middleware launches SecurePinDialog / SecureBioDialog
47 # for PIN and biometric entry; PIN entry misbehaves if SecurePinDialog is absent.
48 install -dm755 "$pkgdir/usr/bin"
49
50 # standalone change-PIN tools (no Qt); referenced by the already-installed .desktop
51 install -m755 "$extractdir/usr/bin/CCChangePinService" "$pkgdir/usr/bin/"
52 install -m755 "$extractdir/usr/bin/CCChangePinTool" "$pkgdir/usr/bin/"
53
54 # Qt GUI dialogs: real binary next to Resources/, plus a small wrapper at the path
55 # the middleware launches. The wrapper uses Qt's offscreen platform when there is no
56 # display, so the dialogs also work on headless systems.
57 install -m755 "$extractdir/usr/bin/SecurePinDialog" "$pkgdir/usr/lib/ClassicClient/"
58 install -m755 "$extractdir/usr/bin/SecureBioDialog" "$pkgdir/usr/lib/ClassicClient/"
59
60 local d
61 for d in SecurePinDialog SecureBioDialog; do
62 cat > "$pkgdir/usr/bin/$d" <<EOF
63#!/bin/sh
64# Wrapper for the Classic Client secure dialog, shipped by $pkgname. Falls back to
65# Qt's offscreen platform when no display is available so it works on headless systems.
66[ -z "\${DISPLAY:-}" ] && [ -z "\${WAYLAND_DISPLAY:-}" ] && export QT_QPA_PLATFORM=offscreen
67exec /usr/lib/ClassicClient/$d "\$@"
68EOF
69 chmod 755 "$pkgdir/usr/bin/$d"
70 done
71
72 install -dm755 "$pkgdir/usr/share/licenses/$pkgname"
73 cat > "$pkgdir/usr/share/licenses/$pkgname/LICENSE" <<'EOF'
74This package installs proprietary middleware obtained from AGESIC distribution channels.
75The user is responsible for complying with the vendor's license and usage terms.
76EOF
77}
78

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion