Skip to content

Commit 0576544

Browse files
committed
Update upstream source from tag 'upstream/1.26.24'
Update to upstream version '1.26.24' with Debian dir 49d489a
2 parents c2cba10 + b71f381 commit 0576544

File tree

1,127 files changed

+23261
-4413
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,127 files changed

+23261
-4413
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
custom: "https://www.veracrypt.fr/en/Donation.html"
1+
custom: "https://veracrypt.jp/en/Donation.html"

.github/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ closeComment: >
2020
or it has been fixed in a newer version. If it’s an enhancement
2121
and hasn't been taken on for so long, then it seems no one has
2222
the time to implement this.
23-
Please reopen if you still encounter this issue with the [latest stable version](https://www.veracrypt.fr/en/Downloads.html).
23+
Please reopen if you still encounter this issue with the [latest stable version](https://veracrypt.jp/en/Downloads.html).
2424
You can also contribute directly by providing a pull request.
2525
Thank you!

.github/workflows/xmlvalidate.sh

100644100755
Lines changed: 190 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,196 @@
11
#!/bin/bash
2-
fail=false
3-
4-
# Get all string keys
5-
KEYS=$(grep -oP '<entry[\ ]+lang="[^"]+"[\ ]+key="\K[^"]+' "$1"/src/Common/Language.xml)
6-
7-
for file in {"$1"/Translations/Language.*.xml,"$1"/src/Common/Language.xml}; do
8-
echo "$file"
9-
passes=true
10-
11-
# Validate xml
12-
output=$(fxparser -V "$file")
13-
returnvalue=$?
14-
15-
if [ "$returnvalue" -ne "0" ]; then
16-
passes=false
17-
fail=true
18-
echo $output
19-
fi
20-
21-
# Ensure each key found in common xml is found in translation xmls
22-
for key in $KEYS; do
23-
if ! grep -q "$key" "$file"; then
24-
echo "Key $key not found in $file"
25-
passes=false
26-
fail=true
2+
set -euo pipefail # Exit on error, undefined variable, or pipe failure
3+
4+
# --- Configuration ---
5+
SCRIPT_NAME=$(basename "$0")
6+
FAIL_FLAG=false
7+
8+
# --- Colors ---
9+
COLOR_RED='\033[0;31m'
10+
COLOR_GREEN='\033[0;32m'
11+
COLOR_YELLOW='\033[0;33m'
12+
COLOR_CYAN='\033[0;36m'
13+
COLOR_MAGENTA='\033[0;35m'
14+
COLOR_RESET='\033[0m' # No Color
15+
16+
# --- Helper Functions for Output ---
17+
log_info() { echo -e "${COLOR_CYAN}$1${COLOR_RESET}"; }
18+
log_success() { echo -e "${COLOR_GREEN}$1${COLOR_RESET}"; }
19+
log_warning() { echo -e "${COLOR_YELLOW}Warning: $1${COLOR_RESET}"; }
20+
log_error() { echo -e "${COLOR_RED}Error: $1${COLOR_RESET}" >&2; }
21+
log_detail() { echo -e " $1"; }
22+
log_detail_success() { echo -e " ${COLOR_GREEN}$1${COLOR_RESET}"; }
23+
log_detail_error() { echo -e " ${COLOR_RED}$1${COLOR_RESET}"; }
24+
log_detail_warning() { echo -e " ${COLOR_YELLOW}$1${COLOR_RESET}"; }
25+
log_detail_magenta() { echo -e " ${COLOR_MAGENTA}$1${COLOR_RESET}"; }
26+
27+
# --- Parameter Validation ---
28+
if [ "$#" -ne 1 ]; then
29+
log_error "Usage: $SCRIPT_NAME <Path_To_VeraCrypt_Root>"
30+
log_error "Example: $SCRIPT_NAME /path/to/VeraCrypt"
31+
exit 1
32+
fi
33+
34+
ROOT_PATH="$1"
35+
36+
if [ ! -d "$ROOT_PATH" ]; then
37+
log_error "Root path '$ROOT_PATH' not found or is not a directory."
38+
exit 1
39+
fi
40+
41+
# Define the path to the common Language.xml
42+
COMMON_FILE="$ROOT_PATH/src/Common/Language.xml"
43+
44+
# Check if the common Language.xml exists
45+
if [ ! -f "$COMMON_FILE" ]; then
46+
log_error "Common Language.xml not found or is not a file at path: $COMMON_FILE"
47+
exit 1
48+
fi
49+
50+
log_info "Extracting keys from $COMMON_FILE"
51+
52+
# Define regex pattern to extract 'key' attributes from <entry> elements
53+
KEY_EXTRACTION_PATTERN='<entry\s+lang="[^"]+"\s+key="([^"]+)"'
54+
55+
# Extract all keys using grep with PCRE (-P) and only outputting the captured group (-o)
56+
# Use process substitution and readarray to populate the KEYS array
57+
# Ensure grep returns 0 even if no match, or handle non-zero for no match
58+
KEYS_STRING=$(grep -oP "$KEY_EXTRACTION_PATTERN" "$COMMON_FILE" | sed -E 's/.*key="([^"]+)".*/\1/' || true)
59+
if [ -z "$KEYS_STRING" ]; then
60+
KEYS=()
61+
else
62+
readarray -t KEYS < <(echo "$KEYS_STRING")
63+
fi
64+
65+
66+
if [ ${#KEYS[@]} -eq 0 ]; then
67+
log_warning "No keys found in $COMMON_FILE using pattern: $KEY_EXTRACTION_PATTERN"
68+
# If this should be an error, uncomment next lines:
69+
# log_error "No keys found in $COMMON_FILE."
70+
# exit 1
71+
else
72+
log_info "Found ${#KEYS[@]} keys."
73+
fi
74+
75+
# Define the regex for finding invalid escape sequences.
76+
# Valid sequences: \n, \r, \t, \\, \"
77+
INVALID_ESCAPE_REGEX='(?<!\\)(?:\\\\)*\\([^nrt\\"])' # This is better
78+
ALLOWED_ESCAPES_MESSAGE="Allowed sequences are: \\n, \\r, \\t, \\\\ (for literal backslash), \\\" (for literal quote)"
79+
80+
# Retrieve all translation XML files in the Translations folder
81+
TRANSLATION_FOLDER="$ROOT_PATH/Translations"
82+
FILES_TO_PROCESS=()
83+
84+
# Add common file first
85+
FILES_TO_PROCESS+=("$COMMON_FILE")
86+
87+
if [ ! -d "$TRANSLATION_FOLDER" ]; then
88+
log_warning "Translations folder not found at path: $TRANSLATION_FOLDER. Skipping translation files."
89+
else
90+
# Use find to get translation files. nullglob helps avoid errors if no files match.
91+
shopt -s nullglob
92+
for lang_file in "$TRANSLATION_FOLDER"/Language.*.xml; do
93+
FILES_TO_PROCESS+=("$lang_file")
94+
done
95+
shopt -u nullglob # Reset nullglob
96+
if [ ${#FILES_TO_PROCESS[@]} -eq 1 ]; then # Only common file was added
97+
log_warning "No Language.*.xml files found in $TRANSLATION_FOLDER."
98+
fi
99+
fi
100+
101+
if [ ${#FILES_TO_PROCESS[@]} -eq 0 ]; then
102+
log_warning "No files found to process."
103+
exit 0 # Or 1 if this is an error condition
104+
fi
105+
106+
# Iterate through each file and perform validations
107+
for file in "${FILES_TO_PROCESS[@]}"; do
108+
if [ ! -f "$file" ]; then
109+
log_warning "File not found or is not a file, skipping: $file"
110+
continue
111+
fi
112+
echo # Newline for readability
113+
log_info "Processing file: $file"
114+
CURRENT_FILE_PASSES=true
115+
116+
# 1. Validate XML using fxparser
117+
log_detail "Validating XML structure..."
118+
# Capture stdout and stderr, get exit code
119+
FXPARSER_OUTPUT=$(fxparser -V "$file" 2>&1)
120+
FXPARSER_EXIT_CODE=$?
121+
122+
if [ "$FXPARSER_EXIT_CODE" -ne 0 ]; then
123+
CURRENT_FILE_PASSES=false
124+
FAIL_FLAG=true
125+
log_detail_error "XML Validation Failed for $file (fxparser exit code: $FXPARSER_EXIT_CODE):"
126+
while IFS= read -r line; do
127+
log_detail_error " $line"
128+
done <<< "$FXPARSER_OUTPUT"
129+
else
130+
log_detail_success "XML structure is valid."
131+
fi
132+
133+
# 2. Check for invalid backslash escape sequences
134+
log_detail "Checking for invalid escape sequences..."
135+
# Use grep -P for PCRE, -n for line numbers. --color=never to avoid grep's own coloring here.
136+
# We check grep's exit code: 0 if found, 1 if not found, >1 for error.
137+
INVALID_ESCAPE_MATCHES=$(grep -P -n --color=never "$INVALID_ESCAPE_REGEX" "$file" || true)
138+
139+
if [ -n "$INVALID_ESCAPE_MATCHES" ]; then
140+
log_detail_error "File '$file' contains potentially invalid backslash escape sequences."
141+
log_detail_error "$ALLOWED_ESCAPES_MESSAGE"
142+
log_detail_error "Instances found:"
143+
while IFS= read -r line_match; do
144+
# Extract line number and the line content from grep's output (e.g., "123:content")
145+
LINE_NUMBER=$(echo "$line_match" | cut -d: -f1)
146+
LINE_CONTENT=$(echo "$line_match" | cut -d: -f2-)
147+
# Trim whitespace (optional, but PowerShell did it)
148+
TRIMMED_LINE_CONTENT=$(echo "$LINE_CONTENT" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
149+
log_detail_magenta "Line $LINE_NUMBER: $TRIMMED_LINE_CONTENT"
150+
done <<< "$INVALID_ESCAPE_MATCHES"
151+
CURRENT_FILE_PASSES=false
152+
FAIL_FLAG=true
153+
else
154+
log_detail_success "No invalid escape sequences found."
155+
fi
156+
157+
# 3. Check for the presence of each key in the current file (if keys were found)
158+
if [ ${#KEYS[@]} -gt 0 ]; then
159+
log_detail "Checking for key completeness..."
160+
KEYS_MISSING_IN_CURRENT_FILE=0
161+
for key_entry in "${KEYS[@]}"; do
162+
# Search for key="KEY_NAME"
163+
SEARCH_PATTERN_FOR_KEY="key=\"$key_entry\""
164+
if ! grep -q "$SEARCH_PATTERN_FOR_KEY" "$file"; then
165+
log_detail_error "Key '$key_entry' (from $COMMON_FILE) not found in $file"
166+
CURRENT_FILE_PASSES=false
167+
FAIL_FLAG=true
168+
((KEYS_MISSING_IN_CURRENT_FILE++))
169+
fi
170+
done
171+
if [ "$KEYS_MISSING_IN_CURRENT_FILE" -eq 0 ]; then
172+
log_detail_success "All keys from $COMMON_FILE are present."
173+
else
174+
log_detail_error "$KEYS_MISSING_IN_CURRENT_FILE key(s) missing."
175+
fi
176+
else
177+
log_detail_warning "Skipping key completeness check as no keys were extracted from $COMMON_FILE."
178+
fi
179+
180+
# Output the result for the current file
181+
if [ "$CURRENT_FILE_PASSES" = true ]; then
182+
log_success "$file PASSED all checks."
183+
else
184+
log_error "$file FAILED one or more checks."
27185
fi
28-
done
29-
30-
if [ "$passes" = true ]; then
31-
echo -e "\e[32m$file passes xml validation.\e[0m"
32-
else
33-
echo -e "\e[31m$file fails xml validation.\e[0m"
34-
fi
35-
36186
done
37187

38-
if [ "$fail" = true ]; then
39-
exit 1
188+
# Exit with appropriate status code
189+
echo # Newline for readability
190+
if [ "$FAIL_FLAG" = true ]; then
191+
log_error "Overall Result: One or more files failed validation."
192+
exit 1
40193
else
41-
exit 0
194+
log_success "Overall Result: All processed files passed all checks successfully."
195+
exit 0
42196
fi

.github/workflows/xmlvalidate.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ name: Validate XML
22

33
on:
44
push:
5-
branches: [ "ci" ]
5+
branches: [ "master" ]
66
paths:
77
- 'Translations/*'
88
- 'src/Common/Language.xml'
99
- '.github/workflows/xmlvalidate.*'
1010
pull_request:
11-
branches: [ "ci" ]
11+
branches: [ "master" ]
1212
paths:
1313
- 'Translations/*'
1414
- 'src/Common/Language.xml'
@@ -31,6 +31,6 @@ jobs:
3131
with:
3232
node-version: 'latest'
3333
- name: Install fast-xml-parser
34-
run: npm install fast-xml-parser -g
34+
run: npm install fast-xml-parser@4.5.2 -g
3535
- name: Run XML validator script
3636
run: ${{ github.workspace }}/.github/workflows/xmlvalidate.sh "${{ github.workspace }}"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ src/Main/veracrypt
1717
*.osse41
1818
*.ossse3
1919
*.oshani
20+
*.oaesni
2021
*.oarmv8crypto
2122

2223
# VC macOS build artifacts

License.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ licenses can be found below.
1414

1515
This license does not grant you rights to use any
1616
contributors' name, logo, or trademarks, including IDRIX,
17-
VeraCrypt and all derivative names.
17+
AM Crypto, VeraCrypt and all derivative names.
1818
For example, the following names are not allowed: VeraCrypt,
1919
VeraCrypt+, VeraCrypt Professional, iVeraCrypt, etc. Nor any
2020
other names confusingly similar to the name VeraCrypt (e.g.,

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ called 'TrueCrypt' or 'VeraCrypt'
3030

3131
A detailed guide on how to build VeraCrypt on Windows can be found in
3232
the [documentation](./doc/html/CompilingGuidelineWin.html) in the repository and
33-
it is also available [online](https://www.veracrypt.fr/en/CompilingGuidelineWin.html).
33+
it is also available [online](https://veracrypt.jp/en/CompilingGuidelineWin.html) or on the [mirror](https://veracrypt.io/en/CompilingGuidelineWin.html).
3434

3535
IMPORTANT:
3636

@@ -79,7 +79,7 @@ For build instructions, please refer to the file src\Boot\EFI\Readme.txt.
7979

8080
A detailed guide on how to build VeraCrypt on Linux can be found in
8181
the [documentation](./doc/html/CompilingGuidelineLinux.html) in the repository and
82-
it is also available [online](https://www.veracrypt.fr/en/CompilingGuidelineLinux.html).
82+
it is also available [online](https://veracrypt.jp/en/CompilingGuidelineLinux.html) or on the [mirror](https://veracrypt.io/en/CompilingGuidelineLinux.html).
8383

8484
## Requirements for Building VeraCrypt for Linux and Mac OS X:
8585

@@ -91,7 +91,7 @@ it is also available [online](https://www.veracrypt.fr/en/CompilingGuidelineLinu
9191
- wxWidgets 3.0 shared library and header files installed or
9292
wxWidgets 3.0 library source code (available at https://www.wxwidgets.org)
9393
- FUSE library and header files (available at https://github.com/libfuse/libfuse
94-
and https://osxfuse.github.io/)
94+
and https://macfuse.github.io/)
9595
- PCSC-lite library and header files (available at https://github.com/LudovicRousseau/PCSC)
9696

9797
## Instructions for Building VeraCrypt for Linux and Mac OS X:
@@ -163,8 +163,8 @@ compile using the following commands:
163163

164164
`$ sudo make install`
165165

166-
After making sure pkg-config is available, download and install OSXFuse from
167-
https://osxfuse.github.io/
166+
After making sure pkg-config is available, download and install macFUSE from
167+
https://macfuse.github.io/
168168

169169
The [build_veracrypt_macosx.sh](./src/Build/build_veracrypt_macosx.sh) script performs the
170170
full build of VeraCrypt including the creation of the installer pkg. It expects
@@ -177,9 +177,9 @@ src/Main/Main.make (look for lines containing "Developer ID Application" and
177177
"Developer ID Installer"). You'll have to modify these lines to put the ID of
178178
your Code Signing certificates or comment them out if you don't have one.
179179

180-
Because of incompatibility issues with OSXFUSE, the SDK 10.9 generates a
181-
VeraCrypt binary that has issues communicating with the OSXFUSE kernel extension.
182-
Thus, we recommend using a different OSX SDK version for building VeraCrypt.
180+
Because of incompatibility issues with macFUSE, the SDK 10.9 generates a
181+
VeraCrypt binary that has issues communicating with the macFUSE kernel extension.
182+
Thus, we recommend using a different macOS SDK version for building VeraCrypt.
183183

184184
The Packages installer that is used for the VeraCrypt official build has been notarized by IDRIX and it is available at
185185
https://github.com/idrassi/packages/releases
@@ -200,16 +200,18 @@ If you intend to implement a feature, please contact us first to make sure:
200200
3. Whether we need the help of third-party developers with implementing the feature.
201201

202202
Information on how to contact us can be found at:
203-
https://www.veracrypt.fr/
203+
https://veracrypt.jp/
204+
https://veracrypt.io/ (mirror)
204205

205206
# V. Legal Information
206207

207208
## Copyright Information
208209

209210
This software as a whole:
210-
Copyright (c) 2013-2025 IDRIX. All rights reserved.
211+
Copyright (c) 2025 AM Crypto. All rights reserved.
211212

212213
Portions of this software:
214+
Copyright (c) 2025 AM Crypto. All rights reserved.
213215
Copyright (c) 2013-2025 IDRIX. All rights reserved.
214216
Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved.
215217
Copyright (c) 1998-2000 Paul Le Roux. All rights reserved.
@@ -232,4 +234,5 @@ documentation, are the sole property of their respective owners.
232234

233235
# VI. Further Information
234236

235-
https://www.veracrypt.fr
237+
https://veracrypt.jp
238+
https://veracrypt.io (mirror)

0 commit comments

Comments
 (0)