mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-08-29 04:07:37 +00:00
Compare commits
38
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0127927b73 | ||
|
|
99305d2239 | ||
|
|
71c830522c | ||
|
|
5452728091 | ||
|
|
23b7d417d4 | ||
|
|
5afa0815c9 | ||
|
|
329d4f1c90 | ||
|
|
df9a075cb6 | ||
|
|
4b6be1161b | ||
|
|
6bda9d1b35 | ||
|
|
5402fa902e | ||
|
|
752f1283a9 | ||
|
|
da370af54b | ||
|
|
7d110798d2 | ||
|
|
fa72ac51c4 | ||
|
|
6550030540 | ||
|
|
68b9c9c72d | ||
|
|
8fa1596e73 | ||
|
|
94d3a1919c | ||
|
|
c1d670fd75 | ||
|
|
a7b61ce5e5 | ||
|
|
123b187af5 | ||
|
|
247a16cb5f | ||
|
|
81c5d777e8 | ||
|
|
11aa708076 | ||
|
|
3874e9af97 | ||
|
|
c4893ce034 | ||
|
|
be1aee0034 | ||
|
|
56775af8d7 | ||
|
|
21aeb4c5de | ||
|
|
55831cad22 | ||
|
|
b6c290e4fd | ||
|
|
8fe3eb0136 | ||
|
|
b0b149db83 | ||
|
|
f9572ea8f5 | ||
|
|
cdbe7854e8 | ||
|
|
f8beac6ebd | ||
|
|
de52f51f5b |
@@ -241,10 +241,10 @@ Copyright Information
|
||||
---------------------
|
||||
|
||||
This software as a whole:
|
||||
Copyright (c) 2013-2019 IDRIX. All rights reserved.
|
||||
Copyright (c) 2013-2020 IDRIX. All rights reserved.
|
||||
|
||||
Portions of this software:
|
||||
Copyright (c) 2013-2019 IDRIX. All rights reserved.
|
||||
Copyright (c) 2013-2020 IDRIX. All rights reserved.
|
||||
Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved.
|
||||
Copyright (c) 1998-2000 Paul Le Roux. All rights reserved.
|
||||
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
|
||||
@@ -253,7 +253,7 @@ Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
||||
Copyright (c) 1999-2017 Dieter Baron and Thomas Klausner.
|
||||
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
||||
Copyright (c) 1999-2016 Jack Lloyd. All rights reserved.
|
||||
Copyright (c) 2013-2018 Stephan Mueller <smueller@chronox.de>
|
||||
Copyright (c) 2013-2019 Stephan Mueller <smueller@chronox.de>
|
||||
|
||||
For more information, please see the legal notices attached to parts of the
|
||||
source code.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ar" name="العربية" en-name="Arabic" version="0.2.0" translators="Ahmad Gharbeia, Khaled Hosny, Ali Khojah" />
|
||||
<font lang="ar" class="normal" size="11" face="default" />
|
||||
<font lang="ar" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="be" name="Беларуская" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
|
||||
<font lang="be" class="normal" size="11" face="default" />
|
||||
<font lang="be" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="bg" name="Български" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
|
||||
<font lang="bg" class="normal" size="11" face="default" />
|
||||
<font lang="bg" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
|
||||
<font lang="ca" class="normal" size="11" face="default" />
|
||||
<font lang="ca" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="cs" name="Čeština" en-name="Czech" version="1.1.0" translators="Vítek Moser, Lagardere" />
|
||||
<font lang="cs" class="normal" size="11" face="default" />
|
||||
<font lang="cs" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
|
||||
<font lang="da" class="normal" size="11" face="default" />
|
||||
<font lang="da" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<!-- Sprachen -->
|
||||
<language langid="de" name="Deutsch" en-name="German" version="1.1.8" translators="Harry Haller, Alexander Schorg, Simon Frankenberger, David Arndt, H. Sauer, Dulla, Ettore Atalan, Matthias Kolja Miehl, Felix Reichmann" />
|
||||
<!-- Schriftarten -->
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
|
||||
<font lang="el" class="normal" size="11" face="default" />
|
||||
<font lang="el" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
|
||||
<font lang="es" class="normal" size="11" face="default" />
|
||||
<font lang="es" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
|
||||
<font lang="et" class="normal" size="11" face="vaikimisi" />
|
||||
<font lang="et" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
|
||||
<font lang="eu" class="normal" size="11" face="default" />
|
||||
<font lang="eu" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="fa" name="فارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
|
||||
<font lang="fa" class="normal" size="11" face="default" />
|
||||
<font lang="fa" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="fi" name="Suomi" en-name="Finnish" version="0.3.0" translators="Matti Ruhanen" />
|
||||
<font lang="fi" class="normal" size="11" face="default" />
|
||||
<font lang="fi" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
|
||||
<font lang="fr" class="normal" size="11" face="default" />
|
||||
<font lang="fr" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="hu" name="Magyar" en-name="Hungarian" version="2018.03.06" translators="Nyul Balazs > Szaki" />
|
||||
<font lang="hu" class="normal" size="11" face="default" />
|
||||
<font lang="hu" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
|
||||
<font lang="id" class="normal" size="11" face="default" />
|
||||
<font lang="id" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
|
||||
<font lang="it" class="normal" size="11" face="default" />
|
||||
<font lang="it" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
|
||||
<font lang="ja" class="normal" size="12" face="MS UI Gothic" />
|
||||
<font lang="ja" class="bold" size="16" face="MS UI Gothic" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ka" name="ქართული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
|
||||
<font lang="ka" class="normal" size="12" face="Arial" />
|
||||
<font lang="ka" class="bold" size="12" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ko" name="한국어" en-name="Korean" version="0.1.1" translators="Kieaer, Herbert Shin" />
|
||||
<font lang="ko" class="normal" size="11" face="돋움" />
|
||||
<font lang="ko" class="bold" size="13" face="맑은 고딕" />
|
||||
@@ -1403,10 +1403,10 @@
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_INFO">파티션을 암호화하려면 먼저 VRD(VeraCrypt 복구 디스크)를 생성해야 합니다. VRD(VeraCrypt 부트로더, 마스터 키 또는 기타 중요 데이터가 손상된 경우 VRD에서 복원할 수 있습니다(그러나 올바른 암호를 입력해야 함).\n\n- Windows가 손상되어 시작할 수 없는 경우 VRD를 사용하여 Windows가 시작되기 전에 영구적으로 파티션을 해독할 수 있습니다.\n\n- VRD에는 현재 EFI 부트 로더의 백업이 포함되어 있으며 필요한 경우 복원할 수 있습니다.\n\nVeraCrypt 복구 디스크 ZIP 이미지가 아래에 지정된 위치에 생성됩니다.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_EXTRACT_INFO">복구 디스크 ZIP 이미지가 생성되어 이 파일에 저장되었습니다.\n%s\n이제 FAT/FAT32로 포맷된 USB 스틱으로 추출해야 합니다.\n\n%ls 복구 디스크를 생성한 후 다음을 클릭하여 디스크가 올바르게 생성되었는지 확인합니다.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">s\n\n응급 복구 디스크 ZIP 이미지가 생성되어 이 파일에 저장되었습니다 :\n%s\n\n이제 FAT/FAT32로 포맷 된 USB 스틱에 이미지를 추출하거나 나중에 사용할 수 있도록 안전한 위치로 옮겨야합니다.\n\n계속하려면 다음을 클릭하세요.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">중요: zip 파일을 USB 스틱의 루트에 직접 추출해야 합니다. 예를 들어 USB 스틱의 드라이브 문자가 E:인 경우 zip 파일을 추출하면 E:\ 폴더가 생성됩니다.USB 스틱에 EFI가 있습니다.\n\n</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">중요: zip 파일을 USB 스틱의 루트에 직접 추출해야 합니다. 예를 들어 USB 스틱의 드라이브 문자가 E:인 경우 zip 파일을 추출하면 E:\\ 폴더가 생성됩니다.USB 스틱에 EFI가 있습니다.\n\n</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_CHECK_FAILED">복구 디스크가 올바르게 추출되었는지 확인할 수 없습니다.\n\n복구 디스크를 추출한 경우 USB 스틱을 꺼내고 다시 삽입한 후 다음을 클릭하여 다시 시도합니다. 도움이 되지 않는 경우 다른 USB 스틱 및/또는 다른 ZIP 소프트웨어를 사용해 주십시오.아직 복구 디스크를 추출하지 않은 경우 압축을 풀고 다음을 클릭합니다.\n\n이 마법사를 시작하기 전에 생성된 VeraCrypt 복구 디스크를 확인하려고 하면 다른 마스터 키에 대해 생성되었기 때문에 해당 복구 디스크를 사용할 수 없습니다. 새로 생성된 복구 디스크 ZIP 이미지를 추출해야 합니다.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">복구 디스크가 올바르게 추출되었는지 확인할 수 없습니다.\n\nUSB 스틱에 복구 디스크 이미지를 추출한 경우 꺼내고 다시 삽입한 다음 다시 시도합니다. 도움이 되지 않는 경우 다른 ZIP 소프트웨어 및/또는 매체를 사용해 주십시오.\n\n다른 마스터 키, 암호, 소금 등에 대해 생성된 VeraCrypt 복구 디스크를 확인하려고 하면 해당 복구 디스크가 항상 이 확인에 실패합니다. 현재 구성과 완전히 호환되는 새 복구 디스크를 생성하려면 '시스템' > '복구 디스크 생성'를 선택합니다.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">복구 디스크 이미지가 생성되어 이 파일에 저장되었습니다.\n%s\n이제 FAT/FAT32로 포맷된 USB 스틱에 복구 디스크 이미지를 추출해야 합니다.\n\nIMPORTANT: zip 파일을 USB 스틱의 루트로 직접 추출해야 합니다. 예를 들어 USB 스틱의 드라이브 문자가 E:인 경우 zip 파일을 추출하면 E:\ 폴더가 생성됩니다.USB 스틱에 EFI가 있습니다.\n\n복구 디스크를 생성한 후 '시스템' > 'Verify 복구 디스크'를 선택하여 올바르게 생성되었는지 확인합니다.</entry>
|
||||
<entry lang="ko" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">복구 디스크 이미지가 생성되어 이 파일에 저장되었습니다.\n%s\n이제 FAT/FAT32로 포맷된 USB 스틱에 복구 디스크 이미지를 추출해야 합니다.\n\nIMPORTANT: zip 파일을 USB 스틱의 루트로 직접 추출해야 합니다. 예를 들어 USB 스틱의 드라이브 문자가 E:인 경우 zip 파일을 추출하면 E:\\ 폴더가 생성됩니다.USB 스틱에 EFI가 있습니다.\n\n복구 디스크를 생성한 후 '시스템' > 'Verify 복구 디스크'를 선택하여 올바르게 생성되었는지 확인합니다.</entry>
|
||||
<entry lang="ko" key="IDC_SECURE_DESKTOP_PASSWORD_ENTRY">암호 입력에 보안 데스크톱을 사용합니다.</entry>
|
||||
<entry lang="ko" key="ERR_REFS_INVALID_VOLUME_SIZE">명령줄에 지정된 볼륨 파일 크기가 선택한 ReFS 파일 시스템과 호환되지 않습니다.</entry>
|
||||
<entry lang="ko" key="IDC_EDIT_DCSPROP">부트 로더 구성을 편집</entry>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
|
||||
<font lang="lv" class="normal" size="11" face="default" />
|
||||
<font lang="lv" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
|
||||
<font lang="my" class="normal" size="11" face="Myanmar3" />
|
||||
<font lang="my" class="bold" size="13" face="Myanmar3" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="nl" name="Nederlands" en-name="Dutch" version="0.2.3" translators="Jan van der Wal, Peter Tak" />
|
||||
|
||||
<font lang="nl" class="normal" size="11" face="default" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
|
||||
<font lang="nn" class="normal" size="11" face="default" />
|
||||
<font lang="nn" class="bold" size="13" face="Arial " />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
|
||||
<font lang="pl" class="normal" size="11" face="default" />
|
||||
<font lang="pl" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="pt-br" name="Português-Brasil" en-name="Portuguese (Brazil)" version="0.1.0" translators="Thiago C. L. Mendes, Lecidio S. Alencar , Lucas C. Ferreira" />
|
||||
<font lang="pt-br" class="normal" size="11" face="padrão" />
|
||||
<font lang="pt-br" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version="1.24-Update2">
|
||||
<localization prog-version="1.24-Update6">
|
||||
<language langid="ro" name="Română" en-name="Romanian" version="1.0.0" translators="Barna Cosmin Marian" />
|
||||
<font lang="ro" class="normal" size="11" face="default" />
|
||||
<font lang="ro" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="ru" name="Русский" en-name="Russian" version="1.0.7" translators="Dmitry Yerokhin" />
|
||||
<font lang="ru" class="normal" size="11" face="default" />
|
||||
<font lang="ru" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="sk" name="Slovenčina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
|
||||
<font lang="sk" class="normal" size="11" face="default" />
|
||||
<font lang="sk" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="sl" name="Slovenščina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
|
||||
<font lang="sl" class="normal" size="11" face="default" />
|
||||
<font lang="sl" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
|
||||
<font lang="sv" class="normal" size="11" face="default" />
|
||||
<font lang="sv" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="th" name="ภาษาไทย" en-name="Thai" version="0.0.0" translators=""/>
|
||||
<font lang="th" class="normal" size="11" face="default" />
|
||||
<font lang="th" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
|
||||
<font lang="tr" class="normal" size="11" face="default" />
|
||||
<font lang="tr" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="uk" name="Українська" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
|
||||
<font lang="uk" class="normal" size="11" face="default" />
|
||||
<font lang="uk" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
|
||||
<font lang="uz" class="normal" size="11" face="default" />
|
||||
<font lang="uz" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
|
||||
<font lang="vi" class="normal" size="11" face="default" />
|
||||
<font lang="vi" class="bold" size="13" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li and Zhangjintao" />
|
||||
<font lang="zh-cn" class="normal" size="11" face="Tahoma" />
|
||||
<font lang="zh-cn" class="bold" size="14" face="Tahoma" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="zh-hk" name="繁體中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
|
||||
<font lang="zh-hk" class="normal" size="11" face="Arial" />
|
||||
<font lang="zh-hk" class="bold" size="14" face="Arial" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VeraCrypt>
|
||||
<localization prog-version= "1.24-Update2">
|
||||
<localization prog-version= "1.24-Update6">
|
||||
<language langid="zh-tw" name="繁體中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
|
||||
<font lang="zh-tw" class="normal" size="12" face="MingLiU" />
|
||||
<font lang="zh-tw" class="bold" size="15" face="MingLiU" />
|
||||
|
||||
Binary file not shown.
@@ -107,8 +107,8 @@ If it is followed by <strong>n</strong> or <strong>no</strong>: force the displa
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/secureDesktop</em></td>
|
||||
<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: display password dialog in a dedicated secure desktop to protect against certain types of attacks.<br>
|
||||
If it is followed by <strong>n</strong> or <strong>no</strong>: the password dialog is displayed in the normal desktop.</td>
|
||||
<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: display password dialog and token PIN dialog in a dedicated secure desktop to protect against certain types of attacks.<br>
|
||||
If it is followed by <strong>n</strong> or <strong>no</strong>: the password dialog and token PIN dialog are displayed in the normal desktop.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/tokenlib</em></td>
|
||||
@@ -180,6 +180,16 @@ Note that turning the password cache off will not clear it (use /w to clear the
|
||||
<td><em>/DisableDeviceUpdate</em> </td>
|
||||
<td>Disables periodic internel check on devices connected to the system that is used for handling favorites identified with VolumeID and replace it with on-demande checks.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/protectMemory</em> </td>
|
||||
<td>Activates a mechanism that protects VeraCrypt process memory from being accessed by other non-admin processes.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/signalExit</em> </td>
|
||||
<td>It must be followed by a parameter specifying the name of the signal to send to unblock a waiting <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/waitfor" target="_blank">WAITFOR.EXE</a> command when VeraCrypt exists.<br>
|
||||
The name of signal must be the same as the one specified to WAITFOR.EXE command (e.g."veracrypt.exe /q /v test.hc /l Z /signal SigName" followed by "waitfor.exe SigName"<br>
|
||||
This switch is ignored if /q is not specified</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4>VeraCrypt Format.exe (VeraCrypt Volume Creation Wizard):</h4>
|
||||
@@ -205,6 +215,23 @@ It must be followed by a parameter indicating the size of the container file tha
|
||||
It must be followed by a parameter indicating the password of the container that will be created.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> /keyfile or /k</td>
|
||||
<td> (Only with /create)<br>
|
||||
It must be followed by a parameter specifying a keyfile or a keyfile search path. For multiple keyfiles, specify e.g.: /k c:\keyfile1.dat /k d:\KeyfileFolder /k c:\kf2 To specify a keyfile stored on a security token or smart card, use the following syntax:
|
||||
token://slot/SLOT_NUMBER/file/FILE_NAME</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/tokenlib</em></td>
|
||||
<td> (Only with /create)<br>
|
||||
It must be followed by a parameter indicating the PKCS #11 library to use for security tokens and smart cards. (e.g.: /tokenlib c:\pkcs11lib.dll)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/tokenpin</em></td>
|
||||
<td> (Only with /create)<br>
|
||||
It must be followed by a parameter indicating the PIN to use in order to authenticate to the security token or smart card (e.g.: /tokenpin 0000). Warning: This method of entering a smart card PIN may be insecure, for example, when an unencrypted command
|
||||
prompt history log is being saved to unencrypted disk.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> <em>/hash</em></td>
|
||||
<td>(Only with /create)<br>
|
||||
It must be followed by a parameter indicating the PRF hash algorithm to use when creating the volume. It has the same syntax as VeraCrypt.exe.</td>
|
||||
@@ -267,6 +294,15 @@ It has no parameters and it indicates that no message box or dialog will be disp
|
||||
<td>/FastCreateFile</td>
|
||||
<td>Use a faster but potentially insecure way to create file containers. This applies to both UI and command line.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/protectMemory</em> </td>
|
||||
<td>Activates a mechanism that protects VeraCrypt Format process memory from being accessed by other non-admin processes.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>/secureDesktop</em></td>
|
||||
<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: display password dialog and token PIN dialog in a dedicated secure desktop to protect against certain types of attacks.<br>
|
||||
If it is followed by <strong>n</strong> or <strong>no</strong>: the password dialog and token PIN dialog are displayed in the normal desktop.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4>Syntax</h4>
|
||||
|
||||
@@ -39,6 +39,62 @@
|
||||
<strong>Note to users who created volumes with 1.17 version of VeraCrypt or earlier: </strong><br/>
|
||||
<span style="color:#ff0000;">To avoid hinting whether your volumes contain a hidden volume or not, or if you depend on plausible deniability when using hidden volumes/OS, then you must recreate both the outer and hidden volumes including system encryption and hidden OS, discarding existing volumes created prior to 1.18a version of VeraCrypt.</span></li>
|
||||
</p>
|
||||
<p><strong style="text-align:left">1.24-Update6 </strong>(March 10<sup>th</sup>, 2020):</p>
|
||||
<ul>
|
||||
<li><strong>Windows:</strong>
|
||||
<ul>
|
||||
<li>Fix PIM label text truncation in password dialog</li>
|
||||
<li>Fix wrong language used in installer if user selects a language other than English and then selects English before clicking OK on language selection dialog.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><strong style="text-align:left">1.24-Update5 </strong>(March 9<sup>th</sup>, 2020):</p>
|
||||
<ul>
|
||||
<li><strong>Windows:</strong>
|
||||
<ul>
|
||||
<li>Optimize performance for CPUs that have more than 64 logical processors (contributed by Sachin Keswani from AMD)</li>
|
||||
<li>Support specifying keyfiles (both in tokens and in filesystem) when creating file containers using command line (switches /keyfile, /tokenlib and /tokenpin supported in VeraCrypt Format)</li>
|
||||
<li>Fix leak of keyfiles path and name after VeraCrypt process exits.</li>
|
||||
<li>Add CLI switch /secureDesktop to VeraCrypt Format.</li>
|
||||
<li>Update libzip to version 1.6.1</li>
|
||||
<li>Minor UI fixes</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><strong style="text-align:left">1.24-Update4 </strong>(January 23<sup>rd</sup>, 2020):</p>
|
||||
<ul>
|
||||
<li><strong>Windows:</strong>
|
||||
<ul>
|
||||
<li>Fix regression in Expander and Format when RAM encryption is enable that was causing volume headers to be corrupted.</li>
|
||||
<li>Fix failure of Screen Readers (Accessibility support) to read UI by disabling newly introduced memory protection by default and adding a CLI switch (/protectMemory) to enable it when needed.</li>
|
||||
<li>Fix side effects related to the fix for CVE-2019-19501 which caused links in UI not to open.</li>
|
||||
<li>Add switch /signalExit to support notifying <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/waitfor" target="_blank">WAITFOR</a> Windows command when VeraCrypt.exe exits if /q was specified in CLI (cf documentation for usage).</li>
|
||||
<li>Don't display mount/dismount examples in help dialog for command line in Format and Expander.</li>
|
||||
<li>Documentation and translation updates.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>Linux:</strong>
|
||||
<ul>
|
||||
<li>Fix regression that limited the size available for hidden volumes created on disk or partition.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>MacOSX:</strong>
|
||||
<ul>
|
||||
<li>Fix regression that limited the size available for hidden volumes created on disk or partition.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><strong style="text-align:left">1.24-Update3 </strong>(December 21<sup>nd</sup>, 2019):</p>
|
||||
<ul>
|
||||
<li><strong>Linux:</strong>
|
||||
<ul>
|
||||
<li>Fix console-only build to remove dependency on GTK that is not wanted on headless servers.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><strong style="text-align:left">1.24-Update2 </strong>(December 16<sup>th</sup>, 2019):</p>
|
||||
<ul>
|
||||
|
||||
+36
-22
@@ -11,8 +11,8 @@ elseif ( NOT DEFINED NOGUI )
|
||||
endif()
|
||||
|
||||
# - Set version of the package
|
||||
set( FULL_VERSION "1.24-Update2" )
|
||||
set( VERSION "1.24.10" )
|
||||
set( FULL_VERSION "1.24-Update6" )
|
||||
set( VERSION "1.24.15" )
|
||||
set( RELEASE "1" )
|
||||
|
||||
# - Set PROJECT_NAME and CONFLICT_PACKAGE values
|
||||
@@ -242,19 +242,29 @@ if ( ( PLATFORM STREQUAL "Debian" ) OR ( PLATFORM STREQUAL "Ubuntu" ) )
|
||||
set( CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} )
|
||||
set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARCHITECTURE} ) # mandatory
|
||||
|
||||
# Link against gtk3 version of wxWidgets if >= Debian 10 or >= Ubuntu 18.04
|
||||
# Otherwise, link against gtk2 version of wxWidgets
|
||||
if ( ( ( PLATFORM STREQUAL "Debian" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "10" ) )
|
||||
OR ( ( PLATFORM STREQUAL "Ubuntu" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "18.04" ) ) )
|
||||
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-gtk3-0v5, libfuse2, dmsetup, sudo" )
|
||||
|
||||
if (NOGUI)
|
||||
# Link against statically built wxWidgets so that we don't depend on any GTK library
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libfuse2, dmsetup, sudo" )
|
||||
else ()
|
||||
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-0v5, libfuse2, dmsetup, sudo" )
|
||||
|
||||
# Link against gtk3 version of wxWidgets if >= Debian 10 or >= Ubuntu 18.04
|
||||
# Otherwise, link against gtk2 version of wxWidgets
|
||||
if ( ( ( PLATFORM STREQUAL "Debian" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "10" ) )
|
||||
OR ( ( PLATFORM STREQUAL "Ubuntu" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "18.04" ) ) )
|
||||
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-gtk3-0v5, libfuse2, dmsetup, sudo" )
|
||||
|
||||
else ()
|
||||
# Link against statically built wxWidgets on Ubuntu 14.04 and older, and Debian 8 and older
|
||||
if ( ( ( PLATFORM STREQUAL "Debian" ) AND ( PLATFORM_VERSION VERSION_LESS_EQUAL "8" ) )
|
||||
OR ( ( PLATFORM STREQUAL "Ubuntu" ) AND ( PLATFORM_VERSION VERSION_LESS_EQUAL "14.04" ) ) )
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libgtk2.0-0, libfuse2, dmsetup, sudo" )
|
||||
else ()
|
||||
set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-0v5, libfuse2, dmsetup, sudo" )
|
||||
endif ()
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
set( CPACK_DEBIAN_PACKAGE_MAINTAINER ${CONTACT} ) # mandatory
|
||||
set( CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} ) # mandatory
|
||||
set( CPACK_DEBIAN_ARCHIVE_TYPE "gnutar") # mandatory
|
||||
@@ -284,19 +294,23 @@ elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) )
|
||||
set( CPACK_RPM_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR} ) # mandatory
|
||||
set( CPACK_RPM_PACKAGE_AUTOREQ "no" ) # disable automatic shared libraries dependency detection (most of the time buggy)
|
||||
|
||||
if ( PLATFORM STREQUAL "CentOS" )
|
||||
if (NOGUI)
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, sudo" )
|
||||
else ()
|
||||
if ( PLATFORM STREQUAL "CentOS" )
|
||||
|
||||
if ( DEFINED WITHGTK3 AND WITHGTK3 )
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo" )
|
||||
else ()
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo" )
|
||||
endif()
|
||||
|
||||
elseif ( PLATFORM STREQUAL "openSUSE" )
|
||||
|
||||
if ( DEFINED WITHGTK3 AND WITHGTK3 )
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo" )
|
||||
else ()
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo" )
|
||||
endif()
|
||||
|
||||
elseif ( PLATFORM STREQUAL "openSUSE" )
|
||||
|
||||
set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo" )
|
||||
endif()
|
||||
|
||||
|
||||
set( CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${RPM_PRERM}) # optional
|
||||
|
||||
# Prevents CPack from generating file conflicts
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string>TRUE</string>
|
||||
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.24.10</string>
|
||||
<string>1.24.15</string>
|
||||
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>_VERSION_</string>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string>TRUE</string>
|
||||
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.24.10</string>
|
||||
<string>1.24.15</string>
|
||||
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>_VERSION_</string>
|
||||
|
||||
@@ -12,22 +12,48 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
|
||||
# Directory where the VeraCrypt has been checked out
|
||||
export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
|
||||
|
||||
# The sources of wxWidgets 3.0.4 must be extracted to the parent directory
|
||||
export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
|
||||
echo "Using wxWidgets sources in $WX_ROOT"
|
||||
|
||||
cd $SOURCEPATH
|
||||
|
||||
if [ "$#" = "1" ] && [ "$1" = "WXSTATIC" ]
|
||||
then
|
||||
echo "Building GUI version of VeraCrypt for DEB using wxWidgets static libraries"
|
||||
|
||||
# This will be the temporary wxWidgets directory
|
||||
export WX_BUILD_DIR=$PARENTDIR/wxBuildGUI
|
||||
|
||||
# To build wxWidgets without GUI
|
||||
make WXSTATIC=1 wxbuild || exit 1
|
||||
make WXSTATIC=1 clean || exit 1
|
||||
make WXSTATIC=1 || exit 1
|
||||
make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1
|
||||
|
||||
else
|
||||
|
||||
echo "Building GUI version of VeraCrypt for DEB using system wxWidgets"
|
||||
make clean || exit 1
|
||||
make || exit 1
|
||||
make install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1
|
||||
|
||||
echo "Building console version of VeraCrypt for DEB using system wxWidgets"
|
||||
fi
|
||||
|
||||
echo "Building console version of VeraCrypt for DEB using wxWidgets static libraries"
|
||||
|
||||
# This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?"
|
||||
# when building over SSH without X11 Forwarding
|
||||
# export DISPLAY=:0.0
|
||||
|
||||
make NOGUI=1 clean || exit 1
|
||||
make NOGUI=1 || exit 1
|
||||
make NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1
|
||||
# This will be the temporary wxWidgets directory
|
||||
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
|
||||
|
||||
# To build wxWidgets without GUI
|
||||
make WXSTATIC=1 NOGUI=1 wxbuild || exit 1
|
||||
make WXSTATIC=1 NOGUI=1 clean || exit 1
|
||||
make WXSTATIC=1 NOGUI=1 || exit 1
|
||||
make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1
|
||||
|
||||
echo "Creating VeraCrypt DEB packages"
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI
|
||||
mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console
|
||||
|
||||
# wxWidgets was built using GTK-2
|
||||
cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=TRUE -DNOGUI=FALSE || exit 1
|
||||
cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -DNOGUI=FALSE || exit 1
|
||||
cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1
|
||||
cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=TRUE -DNOGUI=TRUE || exit 1
|
||||
cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=FALSE -DNOGUI=TRUE || exit 1
|
||||
cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake|| exit 1
|
||||
|
||||
@@ -70,9 +70,9 @@ BOOL CALLBACK CommandHelpDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
StringCchCatW(tmp, 8192, tmp2);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(TCMOUNT) && !defined(VCEXPANDER)
|
||||
StringCchCatW (tmp, 8192, L"\nExamples:\n\nMount a volume as X:\tveracrypt.exe /q /v volume.hc /l X\nDismount a volume X:\tveracrypt.exe /q /d X");
|
||||
|
||||
#endif
|
||||
SetWindowTextW (GetDlgItem (hwndDlg, IDC_COMMANDHELP_TEXT), tmp);
|
||||
|
||||
TCfree(tmp);
|
||||
|
||||
+38
-12
@@ -179,7 +179,7 @@ BOOL bInPlaceEncNonSysPending = FALSE; // TRUE if the non-system in-place encry
|
||||
BOOL PimEnable = FALSE;
|
||||
BOOL KeyFilesEnable = FALSE;
|
||||
KeyFile *FirstKeyFile = NULL;
|
||||
KeyFilesDlgParam defaultKeyFilesParam;
|
||||
KeyFilesDlgParam defaultKeyFilesParam = {0};
|
||||
|
||||
BOOL IgnoreWmDeviceChange = FALSE;
|
||||
BOOL DeviceChangeBroadcastDisabled = FALSE;
|
||||
@@ -190,6 +190,7 @@ BOOL MultipleMountOperationInProgress = FALSE;
|
||||
|
||||
volatile BOOL NeedPeriodicDeviceListUpdate = FALSE;
|
||||
BOOL DisablePeriodicDeviceListUpdate = FALSE;
|
||||
BOOL EnableMemoryProtection = FALSE;
|
||||
|
||||
BOOL WaitDialogDisplaying = FALSE;
|
||||
|
||||
@@ -486,6 +487,10 @@ void FinalizeGlobalLocks ()
|
||||
void cleanup ()
|
||||
{
|
||||
burn (&CmdTokenPin, sizeof (CmdTokenPin));
|
||||
#ifndef SETUP
|
||||
KeyFileRemoveAll (&FirstKeyFile);
|
||||
KeyFileRemoveAll (&defaultKeyFilesParam.FirstKeyFile);
|
||||
#endif
|
||||
|
||||
/* Cleanup the GDI fonts */
|
||||
if (hFixedFont != NULL)
|
||||
@@ -1482,7 +1487,7 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam
|
||||
L"Based on TrueCrypt 7.1a, freely available at http://www.truecrypt.org/ .\r\n\r\n"
|
||||
|
||||
L"Portions of this software:\r\n"
|
||||
L"Copyright \xA9 2013-2019 IDRIX. All rights reserved.\r\n"
|
||||
L"Copyright \xA9 2013-2020 IDRIX. All rights reserved.\r\n"
|
||||
L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\r\n"
|
||||
L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\r\n"
|
||||
L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n"
|
||||
@@ -1491,10 +1496,10 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam
|
||||
L"Copyright \xA9 1999-2017 Dieter Baron and Thomas Klausner.\r\n"
|
||||
L"Copyright \xA9 2013, Alexey Degtyarev. All rights reserved.\r\n"
|
||||
L"Copyright \xA9 1999-2016 Jack Lloyd. All rights reserved.\r\n"
|
||||
L"Copyright \xA9 2013-2018 Stephan Mueller <smueller@chronox.de>\r\n\r\n"
|
||||
L"Copyright \xA9 2013-2019 Stephan Mueller <smueller@chronox.de>\r\n\r\n"
|
||||
|
||||
L"This software as a whole:\r\n"
|
||||
L"Copyright \xA9 2013-2019 IDRIX. All rights reserved.\r\n\r\n"
|
||||
L"Copyright \xA9 2013-2020 IDRIX. All rights reserved.\r\n\r\n"
|
||||
|
||||
L"An IDRIX Release");
|
||||
|
||||
@@ -2919,9 +2924,6 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
|
||||
char langId[6];
|
||||
InitCommonControlsPtr InitCommonControlsFn = NULL;
|
||||
wchar_t modPath[MAX_PATH];
|
||||
|
||||
/* Protect this process memory from being accessed by non-admin users */
|
||||
EnableProcessProtection ();
|
||||
|
||||
GetModuleFileNameW (NULL, modPath, ARRAYSIZE (modPath));
|
||||
|
||||
@@ -5531,11 +5533,11 @@ static void DisplayBenchmarkResults (HWND hwndDlg)
|
||||
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
|
||||
break;
|
||||
case BENCHMARK_TYPE_PRF:
|
||||
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d ms", benchmarkTable[i].meanBytesPerSec);
|
||||
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d ms", (int) benchmarkTable[i].meanBytesPerSec);
|
||||
LvItem.iSubItem = 1;
|
||||
LvItem.pszText = item1;
|
||||
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
|
||||
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d", benchmarkTable[i].decSpeed);
|
||||
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d", (int) benchmarkTable[i].decSpeed);
|
||||
LvItem.iSubItem = 2;
|
||||
LvItem.pszText = item1;
|
||||
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
|
||||
@@ -7532,7 +7534,10 @@ int GetLastAvailableDrive ()
|
||||
|
||||
BOOL IsDriveAvailable (int driveNo)
|
||||
{
|
||||
return (GetUsedLogicalDrives() & (1 << driveNo)) == 0;
|
||||
if (driveNo >= 0 && driveNo < 26)
|
||||
return (GetUsedLogicalDrives() & (1 << driveNo)) == 0;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -13059,7 +13064,7 @@ BOOL IsApplicationInstalled (const wchar_t *appName, BOOL b32bitApp)
|
||||
}
|
||||
|
||||
wchar_t regName[1024];
|
||||
DWORD regNameSize = sizeof (regName);
|
||||
DWORD regNameSize = ARRAYSIZE (regName);
|
||||
DWORD index = 0;
|
||||
while (RegEnumKeyEx (unistallKey, index++, regName, ®NameSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
@@ -14245,12 +14250,33 @@ cleanup:
|
||||
return retval;
|
||||
}
|
||||
|
||||
// This function checks if the process is running with elevated privileges or not
|
||||
BOOL IsElevated()
|
||||
{
|
||||
DWORD dwSize = 0;
|
||||
HANDLE hToken = NULL;
|
||||
TOKEN_ELEVATION tokenInformation;
|
||||
BOOL bReturn = FALSE;
|
||||
|
||||
if(OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
|
||||
{
|
||||
if(GetTokenInformation(hToken, TokenElevation, &tokenInformation, sizeof(TOKEN_ELEVATION), &dwSize))
|
||||
{
|
||||
if (tokenInformation.TokenIsElevated)
|
||||
bReturn = TRUE;
|
||||
}
|
||||
|
||||
CloseHandle(hToken);
|
||||
}
|
||||
return bReturn;
|
||||
}
|
||||
|
||||
// This function always loads a URL in a non-privileged mode
|
||||
// If current process has admin privileges, we execute the command "rundll32 url.dll,FileProtocolHandler URL" as non-elevated
|
||||
// Use this security mechanism only starting from Windows Vista
|
||||
void SafeOpenURL (LPCWSTR szUrl)
|
||||
{
|
||||
if (IsAdmin () && IsOSAtLeast (WIN_VISTA))
|
||||
if (IsOSAtLeast (WIN_VISTA) && IsAdmin () && IsElevated())
|
||||
{
|
||||
WCHAR szRunDllPath[TC_MAX_PATH];
|
||||
WCHAR szUrlDllPath[TC_MAX_PATH];
|
||||
|
||||
@@ -167,6 +167,7 @@ extern BOOL MultipleMountOperationInProgress;
|
||||
|
||||
extern volatile BOOL NeedPeriodicDeviceListUpdate;
|
||||
extern BOOL DisablePeriodicDeviceListUpdate;
|
||||
extern BOOL EnableMemoryProtection;
|
||||
|
||||
#ifndef SETUP
|
||||
extern BOOL bLanguageSetInSetup;
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
#include "Driver/Ntdriver.h"
|
||||
#endif
|
||||
|
||||
#define TC_ENC_THREAD_POOL_MAX_THREAD_COUNT 64
|
||||
//Increasing the maximum number of threads
|
||||
#define TC_ENC_THREAD_POOL_MAX_THREAD_COUNT 256 //64
|
||||
#define TC_ENC_THREAD_POOL_QUEUE_SIZE (TC_ENC_THREAD_POOL_MAX_THREAD_COUNT * 2)
|
||||
|
||||
#ifdef DEVICE_DRIVER
|
||||
@@ -43,6 +44,18 @@
|
||||
#define TC_ACQUIRE_MUTEX(MUTEX) WaitForSingleObject (*(MUTEX), INFINITE)
|
||||
#define TC_RELEASE_MUTEX(MUTEX) ReleaseMutex (*(MUTEX))
|
||||
|
||||
typedef BOOL (WINAPI *SetThreadGroupAffinityFn)(
|
||||
HANDLE hThread,
|
||||
const GROUP_AFFINITY *GroupAffinity,
|
||||
PGROUP_AFFINITY PreviousGroupAffinity
|
||||
);
|
||||
|
||||
typedef WORD (WINAPI* GetActiveProcessorGroupCountFn)();
|
||||
|
||||
typedef DWORD (WINAPI *GetActiveProcessorCountFn)(
|
||||
WORD GroupNumber
|
||||
);
|
||||
|
||||
#endif // !DEVICE_DRIVER
|
||||
|
||||
|
||||
@@ -99,6 +112,7 @@ static volatile BOOL StopPending = FALSE;
|
||||
|
||||
static uint32 ThreadCount;
|
||||
static TC_THREAD_HANDLE ThreadHandles[TC_ENC_THREAD_POOL_MAX_THREAD_COUNT];
|
||||
static WORD ThreadProcessorGroups[TC_ENC_THREAD_POOL_MAX_THREAD_COUNT];
|
||||
|
||||
static EncryptionThreadPoolWorkItem WorkItemQueue[TC_ENC_THREAD_POOL_QUEUE_SIZE];
|
||||
|
||||
@@ -164,6 +178,20 @@ static void SetWorkItemState (EncryptionThreadPoolWorkItem *workItem, WorkItemSt
|
||||
static TC_THREAD_PROC EncryptionThreadProc (void *threadArg)
|
||||
{
|
||||
EncryptionThreadPoolWorkItem *workItem;
|
||||
#ifdef DEVICE_DRIVER
|
||||
SetThreadCpuGroupAffinity ((USHORT) *(WORD*)(threadArg));
|
||||
#else
|
||||
SetThreadGroupAffinityFn SetThreadGroupAffinityPtr = (SetThreadGroupAffinityFn) GetProcAddress (GetModuleHandle (L"kernel32.dll"), "SetThreadGroupAffinity");
|
||||
if (SetThreadGroupAffinityPtr && threadArg)
|
||||
{
|
||||
GROUP_AFFINITY groupAffinity = {0};
|
||||
groupAffinity.Mask = ~0ULL;
|
||||
groupAffinity.Group = *(WORD*)(threadArg);
|
||||
SetThreadGroupAffinityPtr(GetCurrentThread(), &groupAffinity, NULL);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
while (!StopPending)
|
||||
{
|
||||
@@ -263,21 +291,33 @@ static TC_THREAD_PROC EncryptionThreadProc (void *threadArg)
|
||||
|
||||
BOOL EncryptionThreadPoolStart (size_t encryptionFreeCpuCount)
|
||||
{
|
||||
size_t cpuCount, i;
|
||||
|
||||
if (ThreadPoolRunning)
|
||||
return TRUE;
|
||||
|
||||
size_t cpuCount = 0, i = 0;
|
||||
#ifdef DEVICE_DRIVER
|
||||
cpuCount = GetCpuCount();
|
||||
#else
|
||||
SYSTEM_INFO sysInfo;
|
||||
GetActiveProcessorGroupCountFn GetActiveProcessorGroupCountPtr = (GetActiveProcessorGroupCountFn) GetProcAddress (GetModuleHandle (L"Kernel32.dll"), "GetActiveProcessorGroupCount");
|
||||
GetActiveProcessorCountFn GetActiveProcessorCountPtr = (GetActiveProcessorCountFn) GetProcAddress (GetModuleHandle (L"Kernel32.dll"), "GetActiveProcessorCount");
|
||||
if (GetActiveProcessorGroupCountPtr && GetActiveProcessorCountPtr)
|
||||
{
|
||||
SYSTEM_INFO sysInfo;
|
||||
GetSystemInfo (&sysInfo);
|
||||
WORD j, groupCount = GetActiveProcessorGroupCountPtr();
|
||||
size_t totalProcessors = 0;
|
||||
for (j = 0; j < groupCount; ++j)
|
||||
{
|
||||
totalProcessors += (size_t) GetActiveProcessorCountPtr(j);
|
||||
}
|
||||
cpuCount = totalProcessors;
|
||||
}
|
||||
else
|
||||
{
|
||||
GetSystemInfo(&sysInfo);
|
||||
cpuCount = sysInfo.dwNumberOfProcessors;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ThreadPoolRunning)
|
||||
return TRUE;
|
||||
|
||||
if (cpuCount > encryptionFreeCpuCount)
|
||||
cpuCount -= encryptionFreeCpuCount;
|
||||
|
||||
@@ -338,10 +378,33 @@ BOOL EncryptionThreadPoolStart (size_t encryptionFreeCpuCount)
|
||||
for (ThreadCount = 0; ThreadCount < cpuCount; ++ThreadCount)
|
||||
{
|
||||
#ifdef DEVICE_DRIVER
|
||||
if (!NT_SUCCESS (TCStartThread (EncryptionThreadProc, NULL, &ThreadHandles[ThreadCount])))
|
||||
ThreadProcessorGroups[ThreadCount] = GetCpuGroup ((size_t) ThreadCount);
|
||||
#else
|
||||
if (!(ThreadHandles[ThreadCount] = (HANDLE) _beginthreadex (NULL, 0, EncryptionThreadProc, NULL, 0, NULL)))
|
||||
// Determine which processor group to bind the thread to.
|
||||
if (GetActiveProcessorGroupCountPtr && GetActiveProcessorCountPtr)
|
||||
{
|
||||
WORD j, groupCount = GetActiveProcessorGroupCountPtr();
|
||||
uint32 totalProcessors = 0U;
|
||||
for (j = 0U; j < groupCount; j++)
|
||||
{
|
||||
totalProcessors += (uint32) GetActiveProcessorCountPtr(j);
|
||||
if (totalProcessors >= ThreadCount)
|
||||
{
|
||||
ThreadProcessorGroups[ThreadCount] = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
ThreadProcessorGroups[ThreadCount] = 0;
|
||||
#endif
|
||||
|
||||
#ifdef DEVICE_DRIVER
|
||||
if (!NT_SUCCESS(TCStartThread(EncryptionThreadProc, (void*)(&ThreadProcessorGroups[ThreadCount]), &ThreadHandles[ThreadCount])))
|
||||
#else
|
||||
if (!(ThreadHandles[ThreadCount] = (HANDLE)_beginthreadex(NULL, 0, EncryptionThreadProc, (void*)(&ThreadProcessorGroups[ThreadCount]), 0, NULL)))
|
||||
#endif
|
||||
|
||||
{
|
||||
EncryptionThreadPoolStop();
|
||||
return FALSE;
|
||||
|
||||
+34
-2
@@ -394,6 +394,8 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void
|
||||
|
||||
if(!quickFormat)
|
||||
{
|
||||
CRYPTO_INFO tmpCI;
|
||||
|
||||
if (!FlushFormatWriteBuffer (dev, write_buf, &write_buf_cnt, &nSecNo, cryptoInfo))
|
||||
goto fail;
|
||||
|
||||
@@ -402,23 +404,41 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void
|
||||
deniability of hidden volumes (and also reduces the amount of predictable plaintext
|
||||
within the volume). */
|
||||
|
||||
VirtualLock (&tmpCI, sizeof (tmpCI));
|
||||
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
|
||||
cryptoInfo = &tmpCI;
|
||||
|
||||
// Temporary master key
|
||||
if (!RandgetBytes (hwndDlg, temporaryKey, EAGetKeySize (cryptoInfo->ea), FALSE))
|
||||
{
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
// Temporary secondary key (XTS mode)
|
||||
if (!RandgetBytes (hwndDlg, cryptoInfo->k2, sizeof cryptoInfo->k2, FALSE))
|
||||
{
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
retVal = EAInit (cryptoInfo->ea, temporaryKey, cryptoInfo->ks);
|
||||
if (retVal != ERR_SUCCESS)
|
||||
{
|
||||
TCfree (write_buf);
|
||||
burn (temporaryKey, sizeof(temporaryKey));
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
return retVal;
|
||||
}
|
||||
if (!EAInitMode (cryptoInfo, cryptoInfo->k2))
|
||||
{
|
||||
TCfree (write_buf);
|
||||
burn (temporaryKey, sizeof(temporaryKey));
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
return ERR_MODE_INIT_FAILED;
|
||||
}
|
||||
|
||||
@@ -430,12 +450,24 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void
|
||||
goto fail;
|
||||
}
|
||||
UpdateProgressBar (nSecNo * ft->sector_size);
|
||||
|
||||
if (!FlushFormatWriteBuffer (dev, write_buf, &write_buf_cnt, &nSecNo, cryptoInfo))
|
||||
{
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
burn (&tmpCI, sizeof (tmpCI));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateProgressBar ((uint64) ft->num_sectors * ft->sector_size);
|
||||
|
||||
if (!FlushFormatWriteBuffer (dev, write_buf, &write_buf_cnt, &nSecNo, cryptoInfo))
|
||||
goto fail;
|
||||
if (!FlushFormatWriteBuffer (dev, write_buf, &write_buf_cnt, &nSecNo, cryptoInfo))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
TCfree (write_buf);
|
||||
burn (temporaryKey, sizeof(temporaryKey));
|
||||
|
||||
@@ -100,6 +100,10 @@ int TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams)
|
||||
LARGE_INTEGER offset;
|
||||
BOOL bFailedRequiredDASD = FALSE;
|
||||
HWND hwndDlg = volParams->hwndDlg;
|
||||
#ifdef _WIN64
|
||||
CRYPTO_INFO tmpCI;
|
||||
PCRYPTO_INFO cryptoInfoBackup = NULL;
|
||||
#endif
|
||||
|
||||
FormatSectorSize = volParams->sectorSize;
|
||||
|
||||
@@ -574,6 +578,17 @@ begin_format:
|
||||
goto error;
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
VirtualLock (&tmpCI, sizeof (tmpCI));
|
||||
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
|
||||
VcUnprotectKeys (&tmpCI, VcGetEncryptionID (cryptoInfo));
|
||||
cryptoInfoBackup = cryptoInfo;
|
||||
cryptoInfo = &tmpCI;
|
||||
}
|
||||
#endif
|
||||
|
||||
nStatus = CreateVolumeHeaderInMemory (hwndDlg, FALSE,
|
||||
header,
|
||||
volParams->ea,
|
||||
@@ -592,6 +607,15 @@ begin_format:
|
||||
FormatSectorSize,
|
||||
FALSE);
|
||||
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
cryptoInfo = cryptoInfoBackup;
|
||||
burn (&tmpCI, sizeof (CRYPTO_INFO));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!WriteEffectiveVolumeHeader (volParams->bDevice, dev, header))
|
||||
{
|
||||
nStatus = ERR_OS_ERROR;
|
||||
@@ -603,8 +627,28 @@ begin_format:
|
||||
{
|
||||
BOOL bUpdateBackup = FALSE;
|
||||
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
VirtualLock (&tmpCI, sizeof (tmpCI));
|
||||
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
|
||||
VcUnprotectKeys (&tmpCI, VcGetEncryptionID (cryptoInfo));
|
||||
cryptoInfoBackup = cryptoInfo;
|
||||
cryptoInfo = &tmpCI;
|
||||
}
|
||||
#endif
|
||||
|
||||
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, dataAreaSize, FALSE, FALSE);
|
||||
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
cryptoInfo = cryptoInfoBackup;
|
||||
burn (&tmpCI, sizeof (CRYPTO_INFO));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
}
|
||||
#endif
|
||||
|
||||
if (nStatus != ERR_SUCCESS)
|
||||
goto error;
|
||||
|
||||
@@ -794,6 +838,10 @@ int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors,
|
||||
LARGE_INTEGER startOffset;
|
||||
LARGE_INTEGER newOffset;
|
||||
|
||||
#ifdef _WIN64
|
||||
CRYPTO_INFO tmpCI;
|
||||
#endif
|
||||
|
||||
// Seek to start sector
|
||||
startOffset.QuadPart = startSector * FormatSectorSize;
|
||||
if (!SetFilePointerEx ((HANDLE) dev, startOffset, &newOffset, FILE_BEGIN)
|
||||
@@ -811,6 +859,16 @@ int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors,
|
||||
|
||||
memset (sector, 0, sizeof (sector));
|
||||
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
VirtualLock (&tmpCI, sizeof (tmpCI));
|
||||
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
|
||||
VcUnprotectKeys (&tmpCI, VcGetEncryptionID (cryptoInfo));
|
||||
cryptoInfo = &tmpCI;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Remember the original secondary key (XTS mode) before generating a temporary one
|
||||
memcpy (originalK2, cryptoInfo->k2, sizeof (cryptoInfo->k2));
|
||||
|
||||
@@ -873,6 +931,13 @@ int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors,
|
||||
VirtualUnlock (temporaryKey, sizeof (temporaryKey));
|
||||
VirtualUnlock (originalK2, sizeof (originalK2));
|
||||
TCfree (write_buf);
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
burn (&tmpCI, sizeof (CRYPTO_INFO));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -884,6 +949,13 @@ fail:
|
||||
VirtualUnlock (temporaryKey, sizeof (temporaryKey));
|
||||
VirtualUnlock (originalK2, sizeof (originalK2));
|
||||
TCfree (write_buf);
|
||||
#ifdef _WIN64
|
||||
if (IsRamEncryptionEnabled ())
|
||||
{
|
||||
burn (&tmpCI, sizeof (CRYPTO_INFO));
|
||||
VirtualUnlock (&tmpCI, sizeof (tmpCI));
|
||||
}
|
||||
#endif
|
||||
|
||||
SetLastError (err);
|
||||
return (retVal ? retVal : ERR_OS_ERROR);
|
||||
|
||||
@@ -209,6 +209,7 @@ static BOOL LoadLanguageData (int resourceid, BOOL bForceSetPreferredLanguage, B
|
||||
LocalizationActive = FALSE;
|
||||
ActiveLangPackVersion[0] = 0;
|
||||
ClearDictionaryPool ();
|
||||
LanguageResource = NULL;
|
||||
|
||||
if ((resourceid == 0) && (PreferredLangId[0] != 0))
|
||||
StringCbCopyA (langId, sizeof(langId), PreferredLangId);
|
||||
|
||||
+19
-4
@@ -55,7 +55,7 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
|
||||
#define TC_APP_NAME "VeraCrypt"
|
||||
|
||||
// Version displayed to user
|
||||
#define VERSION_STRING "1.24-Update2"
|
||||
#define VERSION_STRING "1.24-Update6"
|
||||
|
||||
#ifdef VC_EFI_CUSTOM_MODE
|
||||
#define VERSION_STRING_SUFFIX "-CustomEFI"
|
||||
@@ -67,9 +67,9 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
|
||||
#define VERSION_NUM 0x0124
|
||||
|
||||
// Release date
|
||||
#define TC_STR_RELEASE_DATE L"December 16, 2019"
|
||||
#define TC_RELEASE_DATE_YEAR 2019
|
||||
#define TC_RELEASE_DATE_MONTH 12
|
||||
#define TC_STR_RELEASE_DATE L"March 10, 2020"
|
||||
#define TC_RELEASE_DATE_YEAR 2020
|
||||
#define TC_RELEASE_DATE_MONTH 3
|
||||
|
||||
#define BYTES_PER_KB 1024LL
|
||||
#define BYTES_PER_MB 1048576LL
|
||||
@@ -263,6 +263,10 @@ extern ULONG AllocTag;
|
||||
typedef int BOOL;
|
||||
#endif
|
||||
|
||||
#ifndef WORD
|
||||
typedef USHORT WORD;
|
||||
#endif
|
||||
|
||||
#ifndef BOOLEAN
|
||||
typedef unsigned char BOOLEAN;
|
||||
#endif
|
||||
@@ -295,6 +299,17 @@ typedef NTSTATUS (NTAPI *ExGetFirmwareEnvironmentVariableFn) (
|
||||
|
||||
typedef BOOLEAN (NTAPI *KeAreAllApcsDisabledFn) ();
|
||||
|
||||
typedef void (NTAPI *KeSetSystemGroupAffinityThreadFn)(
|
||||
PGROUP_AFFINITY Affinity,
|
||||
PGROUP_AFFINITY PreviousAffinity
|
||||
);
|
||||
|
||||
typedef USHORT (NTAPI *KeQueryActiveGroupCountFn)();
|
||||
|
||||
typedef ULONG (NTAPI *KeQueryActiveProcessorCountExFn)(
|
||||
USHORT GroupNumber
|
||||
);
|
||||
|
||||
extern NTSTATUS NTAPI KeSaveExtendedProcessorState (
|
||||
__in ULONG64 Mask,
|
||||
PXSTATE_SAVE XStateSave
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
<ClCompile Include="libzip\zip_set_file_comment.c" />
|
||||
<ClCompile Include="libzip\zip_set_file_compression.c" />
|
||||
<ClCompile Include="libzip\zip_set_name.c" />
|
||||
<ClCompile Include="libzip\zip_source_accept_empty.c" />
|
||||
<ClCompile Include="libzip\zip_source_begin_write.c" />
|
||||
<ClCompile Include="libzip\zip_source_begin_write_cloning.c" />
|
||||
<ClCompile Include="libzip\zip_source_buffer.c" />
|
||||
|
||||
@@ -360,6 +360,9 @@
|
||||
<ClCompile Include="libzip\zip_source_get_compression_flags.c">
|
||||
<Filter>libzip</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="libzip\zip_source_accept_empty.c">
|
||||
<Filter>libzip</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="libzip\compat.h">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/*
|
||||
compat.h -- compatibility defines.
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -81,6 +81,11 @@ typedef char bool;
|
||||
#define EOVERFLOW EFBIG
|
||||
#endif
|
||||
|
||||
/* not supported on at least Windows */
|
||||
#ifndef O_CLOEXEC
|
||||
#define O_CLOEXEC 0
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(HAVE__CHMOD)
|
||||
#define chmod _chmod
|
||||
@@ -120,9 +125,6 @@ typedef char bool;
|
||||
#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64)
|
||||
#define strtoull _strtoui64
|
||||
#endif
|
||||
#if defined(HAVE__UMASK)
|
||||
#define umask _umask
|
||||
#endif
|
||||
#if defined(HAVE__UNLINK)
|
||||
#define unlink _unlink
|
||||
#endif
|
||||
@@ -136,11 +138,6 @@ typedef char bool;
|
||||
#define ftello(s) ((long)ftell((s)))
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_MKSTEMP
|
||||
int _zip_mkstemp(char *);
|
||||
#define mkstemp _zip_mkstemp
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_STRCASECMP)
|
||||
#if defined(HAVE__STRICMP)
|
||||
#define strcasecmp _stricmp
|
||||
@@ -203,4 +200,8 @@ int _zip_mkstemp(char *);
|
||||
#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
|
||||
#endif
|
||||
|
||||
#ifndef S_ISREG
|
||||
#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG)
|
||||
#endif
|
||||
|
||||
#endif /* compat.h */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/*
|
||||
zip.h -- exported declarations.
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -134,6 +134,7 @@ extern "C" {
|
||||
#define ZIP_ER_INUSE 29 /* N Resource still in use */
|
||||
#define ZIP_ER_TELL 30 /* S Tell error */
|
||||
#define ZIP_ER_COMPRESSED_DATA 31 /* N Compressed data invalid */
|
||||
#define ZIP_ER_CANCELLED 32 /* N Operation cancelled */
|
||||
|
||||
/* type of system error value */
|
||||
|
||||
@@ -162,6 +163,7 @@ extern "C" {
|
||||
/* 15-17 - Reserved by PKWARE */
|
||||
#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
|
||||
#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
|
||||
#define ZIP_CM_LZMA2 33
|
||||
#define ZIP_CM_XZ 95 /* XZ compressed data */
|
||||
#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */
|
||||
#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
|
||||
@@ -229,7 +231,8 @@ enum zip_source_cmd {
|
||||
ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
|
||||
ZIP_SOURCE_REMOVE, /* remove file */
|
||||
ZIP_SOURCE_GET_COMPRESSION_FLAGS, /* get compression flags, internal only */
|
||||
ZIP_SOURCE_BEGIN_WRITE_CLONING /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */
|
||||
ZIP_SOURCE_BEGIN_WRITE_CLONING, /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */
|
||||
ZIP_SOURCE_ACCEPT_EMPTY /* whether empty files are valid archives */
|
||||
};
|
||||
typedef enum zip_source_cmd zip_source_cmd_t;
|
||||
|
||||
@@ -321,6 +324,7 @@ typedef zip_uint32_t zip_flags_t;
|
||||
|
||||
typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t);
|
||||
typedef void (*zip_progress_callback)(zip_t *, double, void *);
|
||||
typedef int (*zip_cancel_callback)(zip_t *, void *);
|
||||
|
||||
#ifndef ZIP_DISABLE_DEPRECATED
|
||||
typedef void (*zip_progress_callback_t)(double);
|
||||
@@ -373,6 +377,7 @@ ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags
|
||||
ZIP_EXTERN int zip_file_rename(zip_t *, zip_uint64_t, const char *, zip_flags_t);
|
||||
ZIP_EXTERN int zip_file_replace(zip_t *, zip_uint64_t, zip_source_t *, zip_flags_t);
|
||||
ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t);
|
||||
ZIP_EXTERN int zip_file_set_dostime(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
|
||||
ZIP_EXTERN int zip_file_set_encryption(zip_t *, zip_uint64_t, zip_uint16_t, const char *);
|
||||
ZIP_EXTERN int zip_file_set_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
|
||||
ZIP_EXTERN int zip_file_set_mtime(zip_t *, zip_uint64_t, time_t, zip_flags_t);
|
||||
@@ -393,6 +398,7 @@ ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *, const char *, zip_flags_t);
|
||||
ZIP_EXTERN zip_t * zip_open(const char *, int, int *);
|
||||
ZIP_EXTERN zip_t * zip_open_from_source(zip_source_t *, int, zip_error_t *);
|
||||
ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t *, double, zip_progress_callback, void (*)(void *), void *);
|
||||
ZIP_EXTERN int zip_register_cancel_callback_with_state(zip_t *, zip_cancel_callback, void (*)(void *), void *);
|
||||
ZIP_EXTERN int zip_set_archive_comment(zip_t *, const char *, zip_uint16_t);
|
||||
ZIP_EXTERN int zip_set_archive_flag(zip_t *, zip_flags_t, int);
|
||||
ZIP_EXTERN int zip_set_default_password(zip_t *, const char *);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_add.c -- add file via callback function
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_add_dir.c -- add directory
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_add_entry.c -- create and init struct zip_entry
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_algorithm_deflate.c -- deflate (de)compression routines
|
||||
Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2017-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -51,6 +51,7 @@ allocate(bool compress, int compression_flags, zip_error_t *error) {
|
||||
struct ctx *ctx;
|
||||
|
||||
if ((ctx = (struct ctx *)malloc(sizeof(*ctx))) == NULL) {
|
||||
zip_error_set(error, ZIP_ET_SYS, errno);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_buffer.c -- bounds checked access to memory buffer
|
||||
Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2014-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_close.c -- close zip archive and update changes
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -73,8 +73,10 @@ zip_close(zip_t *za) {
|
||||
if (survivors == 0) {
|
||||
if ((za->open_flags & ZIP_TRUNCATE) || changed) {
|
||||
if (zip_source_remove(za->src) < 0) {
|
||||
_zip_error_set_from_source(&za->error, za->src);
|
||||
return -1;
|
||||
if (!((zip_error_code_zip(zip_source_error(za->src)) == ZIP_ER_REMOVE) && (zip_error_code_system(zip_source_error(za->src)) == ENOENT))) {
|
||||
_zip_error_set_from_source(&za->error, za->src);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
zip_discard(za);
|
||||
@@ -158,14 +160,23 @@ zip_close(zip_t *za) {
|
||||
}
|
||||
}
|
||||
|
||||
_zip_progress_start(za->progress);
|
||||
if (_zip_progress_start(za->progress) != 0) {
|
||||
zip_error_set(&za->error, ZIP_ER_CANCELLED, 0);
|
||||
zip_source_rollback_write(za->src);
|
||||
free(filelist);
|
||||
return -1;
|
||||
}
|
||||
error = 0;
|
||||
for (j = 0; j < survivors; j++) {
|
||||
int new_data;
|
||||
zip_entry_t *entry;
|
||||
zip_dirent_t *de;
|
||||
|
||||
_zip_progress_subrange(za->progress, (double)j / (double)survivors, (double)(j + 1) / (double)survivors);
|
||||
if (_zip_progress_subrange(za->progress, (double)j / (double)survivors, (double)(j + 1) / (double)survivors) != 0) {
|
||||
zip_error_set(&za->error, ZIP_ER_CANCELLED, 0);
|
||||
error = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
i = filelist[j].idx;
|
||||
entry = za->entry + i;
|
||||
@@ -256,10 +267,9 @@ zip_close(zip_t *za) {
|
||||
_zip_error_set_from_source(&za->error, za->src);
|
||||
error = 1;
|
||||
}
|
||||
_zip_progress_end(za->progress);
|
||||
}
|
||||
|
||||
_zip_progress_end(za->progress);
|
||||
|
||||
if (error) {
|
||||
zip_source_rollback_write(za->src);
|
||||
return -1;
|
||||
@@ -543,7 +553,10 @@ copy_data(zip_t *za, zip_uint64_t len) {
|
||||
|
||||
len -= n;
|
||||
|
||||
_zip_progress_update(za->progress, (total - (double)len) / total);
|
||||
if (_zip_progress_update(za->progress, (total - (double)len) / total) != 0) {
|
||||
zip_error_set(&za->error, ZIP_ER_CANCELLED, 0);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
byte_array_fini(buf);
|
||||
@@ -576,7 +589,11 @@ copy_source(zip_t *za, zip_source_t *src, zip_int64_t data_length) {
|
||||
}
|
||||
if (n == BUFSIZE && za->progress && data_length > 0) {
|
||||
current += n;
|
||||
_zip_progress_update(za->progress, (double)current / (double)data_length);
|
||||
if (_zip_progress_update(za->progress, (double)current / (double)data_length) != 0) {
|
||||
zip_error_set(&za->error, ZIP_ER_CANCELLED, 0);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_delete.c -- delete file from zip archive
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_dir_add.c -- add directory
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_dirent.c -- read directory entry (local or central), clean dirent
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -41,7 +41,6 @@
|
||||
|
||||
#include "zipint.h"
|
||||
|
||||
static time_t _zip_d2u_time(zip_uint16_t, zip_uint16_t);
|
||||
static zip_string_t *_zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string_t *str);
|
||||
static zip_extra_field_t *_zip_ef_utf8(zip_uint16_t, zip_string_t *, zip_error_t *);
|
||||
static bool _zip_dirent_process_winzip_aes(zip_dirent_t *de, zip_error_t *error);
|
||||
@@ -978,7 +977,7 @@ _zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags) {
|
||||
}
|
||||
|
||||
|
||||
static time_t
|
||||
time_t
|
||||
_zip_d2u_time(zip_uint16_t dtime, zip_uint16_t ddate) {
|
||||
struct tm tm;
|
||||
|
||||
@@ -1066,21 +1065,26 @@ _zip_get_dirent(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_error_t *err
|
||||
|
||||
void
|
||||
_zip_u2d_time(time_t intime, zip_uint16_t *dtime, zip_uint16_t *ddate) {
|
||||
struct tm *tm;
|
||||
struct tm *tpm;
|
||||
|
||||
tm = localtime(&intime);
|
||||
if (tm == NULL) {
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm tm;
|
||||
tpm = localtime_r(&intime, &tm);
|
||||
#else
|
||||
tpm = localtime(&intime);
|
||||
#endif
|
||||
if (tpm == NULL) {
|
||||
/* if localtime() fails, return an arbitrary date (1980-01-01 00:00:00) */
|
||||
*ddate = (1 << 5) + 1;
|
||||
*dtime = 0;
|
||||
return;
|
||||
}
|
||||
if (tm->tm_year < 80) {
|
||||
tm->tm_year = 80;
|
||||
if (tpm->tm_year < 80) {
|
||||
tpm->tm_year = 80;
|
||||
}
|
||||
|
||||
*ddate = (zip_uint16_t)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday);
|
||||
*dtime = (zip_uint16_t)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1));
|
||||
*ddate = (zip_uint16_t)(((tpm->tm_year + 1900 - 1980) << 9) + ((tpm->tm_mon + 1) << 5) + tpm->tm_mday);
|
||||
*dtime = (zip_uint16_t)(((tpm->tm_hour) << 11) + ((tpm->tm_min) << 5) + ((tpm->tm_sec) >> 1));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_discard.c -- discard and free struct zip
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_entry.c -- struct zip_entry helper functions
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -5,16 +5,80 @@
|
||||
|
||||
#include "zipint.h"
|
||||
|
||||
const char *const _zip_err_str[] = {
|
||||
"No error", "Multi-disk zip archives not supported", "Renaming temporary file failed", "Closing zip archive failed", "Seek error", "Read error", "Write error", "CRC error", "Containing zip archive was closed", "No such file", "File already exists", "Can't open file", "Failure to create temporary file", "Zlib error", "Malloc failure", "Entry has been changed", "Compression method not supported", "Premature end of file", "Invalid argument", "Not a zip archive", "Internal error", "Zip archive inconsistent", "Can't remove file", "Entry has been deleted", "Encryption method not supported", "Read-only archive", "No password provided", "Wrong password provided", "Operation not supported", "Resource still in use", "Tell error", "Compressed data invalid",
|
||||
const char * const _zip_err_str[] = {
|
||||
"No error",
|
||||
"Multi-disk zip archives not supported",
|
||||
"Renaming temporary file failed",
|
||||
"Closing zip archive failed",
|
||||
"Seek error",
|
||||
"Read error",
|
||||
"Write error",
|
||||
"CRC error",
|
||||
"Containing zip archive was closed",
|
||||
"No such file",
|
||||
"File already exists",
|
||||
"Can't open file",
|
||||
"Failure to create temporary file",
|
||||
"Zlib error",
|
||||
"Malloc failure",
|
||||
"Entry has been changed",
|
||||
"Compression method not supported",
|
||||
"Premature end of file",
|
||||
"Invalid argument",
|
||||
"Not a zip archive",
|
||||
"Internal error",
|
||||
"Zip archive inconsistent",
|
||||
"Can't remove file",
|
||||
"Entry has been deleted",
|
||||
"Encryption method not supported",
|
||||
"Read-only archive",
|
||||
"No password provided",
|
||||
"Wrong password provided",
|
||||
"Operation not supported",
|
||||
"Resource still in use",
|
||||
"Tell error",
|
||||
"Compressed data invalid",
|
||||
"Operation cancelled",
|
||||
};
|
||||
|
||||
const int _zip_nerr_str = sizeof(_zip_err_str) / sizeof(_zip_err_str[0]);
|
||||
const int _zip_nerr_str = sizeof(_zip_err_str)/sizeof(_zip_err_str[0]);
|
||||
|
||||
#define N ZIP_ET_NONE
|
||||
#define S ZIP_ET_SYS
|
||||
#define Z ZIP_ET_ZLIB
|
||||
|
||||
const int _zip_err_type[] = {
|
||||
N, N, S, S, S, S, S, N, N, N, N, S, S, Z, N, N, N, N, N, N, N, N, S, N, N, N, N, N, N, N, S, N,
|
||||
N,
|
||||
N,
|
||||
S,
|
||||
S,
|
||||
S,
|
||||
S,
|
||||
S,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
S,
|
||||
S,
|
||||
Z,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
S,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
N,
|
||||
S,
|
||||
N,
|
||||
N,
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error.c -- zip_error_t helper functions
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error_clear.c -- clear zip error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error_get.c -- get zip error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error_get_sys_type.c -- return type of system error code
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error_sterror.c -- get string representation of struct zip_error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_error_to_str.c -- get string representation of zip error code
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_extra_field.c -- manipulate extra fields
|
||||
Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2012-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_extra_field_api.c -- public extra fields API functions
|
||||
Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2012-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fclose.c -- close file in zip archive
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fdopen.c -- open read-only archive from file descriptor
|
||||
Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2009-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_add.c -- add file via callback function
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_error_clear.c -- clear zip file error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_error_get.c -- get zip file error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_get_comment.c -- get file comment
|
||||
Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2006-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_get_external_attributes.c -- get opsys/external attributes
|
||||
Copyright (C) 2013-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2013-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_get_offset.c -- get offset of file data in archive.
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_rename.c -- rename file in zip archive
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_replace.c -- replace file via callback function
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_set_comment.c -- set comment for file in archive
|
||||
Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2006-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_set_external_attributes.c -- set external attributes for entry
|
||||
Copyright (C) 2013-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2013-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_set_mtime.c -- set modification time of entry.
|
||||
Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2014-2020 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
@@ -33,10 +33,16 @@
|
||||
|
||||
#include "zipint.h"
|
||||
|
||||
ZIP_EXTERN int
|
||||
zip_file_set_dostime(zip_t *za, zip_uint64_t idx, zip_uint16_t dtime, zip_uint16_t ddate, zip_flags_t flags) {
|
||||
time_t mtime;
|
||||
mtime = _zip_d2u_time(dtime, ddate);
|
||||
return zip_file_set_mtime(za, idx, mtime, flags);
|
||||
}
|
||||
|
||||
ZIP_EXTERN int
|
||||
zip_file_set_mtime(zip_t *za, zip_uint64_t idx, time_t mtime, zip_flags_t flags) {
|
||||
zip_entry_t *e;
|
||||
int changed;
|
||||
|
||||
if (_zip_get_dirent(za, idx, 0, NULL) == NULL)
|
||||
return -1;
|
||||
@@ -48,27 +54,15 @@ zip_file_set_mtime(zip_t *za, zip_uint64_t idx, time_t mtime, zip_flags_t flags)
|
||||
|
||||
e = za->entry + idx;
|
||||
|
||||
changed = e->orig == NULL || mtime != e->orig->last_mod;
|
||||
if (e->changes == NULL) {
|
||||
if ((e->changes = _zip_dirent_clone(e->orig)) == NULL) {
|
||||
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
if (e->changes == NULL) {
|
||||
if ((e->changes = _zip_dirent_clone(e->orig)) == NULL) {
|
||||
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
e->changes->last_mod = mtime;
|
||||
e->changes->changed |= ZIP_DIRENT_LAST_MOD;
|
||||
}
|
||||
else {
|
||||
if (e->changes) {
|
||||
e->changes->changed &= ~ZIP_DIRENT_LAST_MOD;
|
||||
if (e->changes->changed == 0) {
|
||||
_zip_dirent_free(e->changes);
|
||||
e->changes = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
e->changes->last_mod = mtime;
|
||||
e->changes->changed |= ZIP_DIRENT_LAST_MOD;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_file_sterror.c -- get string representation of zip file error
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_filerange_crc.c -- compute CRC32 for a range of a file
|
||||
Copyright (C) 2008-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 2008-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fopen.c -- open file in zip archive for reading
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fopen_encrypted.c -- open file for reading with password
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fopen_index.c -- open file in zip archive for reading by index
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fopen_index_encrypted.c -- open file for reading by index w/ password
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
zip_fread.c -- read from file
|
||||
Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
|
||||
Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
|
||||
|
||||
This file is part of libzip, a library to manipulate ZIP archives.
|
||||
The authors can be contacted at <libzip@nih.at>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user