Commit Graph
23 Commits
Author SHA1 Message Date
Mounir IDRASSI f1d7f8bd4e CI: run the APDU response erasure checks on Linux
Tests/response_apdu_test.cpp was not run by any workflow. Build and run
it in the Linux workflow before the packages are built, and start the
workflow when the test changes. Changes to the code it covers already
start it.
2026-10-15 07:57:12 +02:00
Mounir IDRASSI 89cd591abb Tests: cover uneven reads with 32 workers
Add a 33 sector range to the volume read test and correct the header compatibility check description in the big endian workflow.
2026-10-11 20:15:46 +09:00
Ville TakioandGitHub df2e9dcd30 Tests: read known data from the test volumes without mounting (#1907)
The Linux workflow checks the content of the Tests/*.hc volumes by
mounting them, which needs root, FUSE and the installed package, and so
only runs on x86_64. Add a test that recovers the same data through the
volume layer instead, so it also runs on other architectures, e.g. on the
big-endian cross build under qemu-user.

Tests/volume_read_test.cpp opens a volume read-only and reads its data
area with Volume::ReadSectors: in one call, as multi-sector ranges at
nonzero offsets with odd sector counts, again with the encryption thread
pool running, and one sector at a time; every read must match the first.
CPU features are detected as in the application, and the character set
is taken from the environment (LC_CTYPE) so that paths with non-ASCII
characters work; if that locale is unavailable, the test continues in the
C locale and says so.

Tests/test_volume_read.py builds it against Volume.a and Platform.a of a
finished standard Linux build (CXX and NM can be set for a cross build)
and checks the plaintext of every Tests/test.*.hc volume: the FAT boot
sector, DUMMY.TXT with the content "Dummy" at the cluster given by the
root directory, and a known SHA-256 digest of the whole data area. A
volume without a digest, or a digest without a volume, is an error.

It runs in the Linux workflow after the .deb build and in the build job
of the big-endian workflow (test.sha512.hc only in the automatic check,
all volumes in the full run), and requires the thread pool there.

Signed-off-by: Ville Takio <ville+git@takio.fi>
2026-10-11 18:50:22 +09:00
Mounir IDRASSI 6e63041962 Linux: secure NixOS helper lookup and report blocked elevation
Look up NixOS helpers only when trusted system metadata identifies NixOS
and each path component passes ownership and permission checks. Keep the
existing helper search on other distributions.

Detect NoNewPrivs before prompting for administrator credentials, with a
clear error for restricted launchers. Add regression coverage to Linux CI
and append the English fallback message to all language files.

Refs #1911
2026-10-10 22:25:42 +09:00
Mounir IDRASSI ac842e8d04 Tests: cover wxWidgets job sharing and OpenWrt serial builds 2026-10-10 12:26:38 +09:00
Ville TakioandGitHub 277e236968 CI: build and test on big-endian (s390x) and across byte orders (#1905)
* CI: build and test on big-endian (s390x) and across byte orders

The Linux workflow only builds and tests on x86_64, so code that assumes
a little-endian host (see #1899) is not caught. Add a workflow that
cross-builds the console version for s390x and runs it under qemu-user:

- the algorithm self-tests (--test),
- the Tests/test.*.hc volumes, created on little-endian, must open and
  accept a password change,
- volumes created on s390x open on a native amd64 build and the other
  way round, for every encryption algorithm and cascade, with every PRF
  (new Tests/test_byte_order_interop.py, also usable on its own).

The wxWidgets console build is cached per architecture, like in the
existing Linux workflow.

Signed-off-by: Ville Takio <ville+git@takio.fi>

* CI: quick big-endian check on pull requests, full suite on request

Address review:

- Pull requests and pushes run only the s390x build, the algorithm
  self-tests and the Tests/*.hc volumes. The full suite (amd64 build,
  volumes on both builds, interoperability in both directions) runs
  when started manually, with the volume and interoperability tests in
  separate jobs that run concurrently.
- Pass the KDF with --hash; one interoperability case per direction
  still uses autodetection.
- Use separate current and new PIM values: the Tests/*.hc volumes are
  opened with PIM 0, but the new headers use PIM 1, so only the first
  key derivation is expensive.
- Open each Tests/*.hc volume again with the new password before
  removing it.
- Run VeraCrypt with LANG and LC_ALL set to C and an empty
  XDG_CONFIG_HOME, so the "Incorrect password" check does not depend on
  the user's language settings.
- Fail instead of reporting success when nothing would be tested:
  --skip-official without a second binary, or no (or a missing
  requested) Tests/*.hc volume. Add --fixture to select volumes.
- Print how long each check takes.

* CI: keep the automatic big-endian check short

- Open only Tests/test.sha512.hc in the automatic check (all five
  volumes took 154 s of the 327 s s390x job); the full suite still
  opens all of them.
- Cover KDF autodetection in the automatic check too: the first volume
  is opened with the new password (PIM 1) without --hash. The
  interoperability case without --hash now uses sha256, since sha512
  is tried first anyway.
- Include the event name in the concurrency group, so a push does not
  cancel a manual full run.
- Print the elapsed time for failed checks too.

(The previous commit message should say that XDG_CONFIG_HOME points to
an empty temporary directory.)

* CI: use actions/cache@v5 in the big-endian workflow

Match build-linux.yml, which moved to the Node 24 runtime in 9d9fda20.

---------

Signed-off-by: Ville Takio <ville+git@takio.fi>
2026-10-09 21:11:38 +09:00
Mounir IDRASSI 9d9fda208d CI: test Ubuntu 24.04 and 26.04
Replace the deprecated 22.04 runner with independent jobs for both releases.
Use system wxWidgets for the 26.04 GUI to match package dependencies;
keep static wxWidgets for 24.04 and both console builds.

Isolate caches, cleanup and artifacts by release. Update cache and cleanup
actions to Node 24 runtimes.

Fixes #1871
2026-10-05 10:23:32 +09:00
Mounir IDRASSI dbe3a72de4 Translations: restore key coverage and fix XML validation
Add English fallbacks for 12 missing keys in 41 language files.
Report all missing keys and XML errors before failing validation.

Run four regression tests in CI. All tests and 43 XML files pass.
2026-10-04 11:18:54 +09:00
Mounir IDRASSI b82f2dd934 CI: skip cache cleanup on pull requests
Fork PR GITHUB_TOKENs cannot delete repository Actions caches, so run the cleanup only after trusted pushes to master.
2026-05-16 10:44:40 +09:00
Mounir IDRASSI 54600e18af Github workflows: enhance xmlvalidate.sh to catch invalid escape sequences 2025-05-25 17:17:32 +09:00
Mounir IDRASSI b673901503 Move copyright and links to "AM Crypo", amcrypto.jp and veracrypt.jp 2025-05-11 16:02:20 +09:00
Mounir IDRASSI 865ee6c429 Github workflows: Fix issue running XML validation workflow by using fixed version of fast-xml-parser 4.5.2
latest version 5.x of fast-xml-parser causes described in https://github.com/veracrypt/VeraCrypt/pull/1497#issuecomment-2671395468
2025-02-20 16:05:39 +01:00
JertzukkaandGitHub 98fa395f29 CI: Enable XML Validation Workflow (#1497) 2025-02-15 11:40:27 +01:00
Mounir IDRASSI ad3e98af74 Fix Github action failure by moving upload-artifact to v4 2025-01-23 17:29:09 +01:00
Mounir IDRASSI 3f8ac7cd51 Add XML validation Github workflow (contributed by Jertzukka github.com/Jertzukka/VeraCrypt/tree/ci) 2024-12-25 11:35:58 +01:00
Mounir IDRASSI 1312c537f5 Linux: fix crash when displaying Admin password dialog. Fix failure of Github action by using builtin GITHUB_TOKEN 2024-07-10 11:09:10 +02:00
Mounir IDRASSI cd90170f5d Activate Github workflow for master branch 2024-07-06 16:40:16 +02:00
Mounir IDRASSI 9b87199ca5 Activate Github linux workflow for main branch 2024-07-06 16:39:22 +02:00
Mounir IDRASSIandGitHub bc5c32ad14 Linux: Add Github CI workflow for Linux (#1374)
* Linux/MacOSX: during build, fallback to /tmp if wxWidgets sources not found in parent directory

* Linux: Add Github workflow to build .deb files and test generated binaries

* Linux: fix wrong wxWidgets extract path in yaml

* fix: fix wrong wxWidgets extract path in yaml

* Linux: harmonize content of test volumes and update Github workflow for this

* Fix corrupted test container

* Linux: optimize Github workflow by caching wxBuildConsole and wxBuildGUI folders

We also modify build script to detect the presence of wxBuildConsole and wxBuildGUI folders and reuse them

* Remove files mistakenly added

* Linux: Fix wrong test for Github workflow

* Linux: use static build of wxWidgets for GUI in Github workflow

* Linux: upload also .deb SHA256SUM file if it is generated in Github workflow

* Linux: fix detection logic of parent folder in build scripts

* Github workflow: add build_cmake_deb.sh as trigger to build-linux.yml

* Github workflow: add wxWidgets source code to the cache of workflow
2024-07-06 16:36:56 +02:00
a1346054andGitHub 32052f214b Minor cleanup of the repo (#822)
* *: source files should not be executable

* *: make sure files have final newline

* *: remove BOM from text files

* translations: unify headers

* *: fix typos

* *: trim excess whitespace
2021-09-04 21:59:25 +02:00
Andreas BeckerandGitHub 9277ea9700 adding a sponsor button to repository (#720)
this commit will add a sponsor button to the repository,
pointing to the donation page of the veracrypt website.

more information on github documentation under https://git.io/JL9e6
2020-12-30 05:12:35 +01:00
Andreas BeckerandGitHub 3139066509 added probot configuration (#719)
this commit includes the configuration for the github-app
probot. more information can be found here:
https://probot.github.io/apps/stale/
2020-12-30 05:06:47 +01:00
ceacda7d80 Added a bug, change and feature template (#716)
Co-authored-by: Andreas Becker <mail@andreasbecker.de>
2020-12-29 01:05:47 +01:00