mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-08-29 12:17:16 +00:00
Compare commits
64
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53902284b1 | ||
|
|
7f63d57f67 | ||
|
|
2ddc374164 | ||
|
|
78d9e5fc3b | ||
|
|
ac8d212ce7 | ||
|
|
3685ceceae | ||
|
|
45d642d4e1 | ||
|
|
2cfb896827 | ||
|
|
ea2d8ded53 | ||
|
|
620133002c | ||
|
|
15b6c7d3b7 | ||
|
|
2edd12fe22 | ||
|
|
a2b008c747 | ||
|
|
0f7ef7dcd7 | ||
|
|
f96eb0c5ec | ||
|
|
ea5902514a | ||
|
|
d5e3488894 | ||
|
|
233d18d351 | ||
|
|
7f53fd41f8 | ||
|
|
5547a605bd | ||
|
|
0ac4009720 | ||
|
|
2a10640f42 | ||
|
|
6e94286b39 | ||
|
|
041bc9dc0b | ||
|
|
e5a9e9239b | ||
|
|
7ff3c5d108 | ||
|
|
e8626ca74a | ||
|
|
34f3c055ed | ||
|
|
8e2c5ca45e | ||
|
|
7d6347f468 | ||
|
|
e362d804b0 | ||
|
|
3bad079d75 | ||
|
|
57ce7aab7b | ||
|
|
3e029b0dde | ||
|
|
5dfdc1b4a5 | ||
|
|
eb3e923091 | ||
|
|
4a435870f6 | ||
|
|
f40755fd7c | ||
|
|
3c09765208 | ||
|
|
b65eabe23d | ||
|
|
d18ecc1a37 | ||
|
|
69c8c9d6c6 | ||
|
|
77d070fe73 | ||
|
|
183cbc087a | ||
|
|
194b641ebd | ||
|
|
7c154a3f26 | ||
|
|
b81ec7d7e0 | ||
|
|
479925f403 | ||
|
|
17eeaa43cf | ||
|
|
9b1c447df1 | ||
|
|
4dacedd9cc | ||
|
|
66891638d5 | ||
|
|
c4a68500cc | ||
|
|
335f17b72f | ||
|
|
735657a254 | ||
|
|
83d3948bc8 | ||
|
|
7fac2e89b3 | ||
|
|
e5bb77e378 | ||
|
|
8209a30a6b | ||
|
|
22e4a8a252 | ||
|
|
c70f370bac | ||
|
|
49a8ff59dc | ||
|
|
d076bb5133 | ||
|
|
a63ae58596 |
+258
-17
@@ -1,3 +1,202 @@
|
|||||||
|
VeraCrypt License
|
||||||
|
Software distributed under this license is distributed on an "AS
|
||||||
|
IS" BASIS WITHOUT WARRANTIES OF ANY KIND. THE AUTHORS AND
|
||||||
|
DISTRIBUTORS OF THE SOFTWARE DISCLAIM ANY LIABILITY. ANYONE WHO
|
||||||
|
USES, COPIES, MODIFIES, OR (RE)DISTRIBUTES ANY PART OF THE
|
||||||
|
SOFTWARE IS, BY SUCH ACTION(S), ACCEPTING AND AGREEING TO BE
|
||||||
|
BOUND BY ALL TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT
|
||||||
|
ACCEPT THEM, DO NOT USE, COPY, MODIFY, NOR (RE)DISTRIBUTE THE
|
||||||
|
SOFTWARE, NOR ANY PART(S) THEREOF.
|
||||||
|
|
||||||
|
VeraCrypt is multi-licensed under Apache License 2.0 and
|
||||||
|
the TrueCrypt License version 3.0, a verbatim copy of both
|
||||||
|
licenses can be found below.
|
||||||
|
|
||||||
|
This license does not grant you rights to use any
|
||||||
|
contributors' name, logo, or trademarks, including IDRIX,
|
||||||
|
VeraCrypt and all derivative names.
|
||||||
|
For example, the following names are not allowed: VeraCrypt,
|
||||||
|
VeraCrypt+, VeraCrypt Professional, iVeraCrypt, etc. Nor any
|
||||||
|
other names confusingly similar to the name VeraCrypt (e.g.,
|
||||||
|
Vera-Crypt, Vera Crypt, VerKrypt, etc.)
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
https://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
TrueCrypt License Version 3.0
|
TrueCrypt License Version 3.0
|
||||||
|
|
||||||
Software distributed under this license is distributed on an "AS
|
Software distributed under this license is distributed on an "AS
|
||||||
@@ -480,24 +679,66 @@ warranties in respect of its properties, including, but not
|
|||||||
limited to, correctness and/or fitness for purpose.
|
limited to, correctness and/or fitness for purpose.
|
||||||
____________________________________________________________
|
____________________________________________________________
|
||||||
|
|
||||||
Copyright (C) 2002-2004 Mark Adler, all rights reserved
|
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||||
version 1.8, 9 Jan 2004
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or
|
This software is provided 'as-is', without any express or implied
|
||||||
implied warranty. In no event will the author be held liable
|
warranty. In no event will the authors be held liable for any damages
|
||||||
for any damages arising from the use of this software.
|
arising from the use of this software.
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
purpose, including commercial applications, and to alter it and
|
including commercial applications, and to alter it and redistribute it
|
||||||
redistribute it freely, subject to the following restrictions:
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
must not claim that you wrote the original software. If you
|
claim that you wrote the original software. If you use this software
|
||||||
use this software in a product, an acknowledgment in the
|
in a product, an acknowledgment in the product documentation would be
|
||||||
product documentation would be appreciated but is not
|
appreciated but is not required.
|
||||||
required.
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
2. Altered source versions must be plainly marked as such, and
|
misrepresented as being the original software.
|
||||||
must not be misrepresented as being the original software.
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
3. This notice may not be removed or altered from any source
|
|
||||||
distribution.
|
Jean-loup Gailly Mark Adler
|
||||||
|
jloup@gzip.org madler@alumni.caltech.edu
|
||||||
|
____________________________________________________________
|
||||||
|
Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
|
||||||
|
|
||||||
|
The authors can be contacted at <libzip@nih.at>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
____________________________________________________________
|
||||||
|
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
Copyright (c) 2016. Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
||||||
|
This program and the accompanying materials are licensed and made available
|
||||||
|
under the terms and conditions of the GNU Lesser General Public License,
|
||||||
|
version 3.0 (LGPL-3.0).
|
||||||
|
|
||||||
|
The full text of the license may be found at https://opensource.org/licenses/LGPL-3.0
|
||||||
____________________________________________________________
|
____________________________________________________________
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ Requirements for Building VeraCrypt for Windows:
|
|||||||
- Microsoft Windows SDK for Windows 7.1 (configured for Visual C++ 2010)
|
- Microsoft Windows SDK for Windows 7.1 (configured for Visual C++ 2010)
|
||||||
- Microsoft Windows SDK for Windows 8.1 (needed for SHA-256 code signing)
|
- Microsoft Windows SDK for Windows 8.1 (needed for SHA-256 code signing)
|
||||||
- Microsoft Windows Driver Kit 7.1.0 (build 7600.16385.1)
|
- Microsoft Windows Driver Kit 7.1.0 (build 7600.16385.1)
|
||||||
- RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20
|
|
||||||
header files (available at ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20)
|
|
||||||
- NASM assembler 2.08 or compatible
|
- NASM assembler 2.08 or compatible
|
||||||
- gzip compressor
|
- gzip compressor
|
||||||
- upx packer (available at http://upx.sourceforge.net/)
|
- upx packer (available at http://upx.sourceforge.net/)
|
||||||
@@ -90,17 +88,13 @@ Instructions for Building VeraCrypt for Windows:
|
|||||||
directory than '%SYSTEMDRIVE%\WinDDK', create an environment variable
|
directory than '%SYSTEMDRIVE%\WinDDK', create an environment variable
|
||||||
'WINDDK_ROOT' pointing to the DDK installation directory.
|
'WINDDK_ROOT' pointing to the DDK installation directory.
|
||||||
|
|
||||||
3) Copy the PKCS #11 header files to a standard include path or create an
|
3) Open the solution file 'VeraCrypt.sln' in Microsoft Visual Studio 2010.
|
||||||
environment variable 'PKCS11_INC' pointing to the directory where
|
|
||||||
the PKCS #11 header files are installed.
|
|
||||||
|
|
||||||
4) Open the solution file 'VeraCrypt.sln' in Microsoft Visual Studio 2010.
|
4) Select 'All' as the active solution configuration.
|
||||||
|
|
||||||
5) Select 'All' as the active solution configuration.
|
5) Build the solution.
|
||||||
|
|
||||||
6) Build the solution.
|
6) If successful, there should be newly built VeraCrypt binaries in the
|
||||||
|
|
||||||
7) If successful, there should be newly built VeraCrypt binaries in the
|
|
||||||
'Release' folder.
|
'Release' folder.
|
||||||
|
|
||||||
Instructions for Signing and Packaging VeraCrypt for Windows:
|
Instructions for Signing and Packaging VeraCrypt for Windows:
|
||||||
@@ -141,10 +135,6 @@ Requirements for Building VeraCrypt for Linux and Mac OS X:
|
|||||||
wxWidgets 3.0 library source code (available at http://www.wxwidgets.org)
|
wxWidgets 3.0 library source code (available at http://www.wxwidgets.org)
|
||||||
- FUSE library and header files (available at https://github.com/libfuse/libfuse
|
- FUSE library and header files (available at https://github.com/libfuse/libfuse
|
||||||
and https://osxfuse.github.io/)
|
and https://osxfuse.github.io/)
|
||||||
- RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20
|
|
||||||
header files (available at ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20).
|
|
||||||
They are already included in the source tree under the directory PKCS11 but
|
|
||||||
it is possible to override it using the environment variable 'PKCS11_INC'.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions for Building VeraCrypt for Linux and Mac OS X:
|
Instructions for Building VeraCrypt for Linux and Mac OS X:
|
||||||
@@ -255,9 +245,9 @@ Copyright (c) 2013-2016 IDRIX. All rights reserved.
|
|||||||
Copyright (c) 2003-2012 TrueCrypt Developers Association. 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-2000 Paul Le Roux. All rights reserved.
|
||||||
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
|
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
|
||||||
Copyright (c) 2002-2004 Mark Adler. All rights reserved.
|
Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler.
|
||||||
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
||||||
Copyright (c) 1990-2002 Info-ZIP. All rights reserved.
|
Copyright (c) Dieter Baron and Thomas Klausner.
|
||||||
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
||||||
|
|
||||||
For more information, please see the legal notices attached to parts of the
|
For more information, please see the legal notices attached to parts of the
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ar" name="العربية" en-name="Arabic" version="0.2.0" translators="Ahmad Gharbeia, Khaled Hosny, Ali Khojah" />
|
<language langid="ar" name="العربية" en-name="Arabic" version="0.2.0" translators="Ahmad Gharbeia, Khaled Hosny, Ali Khojah" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="be" name="Беларуская" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
|
<language langid="be" name="Беларуская" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="bg" name="Български" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
|
<language langid="bg" name="Български" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
|
<language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
+369
-369
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
|
<language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- 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" />
|
<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" />
|
||||||
<!-- Fonts -->
|
<!-- Schriftarten -->
|
||||||
<font lang="de" class="normal" size="11" face="default" />
|
<font lang="de" class="normal" size="11" face="default" />
|
||||||
<font lang="de" class="bold" size="13" face="Arial" />
|
<font lang="de" class="bold" size="13" face="Arial" />
|
||||||
<font lang="de" class="fixed" size="12" face="Lucida Console" />
|
<font lang="de" class="fixed" size="12" face="Lucida Console" />
|
||||||
<font lang="de" class="title" size="21" face="Times New Roman" />
|
<font lang="de" class="title" size="21" face="Times New Roman" />
|
||||||
<!-- Controls -->
|
<!-- Steuerelemente -->
|
||||||
<control lang="de" key="IDCANCEL">Abbrechen</control>
|
<control lang="de" key="IDCANCEL">Abbrechen</control>
|
||||||
<control lang="de" key="IDC_ALL_USERS">Für &alle Benutzer installieren</control>
|
<control lang="de" key="IDC_ALL_USERS">Für &alle Benutzer installieren</control>
|
||||||
<control lang="de" key="IDC_BROWSE">Su&chen...</control>
|
<control lang="de" key="IDC_BROWSE">Su&chen ...</control>
|
||||||
<control lang="de" key="IDC_DESKTOP_ICON">VeraCrypt-Symbol auf dem &Desktop erstellen</control>
|
<control lang="de" key="IDC_DESKTOP_ICON">VeraCrypt-Symbol auf dem &Desktop erstellen</control>
|
||||||
<control lang="de" key="IDC_DONATE">Jetzt spenden...</control>
|
<control lang="de" key="IDC_DONATE">Jetzt spenden ...</control>
|
||||||
<control lang="de" key="IDC_FILE_TYPE">Verknüpft die .hc &Dateierweiterung mit VeraCrypt</control>
|
<control lang="de" key="IDC_FILE_TYPE">Verknüpft die .hc &Dateierweiterung mit VeraCrypt</control>
|
||||||
<control lang="de" key="IDC_OPEN_CONTAINING_FOLDER">&Den Speicherort nach dem Beenden öffnen</control>
|
<control lang="de" key="IDC_OPEN_CONTAINING_FOLDER">&Den Speicherort nach dem Beenden öffnen</control>
|
||||||
<control lang="de" key="IDC_PROG_GROUP">VeraCrypt ins &Startmenü eintragen</control>
|
<control lang="de" key="IDC_PROG_GROUP">VeraCrypt ins &Startmenü eintragen</control>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<control lang="de" key="IDC_KEYFILES_ENABLE">Schlüsselda&t. verwenden</control>
|
<control lang="de" key="IDC_KEYFILES_ENABLE">Schlüsselda&t. verwenden</control>
|
||||||
<control lang="de" key="IDC_KEYFILES_TRY_EMPTY_PASSWORD">Versuche zuerst ohne Passwort einzubinden</control>
|
<control lang="de" key="IDC_KEYFILES_TRY_EMPTY_PASSWORD">Versuche zuerst ohne Passwort einzubinden</control>
|
||||||
<control lang="de" key="IDC_KEYFILES_RANDOM_SIZE">Zufällige Größe (64 <-> 1048576)</control>
|
<control lang="de" key="IDC_KEYFILES_RANDOM_SIZE">Zufällige Größe (64 <-> 1048576)</control>
|
||||||
<control lang="de" key="IDC_KEY_FILES">Schlüsselda&teien...</control>
|
<control lang="de" key="IDC_KEY_FILES">Schlüsselda&teien ...</control>
|
||||||
<control lang="de" key="IDC_LINK_HASH_INFO">Infos über Hash-Algorithmen</control>
|
<control lang="de" key="IDC_LINK_HASH_INFO">Infos über Hash-Algorithmen</control>
|
||||||
<control lang="de" key="IDC_LINK_MORE_INFO_ABOUT_CIPHER">Weitere Informationen</control>
|
<control lang="de" key="IDC_LINK_MORE_INFO_ABOUT_CIPHER">Weitere Informationen</control>
|
||||||
<control lang="de" key="IDC_LINK_PIM_INFO">Informationen zu PIM</control>
|
<control lang="de" key="IDC_LINK_PIM_INFO">Informationen zu PIM</control>
|
||||||
@@ -111,9 +111,9 @@
|
|||||||
<control lang="de" key="IDC_AUTORUN_START">&VeraCrypt starten</control>
|
<control lang="de" key="IDC_AUTORUN_START">&VeraCrypt starten</control>
|
||||||
<control lang="de" key="IDC_AUTO_DETECT_PKCS11_MODULE">Bibliothek auto&matisch erkennen</control>
|
<control lang="de" key="IDC_AUTO_DETECT_PKCS11_MODULE">Bibliothek auto&matisch erkennen</control>
|
||||||
<control lang="de" key="IDC_BOOT_LOADER_CACHE_PASSWORD">&Prä-Boot-Authentifikationspasswort in Treiber-Speicher schr. (zum Einbinden v. Nicht-System-Volume)</control>
|
<control lang="de" key="IDC_BOOT_LOADER_CACHE_PASSWORD">&Prä-Boot-Authentifikationspasswort in Treiber-Speicher schr. (zum Einbinden v. Nicht-System-Volume)</control>
|
||||||
<control lang="de" key="IDC_BROWSE_DIRS">Durchsuchen...</control>
|
<control lang="de" key="IDC_BROWSE_DIRS">Durchsuchen ...</control>
|
||||||
<control lang="de" key="IDC_BROWSE_FILES">Durchsuchen...</control>
|
<control lang="de" key="IDC_BROWSE_FILES">Durchsuchen ...</control>
|
||||||
<control lang="de" key="IDC_CACHE">Passwort u. Schlüsseldat. im &Cache halten</control>
|
<control lang="de" key="IDC_CACHE">Passwort und Schlüsseldatei im &Cache halten</control>
|
||||||
<control lang="de" key="IDC_CLOSE_BKG_TASK_WHEN_NOVOL">&Beenden, wenn alle Vol. getrennt wurden</control>
|
<control lang="de" key="IDC_CLOSE_BKG_TASK_WHEN_NOVOL">&Beenden, wenn alle Vol. getrennt wurden</control>
|
||||||
<control lang="de" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">Token-&Sitzung schließen, nachdem ein Volume erfolgreich eingebunden wurde</control>
|
<control lang="de" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">Token-&Sitzung schließen, nachdem ein Volume erfolgreich eingebunden wurde</control>
|
||||||
<control lang="de" key="IDC_COPY_EXPANDER">Volume-Erweiterer hinzufügen</control>
|
<control lang="de" key="IDC_COPY_EXPANDER">Volume-Erweiterer hinzufügen</control>
|
||||||
@@ -146,15 +146,15 @@
|
|||||||
<control lang="de" key="IDC_HK_MOD_WIN">Win</control>
|
<control lang="de" key="IDC_HK_MOD_WIN">Win</control>
|
||||||
<control lang="de" key="IDC_HOTKEY_ASSIGN">Zuweisen</control>
|
<control lang="de" key="IDC_HOTKEY_ASSIGN">Zuweisen</control>
|
||||||
<control lang="de" key="IDC_HOTKEY_REMOVE">Aufheben</control>
|
<control lang="de" key="IDC_HOTKEY_REMOVE">Aufheben</control>
|
||||||
<control lang="de" key="IDC_KEYFILES">&Schlüsseldat...</control>
|
<control lang="de" key="IDC_KEYFILES">&Schlüsseldat ...</control>
|
||||||
<control lang="de" key="IDC_LIMIT_ENC_THREAD_POOL">Diese Anzahl von Prozessoren NICHT für Ver-/Entschlüsselung nutzen:</control>
|
<control lang="de" key="IDC_LIMIT_ENC_THREAD_POOL">Diese Anzahl von Prozessoren NICHT für Ver-/Entschlüsselung nutzen:</control>
|
||||||
<control lang="de" key="IDC_MORE_INFO_ON_HW_ACCELERATION">Mehr Informationen</control>
|
<control lang="de" key="IDC_MORE_INFO_ON_HW_ACCELERATION">Mehr Informationen</control>
|
||||||
<control lang="de" key="IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION">Mehr Informationen</control>
|
<control lang="de" key="IDC_MORE_INFO_ON_THREAD_BASED_PARALLELIZATION">Mehr Informationen</control>
|
||||||
<control lang="de" key="IDC_MORE_SETTINGS">Mehr Einstellungen...</control>
|
<control lang="de" key="IDC_MORE_SETTINGS">Mehr Einstellungen ...</control>
|
||||||
<control lang="de" key="IDC_MOUNTALL">&Alle Datentr. einbinden</control>
|
<control lang="de" key="IDC_MOUNTALL">&Alle Datentr. einbinden</control>
|
||||||
<control lang="de" key="IDC_MOUNT_OPTIONS">&Optionen...</control>
|
<control lang="de" key="IDC_MOUNT_OPTIONS">&Optionen ...</control>
|
||||||
<control lang="de" key="IDC_MOUNT_READONLY">Als schreib&geschütztes Laufwerk einbinden</control>
|
<control lang="de" key="IDC_MOUNT_READONLY">Als schreib&geschütztes Laufwerk einbinden</control>
|
||||||
<control lang="de" key="IDC_NEW_KEYFILES">Schlüssel&dat...</control>
|
<control lang="de" key="IDC_NEW_KEYFILES">Schlüssel&dat ...</control>
|
||||||
<control lang="de" key="IDC_OLD_PIM_HELP">(Leer oder 0 für vordefinierte Iterationen)</control>
|
<control lang="de" key="IDC_OLD_PIM_HELP">(Leer oder 0 für vordefinierte Iterationen)</control>
|
||||||
<control lang="de" key="IDC_PIM_HELP">(Leer oder 0 für vordefinierte Iterationen)</control>
|
<control lang="de" key="IDC_PIM_HELP">(Leer oder 0 für vordefinierte Iterationen)</control>
|
||||||
<control lang="de" key="IDC_PREF_BKG_TASK_ENABLE">&Aktiv</control>
|
<control lang="de" key="IDC_PREF_BKG_TASK_ENABLE">&Aktiv</control>
|
||||||
@@ -176,17 +176,17 @@
|
|||||||
<control lang="de" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Cache beim Beenden sicher &löschen</control>
|
<control lang="de" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Cache beim Beenden sicher &löschen</control>
|
||||||
<control lang="de" key="IDC_PRESERVE_TIMESTAMPS">Änderungszeiten von Containerdateien erhalten</control>
|
<control lang="de" key="IDC_PRESERVE_TIMESTAMPS">Änderungszeiten von Containerdateien erhalten</control>
|
||||||
<control lang="de" key="IDC_RESET_HOTKEYS">Zu&rücksetzen</control>
|
<control lang="de" key="IDC_RESET_HOTKEYS">Zu&rücksetzen</control>
|
||||||
<control lang="de" key="IDC_SELECT_DEVICE">Datent&räger...</control>
|
<control lang="de" key="IDC_SELECT_DEVICE">Datent&räger ...</control>
|
||||||
<control lang="de" key="IDC_SELECT_FILE">&Datei...</control>
|
<control lang="de" key="IDC_SELECT_FILE">&Datei ...</control>
|
||||||
<control lang="de" key="IDC_SELECT_PKCS11_MODULE">Wähle &Bibliothek...</control>
|
<control lang="de" key="IDC_SELECT_PKCS11_MODULE">&Bibliothek auswählen ...</control>
|
||||||
<control lang="de" key="IDC_SHOW_PASSWORD_CHPWD_NEW">Passwort anze&igen</control>
|
<control lang="de" key="IDC_SHOW_PASSWORD_CHPWD_NEW">Passwort anze&igen</control>
|
||||||
<control lang="de" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Passwort an&zeigen</control>
|
<control lang="de" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Passwort an&zeigen</control>
|
||||||
<control lang="de" key="IDC_TRAVEL_OPEN_EXPLORER">&Explorer-Fenster für eingebundenes Volume öffnen</control>
|
<control lang="de" key="IDC_TRAVEL_OPEN_EXPLORER">&Explorer-Fenster für eingebundenes Volume öffnen</control>
|
||||||
<control lang="de" key="IDC_TRAV_CACHE_PASSWORDS">Passwort im Cache halten</control>
|
<control lang="de" key="IDC_TRAV_CACHE_PASSWORDS">Passwort im Cache halten</control>
|
||||||
<control lang="de" key="IDC_TRUECRYPT_MODE">TrueCrypt-Modus</control>
|
<control lang="de" key="IDC_TRUECRYPT_MODE">TrueCrypt-Modus</control>
|
||||||
<control lang="de" key="IDC_UNMOUNTALL">A&lle trennen</control>
|
<control lang="de" key="IDC_UNMOUNTALL">A&lle trennen</control>
|
||||||
<control lang="de" key="IDC_VOLUME_PROPERTIES">Eigenscha&ften...</control>
|
<control lang="de" key="IDC_VOLUME_PROPERTIES">Eigenscha&ften ...</control>
|
||||||
<control lang="de" key="IDC_VOLUME_TOOLS">Vol.-&Operationen...</control>
|
<control lang="de" key="IDC_VOLUME_TOOLS">Vol.-&Operationen ...</control>
|
||||||
<control lang="de" key="IDC_WIPE_CACHE">&Cache sicher löschen</control>
|
<control lang="de" key="IDC_WIPE_CACHE">&Cache sicher löschen</control>
|
||||||
<control lang="de" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt – Parameter beim Einbinden</control>
|
<control lang="de" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt – Parameter beim Einbinden</control>
|
||||||
<control lang="de" key="IDD_FAVORITE_VOLUMES">VeraCrypt – Favoriten-Volumes</control>
|
<control lang="de" key="IDD_FAVORITE_VOLUMES">VeraCrypt – Favoriten-Volumes</control>
|
||||||
@@ -201,63 +201,63 @@
|
|||||||
<control lang="de" key="IDD_TRAVELER_DLG">VeraCrypt Traveler-Disk-Installation</control>
|
<control lang="de" key="IDD_TRAVELER_DLG">VeraCrypt Traveler-Disk-Installation</control>
|
||||||
<control lang="de" key="IDD_VOLUME_PROPERTIES">Eigenschaften des VeraCrypt-Volumes</control>
|
<control lang="de" key="IDD_VOLUME_PROPERTIES">Eigenschaften des VeraCrypt-Volumes</control>
|
||||||
<control lang="de" key="IDM_ABOUT">&Infos über VeraCrypt</control>
|
<control lang="de" key="IDM_ABOUT">&Infos über VeraCrypt</control>
|
||||||
<control lang="de" key="IDM_ADD_REMOVE_VOL_KEYFILES">Schlüssel&dateien dem/vom Volume hinzufügen/entfernen...</control>
|
<control lang="de" key="IDM_ADD_REMOVE_VOL_KEYFILES">Schlüssel&dateien dem/vom Volume hinzufügen/entfernen ...</control>
|
||||||
<control lang="de" key="IDM_ADD_VOLUME_TO_FAVORITES">Eingebundenes Volume zu Favoriten hinzufügen...</control>
|
<control lang="de" key="IDM_ADD_VOLUME_TO_FAVORITES">Eingebundenes Volume zu Favoriten hinzufügen ...</control>
|
||||||
<control lang="de" key="IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES">Eingebundenes Volume zu Systemfavoriten hinzufügen. ..</control>
|
<control lang="de" key="IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES">Eingebundenes Volume zu Systemfavoriten hinzufügen ...</control>
|
||||||
<control lang="de" key="IDM_ANALYZE_SYSTEM_CRASH">Einen Systemabsturz analysieren...</control>
|
<control lang="de" key="IDM_ANALYZE_SYSTEM_CRASH">Einen Systemabsturz analysieren ...</control>
|
||||||
<control lang="de" key="IDM_BACKUP_VOL_HEADER">Volume-Kopfdaten s&ichern...</control>
|
<control lang="de" key="IDM_BACKUP_VOL_HEADER">Volume-Kopfdaten s&ichern ...</control>
|
||||||
<control lang="de" key="IDM_BENCHMARK">&Benchmark-Test...</control>
|
<control lang="de" key="IDM_BENCHMARK">&Benchmark-Test ...</control>
|
||||||
<control lang="de" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Algorithmus für &Kopfdatenschlüsselberechnung ändern...</control>
|
<control lang="de" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Algorithmus für &Kopfdatenschlüsselberechnung ändern ...</control>
|
||||||
<control lang="de" key="IDM_CHANGE_PASSWORD">Volume-&Passwort ändern...</control>
|
<control lang="de" key="IDM_CHANGE_PASSWORD">Volume-&Passwort ändern ...</control>
|
||||||
<control lang="de" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Algorithmus für Kopfdatenschlüsselberechnung ändern...</control>
|
<control lang="de" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Algorithmus für Kopfdatenschlüsselberechnung ändern ...</control>
|
||||||
<control lang="de" key="IDM_CHANGE_SYS_PASSWORD">Passwort ändern...</control>
|
<control lang="de" key="IDM_CHANGE_SYS_PASSWORD">Passwort ändern ...</control>
|
||||||
<control lang="de" key="IDM_CLEAR_HISTORY">Volume-Ve&rlauf löschen</control>
|
<control lang="de" key="IDM_CLEAR_HISTORY">Volume-Ve&rlauf löschen</control>
|
||||||
<control lang="de" key="IDM_CLOSE_ALL_TOKEN_SESSIONS">Alle Sicherheitstoken-Sitzungen schließen</control>
|
<control lang="de" key="IDM_CLOSE_ALL_TOKEN_SESSIONS">Alle Sicherheitstoken-Sitzungen schließen</control>
|
||||||
<control lang="de" key="IDM_CONTACT">&Kontakt</control>
|
<control lang="de" key="IDM_CONTACT">&Kontakt</control>
|
||||||
<control lang="de" key="IDM_CREATE_HIDDEN_OS">Verstecktes Betriebssystem erstellen...</control>
|
<control lang="de" key="IDM_CREATE_HIDDEN_OS">Verstecktes Betriebssystem erstellen ...</control>
|
||||||
<control lang="de" key="IDM_CREATE_RESCUE_DISK">Rettungsdatenträger erstellen...</control>
|
<control lang="de" key="IDM_CREATE_RESCUE_DISK">Rettungsdatenträger erstellen ...</control>
|
||||||
<control lang="de" key="IDM_CREATE_VOLUME">&Neues Volume erstellen...</control>
|
<control lang="de" key="IDM_CREATE_VOLUME">&Neues Volume erstellen ...</control>
|
||||||
<control lang="de" key="IDM_DECRYPT_NONSYS_VOL">Dauerhaft entschlüsseln...</control>
|
<control lang="de" key="IDM_DECRYPT_NONSYS_VOL">Dauerhaft entschlüsseln ...</control>
|
||||||
<control lang="de" key="IDM_DEFAULT_KEYFILES">&Standardschlüsseldateien...</control>
|
<control lang="de" key="IDM_DEFAULT_KEYFILES">&Standardschlüsseldateien ...</control>
|
||||||
<control lang="de" key="IDM_DEFAULT_MOUNT_PARAMETERS">Standardparameter beim Einbinden...</control>
|
<control lang="de" key="IDM_DEFAULT_MOUNT_PARAMETERS">Standardparameter beim Einbinden ...</control>
|
||||||
<control lang="de" key="IDM_DONATE">Jetzt spenden...</control>
|
<control lang="de" key="IDM_DONATE">Jetzt spenden...</control>
|
||||||
<control lang="de" key="IDM_ENCRYPT_SYSTEM_DEVICE">System-Partition/Laufwerk verschlüsseln...</control>
|
<control lang="de" key="IDM_ENCRYPT_SYSTEM_DEVICE">System-Partition/Laufwerk verschlüsseln ...</control>
|
||||||
<control lang="de" key="IDM_FAQ">Häufig gestellte &Fragen (FAQ)</control>
|
<control lang="de" key="IDM_FAQ">Häufig gestellte &Fragen (FAQ)</control>
|
||||||
<control lang="de" key="IDM_HELP">&Benutzerhandbuch</control>
|
<control lang="de" key="IDM_HELP">&Benutzerhandbuch</control>
|
||||||
<control lang="de" key="IDM_HOMEPAGE">Webseite</control>
|
<control lang="de" key="IDM_HOMEPAGE">Webseite</control>
|
||||||
<control lang="de" key="IDM_HOTKEY_SETTINGS">&Tastenkombinationen...</control>
|
<control lang="de" key="IDM_HOTKEY_SETTINGS">&Tastenkombinationen ...</control>
|
||||||
<control lang="de" key="IDM_KEYFILE_GENERATOR">&Schlüsseldatei(en) generieren</control>
|
<control lang="de" key="IDM_KEYFILE_GENERATOR">&Schlüsseldatei(en) generieren</control>
|
||||||
<control lang="de" key="IDM_LANGUAGE">&Sprache...</control>
|
<control lang="de" key="IDM_LANGUAGE">&Sprache ...</control>
|
||||||
<control lang="de" key="IDM_LICENSE">&Lizenzvereinbarung</control>
|
<control lang="de" key="IDM_LICENSE">&Lizenzvereinbarung</control>
|
||||||
<control lang="de" key="IDM_MANAGE_TOKEN_KEYFILES">Sicherheitstoken-Schlüsseldateien verwalten...</control>
|
<control lang="de" key="IDM_MANAGE_TOKEN_KEYFILES">Sicherheitstoken-Schlüsseldateien verwalten ...</control>
|
||||||
<control lang="de" key="IDM_MOUNTALL">&Alle Datenträger-Volumes automatisch einbinden</control>
|
<control lang="de" key="IDM_MOUNTALL">&Alle Datenträger-Volumes automatisch einbinden</control>
|
||||||
<control lang="de" key="IDM_MOUNT_FAVORITE_VOLUMES">&Favoriten einbinden</control>
|
<control lang="de" key="IDM_MOUNT_FAVORITE_VOLUMES">&Favoriten einbinden</control>
|
||||||
<control lang="de" key="IDM_MOUNT_SYSENC_PART_WITHOUT_PBA">Ohne Prä-Boot-&Authentifikation einbinden...</control>
|
<control lang="de" key="IDM_MOUNT_SYSENC_PART_WITHOUT_PBA">Ohne Prä-Boot-&Authentifikation einbinden ...</control>
|
||||||
<control lang="de" key="IDM_MOUNT_VOLUME">Volume &einbinden</control>
|
<control lang="de" key="IDM_MOUNT_VOLUME">Volume &einbinden</control>
|
||||||
<control lang="de" key="IDM_MOUNT_VOLUME_OPTIONS">Volume einbinden (mit &Optionen)</control>
|
<control lang="de" key="IDM_MOUNT_VOLUME_OPTIONS">Volume einbinden (mit &Optionen)</control>
|
||||||
<control lang="de" key="IDM_NEWS">&Neuigkeiten</control>
|
<control lang="de" key="IDM_NEWS">&Neuigkeiten</control>
|
||||||
<control lang="de" key="IDM_ONLINE_HELP">Online-&Hilfe</control>
|
<control lang="de" key="IDM_ONLINE_HELP">Online-&Hilfe</control>
|
||||||
<control lang="de" key="IDM_ONLINE_TUTORIAL">&Anleitung für Anfänger</control>
|
<control lang="de" key="IDM_ONLINE_TUTORIAL">&Anleitung für Anfänger</control>
|
||||||
<control lang="de" key="IDM_ORGANIZE_FAVORITES">Favoriten-Volumes Einstellungen...</control>
|
<control lang="de" key="IDM_ORGANIZE_FAVORITES">Favoriten-Volumes Einstellungen ...</control>
|
||||||
<control lang="de" key="IDM_ORGANIZE_SYSTEM_FAVORITES">Systemfavoriten-Volumes Einstellungen...</control>
|
<control lang="de" key="IDM_ORGANIZE_SYSTEM_FAVORITES">Systemfavoriten-Volumes Einstellungen ...</control>
|
||||||
<control lang="de" key="IDM_PERFORMANCE_SETTINGS">Leistung/Treiberkonfiguration</control>
|
<control lang="de" key="IDM_PERFORMANCE_SETTINGS">Leistung/Treiberkonfiguration</control>
|
||||||
<control lang="de" key="IDM_PERMANENTLY_DECRYPT_SYS">System-Partition/Laufwerk dauerhaft entschlüsseln</control>
|
<control lang="de" key="IDM_PERMANENTLY_DECRYPT_SYS">System-Partition/Laufwerk dauerhaft entschlüsseln</control>
|
||||||
<control lang="de" key="IDM_PREFERENCES">&Voreinstellungen...</control>
|
<control lang="de" key="IDM_PREFERENCES">&Voreinstellungen ...</control>
|
||||||
<control lang="de" key="IDM_REFRESH_DRIVE_LETTERS">&Laufwerksbuchstaben aktualisieren</control>
|
<control lang="de" key="IDM_REFRESH_DRIVE_LETTERS">&Laufwerksbuchstaben aktualisieren</control>
|
||||||
<control lang="de" key="IDM_REMOVE_ALL_KEYFILES_FROM_VOL">&Alle Schlüsseldateien vom Volume entfernen...</control>
|
<control lang="de" key="IDM_REMOVE_ALL_KEYFILES_FROM_VOL">&Alle Schlüsseldateien vom Volume entfernen ...</control>
|
||||||
<control lang="de" key="IDM_RESTORE_VOL_HEADER">Volume-Kopfdaten &wiederherstellen...</control>
|
<control lang="de" key="IDM_RESTORE_VOL_HEADER">Volume-Kopfdaten &wiederherstellen ...</control>
|
||||||
<control lang="de" key="IDM_RESUME_INTERRUPTED_PROC">Unterbrochenen Prozess fortsetzen</control>
|
<control lang="de" key="IDM_RESUME_INTERRUPTED_PROC">Unterbrochenen Prozess fortsetzen</control>
|
||||||
<control lang="de" key="IDM_SELECT_DEVICE">Datent&räger oder Partition auswählen...</control>
|
<control lang="de" key="IDM_SELECT_DEVICE">Datent&räger oder Partition auswählen ...</control>
|
||||||
<control lang="de" key="IDM_SELECT_FILE">&Datei auswählen...</control>
|
<control lang="de" key="IDM_SELECT_FILE">&Datei auswählen ...</control>
|
||||||
<control lang="de" key="IDM_SYSENC_RESUME">Unterbrochenen Vorgang fortsetzen</control>
|
<control lang="de" key="IDM_SYSENC_RESUME">Unterbrochenen Vorgang fortsetzen</control>
|
||||||
<control lang="de" key="IDM_SYSENC_SETTINGS">Systemverschlüsselung...</control>
|
<control lang="de" key="IDM_SYSENC_SETTINGS">Systemverschlüsselung ...</control>
|
||||||
<control lang="de" key="IDM_SYSTEM_ENCRYPTION_STATUS">Eigenschaften...</control>
|
<control lang="de" key="IDM_SYSTEM_ENCRYPTION_STATUS">Eigenschaften ...</control>
|
||||||
<control lang="de" key="IDM_SYS_ENC_SETTINGS">Einstellungen...</control>
|
<control lang="de" key="IDM_SYS_ENC_SETTINGS">Einstellungen ...</control>
|
||||||
<control lang="de" key="IDM_SYS_FAVORITES_SETTINGS">Systemfavoriten-Volumes...</control>
|
<control lang="de" key="IDM_SYS_FAVORITES_SETTINGS">Systemfavoriten-Volumes ...</control>
|
||||||
<control lang="de" key="IDM_TC_DOWNLOADS">&Downloads</control>
|
<control lang="de" key="IDM_TC_DOWNLOADS">&Downloads</control>
|
||||||
<control lang="de" key="IDM_TEST_VECTORS">&Testvektoren...</control>
|
<control lang="de" key="IDM_TEST_VECTORS">&Testvektoren ...</control>
|
||||||
<control lang="de" key="IDM_TOKEN_PREFERENCES">Sicherheitstokens...</control>
|
<control lang="de" key="IDM_TOKEN_PREFERENCES">Sicherheitstokens ...</control>
|
||||||
<control lang="de" key="IDM_TRAVELER">Traveler-Disk-Installation...</control>
|
<control lang="de" key="IDM_TRAVELER">Traveler-Disk-Installation ...</control>
|
||||||
<control lang="de" key="IDM_UNMOUNTALL">A&lle Volumes trennen</control>
|
<control lang="de" key="IDM_UNMOUNTALL">A&lle Volumes trennen</control>
|
||||||
<control lang="de" key="IDM_UNMOUNT_VOLUME">Volume &trennen</control>
|
<control lang="de" key="IDM_UNMOUNT_VOLUME">Volume &trennen</control>
|
||||||
<control lang="de" key="IDM_VERIFY_RESCUE_DISK">Rettungsdatenträger überprüfen</control>
|
<control lang="de" key="IDM_VERIFY_RESCUE_DISK">Rettungsdatenträger überprüfen</control>
|
||||||
@@ -293,7 +293,7 @@
|
|||||||
<control lang="de" key="IDT_NEW">Neu</control>
|
<control lang="de" key="IDT_NEW">Neu</control>
|
||||||
<control lang="de" key="IDT_NEW_PASSWORD">Passwort:</control>
|
<control lang="de" key="IDT_NEW_PASSWORD">Passwort:</control>
|
||||||
<control lang="de" key="IDT_PARALLELIZATION_OPTIONS">Thread-basierte Parallelisierung</control>
|
<control lang="de" key="IDT_PARALLELIZATION_OPTIONS">Thread-basierte Parallelisierung</control>
|
||||||
<control lang="de" key="IDT_PKCS11_LIB_PATH">Pfad der PKCS #11 Bibliothek</control>
|
<control lang="de" key="IDT_PKCS11_LIB_PATH">Pfad der PKCS #11-Bibliothek</control>
|
||||||
<control lang="de" key="IDT_PKCS5_PRF">PKCS-5 PRF:</control>
|
<control lang="de" key="IDT_PKCS5_PRF">PKCS-5 PRF:</control>
|
||||||
<control lang="de" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
|
<control lang="de" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
|
||||||
<control lang="de" key="IDT_PW_CACHE_OPTIONS">Passwort-Cache (im Speicher des VeraCrypt-Treibers)</control>
|
<control lang="de" key="IDT_PW_CACHE_OPTIONS">Passwort-Cache (im Speicher des VeraCrypt-Treibers)</control>
|
||||||
@@ -304,21 +304,21 @@
|
|||||||
<control lang="de" key="IDT_TRAVEL_ROOT">Traveler-Disk-Dateien erstellen in (Traveler-Disk-Stammverzeichnis):</control>
|
<control lang="de" key="IDT_TRAVEL_ROOT">Traveler-Disk-Dateien erstellen in (Traveler-Disk-Stammverzeichnis):</control>
|
||||||
<control lang="de" key="IDT_VOLUME">Volume</control>
|
<control lang="de" key="IDT_VOLUME">Volume</control>
|
||||||
<control lang="de" key="IDT_WINDOWS_RELATED_SETTING">Windows</control>
|
<control lang="de" key="IDT_WINDOWS_RELATED_SETTING">Windows</control>
|
||||||
<control lang="de" key="IDC_ADD_KEYFILE_PATH">&Pfad...</control>
|
<control lang="de" key="IDC_ADD_KEYFILE_PATH">&Pfad ...</control>
|
||||||
<control lang="de" key="IDC_AUTO">&Auto-Test für alle</control>
|
<control lang="de" key="IDC_AUTO">&Auto-Test für alle</control>
|
||||||
<control lang="de" key="IDC_CONTINUE">&Fortsetzen</control>
|
<control lang="de" key="IDC_CONTINUE">&Fortsetzen</control>
|
||||||
<control lang="de" key="IDC_DECRYPT">&Entschlüsseln</control>
|
<control lang="de" key="IDC_DECRYPT">&Entschlüsseln</control>
|
||||||
<control lang="de" key="IDC_DELETE">&Löschen</control>
|
<control lang="de" key="IDC_DELETE">&Löschen</control>
|
||||||
<control lang="de" key="IDC_ENCRYPT">&Verschlüsseln</control>
|
<control lang="de" key="IDC_ENCRYPT">&Verschlüsseln</control>
|
||||||
<control lang="de" key="IDC_EXPORT">&Exportieren...</control>
|
<control lang="de" key="IDC_EXPORT">&Exportieren ...</control>
|
||||||
<control lang="de" key="IDC_GENERATE_AND_SAVE_KEYFILE">Schlüsseldatei(en) &erstellen und speichern</control>
|
<control lang="de" key="IDC_GENERATE_AND_SAVE_KEYFILE">Schlüsseldatei(en) &erstellen und speichern</control>
|
||||||
<control lang="de" key="IDC_GENERATE_KEYFILE">Schlüsseldatei(en) &generieren</control>
|
<control lang="de" key="IDC_GENERATE_KEYFILE">Schlüsseldatei(en) &generieren</control>
|
||||||
<control lang="de" key="IDC_GET_LANG_PACKS">Sprachpaket herunterladen</control>
|
<control lang="de" key="IDC_GET_LANG_PACKS">Sprachpaket herunterladen</control>
|
||||||
<control lang="de" key="IDC_HW_AES_LABEL_LINK">Hardwarebeschleunigtes AES:</control>
|
<control lang="de" key="IDC_HW_AES_LABEL_LINK">Hardwarebeschleunigtes AES:</control>
|
||||||
<control lang="de" key="IDC_IMPORT_KEYFILE">&Schl.dateien auf den Token importieren...</control>
|
<control lang="de" key="IDC_IMPORT_KEYFILE">&Schl.dateien auf den Token importieren ...</control>
|
||||||
<control lang="de" key="IDC_KEYADD">Dateien &hinzuf.</control>
|
<control lang="de" key="IDC_KEYADD">Dateien &hinzuf.</control>
|
||||||
<control lang="de" key="IDC_KEYFILES_ENABLE_HIDVOL_PROT">Schlüsselda&teien verw.</control>
|
<control lang="de" key="IDC_KEYFILES_ENABLE_HIDVOL_PROT">Schlüsselda&teien verw.</control>
|
||||||
<control lang="de" key="IDC_KEYFILES_HIDVOL_PROT">&Schlüsseldat...</control>
|
<control lang="de" key="IDC_KEYFILES_HIDVOL_PROT">&Schlüsseldat ...</control>
|
||||||
<control lang="de" key="IDC_KEYREMOVE">Ent&fernen</control>
|
<control lang="de" key="IDC_KEYREMOVE">Ent&fernen</control>
|
||||||
<control lang="de" key="IDC_KEYREMOVEALL">&Alle entfernen</control>
|
<control lang="de" key="IDC_KEYREMOVEALL">&Alle entfernen</control>
|
||||||
<control lang="de" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Was bedeutet „Schützen von verstecktem Volume“?</control>
|
<control lang="de" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Was bedeutet „Schützen von verstecktem Volume“?</control>
|
||||||
@@ -370,8 +370,8 @@
|
|||||||
<control lang="de" key="IDT_SECONDARY_KEY">Sekundärer Schlüssel (hexadezimal)</control>
|
<control lang="de" key="IDT_SECONDARY_KEY">Sekundärer Schlüssel (hexadezimal)</control>
|
||||||
<control lang="de" key="IDT_SECURITY_TOKEN">Sicherheitstoken:</control>
|
<control lang="de" key="IDT_SECURITY_TOKEN">Sicherheitstoken:</control>
|
||||||
<control lang="de" key="IDT_SORT_METHOD">Sortiermethode:</control>
|
<control lang="de" key="IDT_SORT_METHOD">Sortiermethode:</control>
|
||||||
<control lang="de" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Bitte warten. Dieser Vorgang kann sehr lange dauern...</control>
|
<control lang="de" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Bitte warten. Dieser Vorgang kann sehr lange dauern ...</control>
|
||||||
<control lang="de" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Bitte warten...\nDieser Prozess kann sehr lange dauern und VeraCrypt kann vorübergehend hängen bleiben.</control>
|
<control lang="de" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Bitte warten ...\nDieser Prozess kann sehr lange dauern und VeraCrypt kann vorübergehend hängen bleiben.</control>
|
||||||
<control lang="de" key="IDT_TEST_BLOCK_NUMBER">Block Nummer:</control>
|
<control lang="de" key="IDT_TEST_BLOCK_NUMBER">Block Nummer:</control>
|
||||||
<control lang="de" key="IDT_TEST_CIPHERTEXT">Chiffretext (hexadezimal)</control>
|
<control lang="de" key="IDT_TEST_CIPHERTEXT">Chiffretext (hexadezimal)</control>
|
||||||
<control lang="de" key="IDT_TEST_DATA_UNIT_NUMBER">Dateneinheitnummer (64 Bit hexadezimal, die Größe einer Dateneinheit beträgt 512 Byte)</control>
|
<control lang="de" key="IDT_TEST_DATA_UNIT_NUMBER">Dateneinheitnummer (64 Bit hexadezimal, die Größe einer Dateneinheit beträgt 512 Byte)</control>
|
||||||
@@ -595,7 +595,7 @@
|
|||||||
<string lang="de" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt kann das Volume nicht sperren weil es vom System oder von Programmen verwendet wird (es könnte offene Dateien auf dem Volume geben).\n\nMöchten sie die Trennung auf dem Volume erzwingen?</string>
|
<string lang="de" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt kann das Volume nicht sperren weil es vom System oder von Programmen verwendet wird (es könnte offene Dateien auf dem Volume geben).\n\nMöchten sie die Trennung auf dem Volume erzwingen?</string>
|
||||||
<string lang="de" key="OPEN_VOL_TITLE">VeraCrypt-Volume auswählen</string>
|
<string lang="de" key="OPEN_VOL_TITLE">VeraCrypt-Volume auswählen</string>
|
||||||
<string lang="de" key="OPEN_TITLE">Pfad- und Dateiname angeben</string>
|
<string lang="de" key="OPEN_TITLE">Pfad- und Dateiname angeben</string>
|
||||||
<string lang="de" key="SELECT_PKCS11_MODULE">Wähle PKCS #11 Bibliothek</string>
|
<string lang="de" key="SELECT_PKCS11_MODULE">PKCS #11-Bibliothek auswählen</string>
|
||||||
<string lang="de" key="OUTOFMEMORY">Kein Speicher mehr vorhanden</string>
|
<string lang="de" key="OUTOFMEMORY">Kein Speicher mehr vorhanden</string>
|
||||||
<string lang="de" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">WICHTIG: Wir empfehlen unerfahrenen Nutzern dringend eine VeraCrypt-Containerdatei auf der ausgewählten Partition/Laufwerk zu erstellen anstatt zu versuchen die gesamte Partition/Laufwerk zu verschlüsseln.\n\nWenn Sie eine VeraCrypt-Containerdatei erstellen besteht zum Beispiel (im Gegensatz zum Verschlüsseln einer ganzen Partition oder eines Laufwerks) keine Gefahr eine große Zahl von Dateien zu zerstören. Bitte beachten Sie, dass eine VeraCrypt-Containerdatei (obwohl sie eine virtuelle verschlüsselte Festplatte enthält) sich genau wie eine normale Datei verhält (sie kann z.B. kopiert, verschoben oder gelöscht werden). Für mehr Informationen siehe Kapitel „Beginner's Tutorial“ im VeraCrypt Benutzerhandbuch.\n\nSind Sie sicher, dass Sie die gesamte Partition / das gesamte Laufwerk verschlüsseln möchten?</string>
|
<string lang="de" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">WICHTIG: Wir empfehlen unerfahrenen Nutzern dringend eine VeraCrypt-Containerdatei auf der ausgewählten Partition/Laufwerk zu erstellen anstatt zu versuchen die gesamte Partition/Laufwerk zu verschlüsseln.\n\nWenn Sie eine VeraCrypt-Containerdatei erstellen besteht zum Beispiel (im Gegensatz zum Verschlüsseln einer ganzen Partition oder eines Laufwerks) keine Gefahr eine große Zahl von Dateien zu zerstören. Bitte beachten Sie, dass eine VeraCrypt-Containerdatei (obwohl sie eine virtuelle verschlüsselte Festplatte enthält) sich genau wie eine normale Datei verhält (sie kann z.B. kopiert, verschoben oder gelöscht werden). Für mehr Informationen siehe Kapitel „Beginner's Tutorial“ im VeraCrypt Benutzerhandbuch.\n\nSind Sie sicher, dass Sie die gesamte Partition / das gesamte Laufwerk verschlüsseln möchten?</string>
|
||||||
<string lang="de" key="OVERWRITEPROMPT">WARNUNG: Die Datei „%s“ existiert bereits!\n\nWICHTIG: VERACRYPT WIRD DIE DATEI NICHT VERSCHLÜSSELN SONDERN LÖSCHEN. Sind Sie sicher, dass Sie die Datei löschen möchten und mit dem neuen VeraCrypt-Container ersetzen möchten?</string>
|
<string lang="de" key="OVERWRITEPROMPT">WARNUNG: Die Datei „%s“ existiert bereits!\n\nWICHTIG: VERACRYPT WIRD DIE DATEI NICHT VERSCHLÜSSELN SONDERN LÖSCHEN. Sind Sie sicher, dass Sie die Datei löschen möchten und mit dem neuen VeraCrypt-Container ersetzen möchten?</string>
|
||||||
@@ -786,8 +786,8 @@
|
|||||||
<string lang="de" key="MEAN">Mittelwert</string>
|
<string lang="de" key="MEAN">Mittelwert</string>
|
||||||
<string lang="de" key="DRIVE">LW</string>
|
<string lang="de" key="DRIVE">LW</string>
|
||||||
<string lang="de" key="SIZE">Größe</string>
|
<string lang="de" key="SIZE">Größe</string>
|
||||||
<string lang="de" key="ENCRYPTION_ALGORITHM">Verschlüsselungsalg.</string>
|
<string lang="de" key="ENCRYPTION_ALGORITHM">Verschlüsselungsalgorithmus</string>
|
||||||
<string lang="de" key="ENCRYPTION_ALGORITHM_LV">Verschlüsselungsalg.</string>
|
<string lang="de" key="ENCRYPTION_ALGORITHM_LV">Verschlüsselungsalgorithmus</string>
|
||||||
<string lang="de" key="TYPE">Typ</string>
|
<string lang="de" key="TYPE">Typ</string>
|
||||||
<string lang="de" key="VALUE">Wert</string>
|
<string lang="de" key="VALUE">Wert</string>
|
||||||
<string lang="de" key="PROPERTY">Eigenschaft</string>
|
<string lang="de" key="PROPERTY">Eigenschaft</string>
|
||||||
@@ -847,7 +847,7 @@
|
|||||||
<string lang="de" key="EXTRACTION_FINISHED_INFO">Alle Dateien wurden erfolgreich in das angegebene Verzeichnis entpackt.</string>
|
<string lang="de" key="EXTRACTION_FINISHED_INFO">Alle Dateien wurden erfolgreich in das angegebene Verzeichnis entpackt.</string>
|
||||||
<string lang="de" key="AUTO_FOLDER_CREATION">Wenn der angegebene Ordner nicht existiert wird er automatisch erstellt.</string>
|
<string lang="de" key="AUTO_FOLDER_CREATION">Wenn der angegebene Ordner nicht existiert wird er automatisch erstellt.</string>
|
||||||
<string lang="de" key="SETUP_UPGRADE_DESTINATION">Die VeraCrypt-Aktualisierung wird am selben Ort installiert an dem VeraCrypt bisher installiert ist. Wenn Sie einen anderen Installationsort wählen möchten, dann deinstallieren Sie VeraCrypt bitte zuerst.</string>
|
<string lang="de" key="SETUP_UPGRADE_DESTINATION">Die VeraCrypt-Aktualisierung wird am selben Ort installiert an dem VeraCrypt bisher installiert ist. Wenn Sie einen anderen Installationsort wählen möchten, dann deinstallieren Sie VeraCrypt bitte zuerst.</string>
|
||||||
<string lang="de" key="AFTER_UPGRADE_RELEASE_NOTES">Möchten Sie die „Release Notes“ zu der aktuellen (stabilen) VeraCrypt-Version lesen?</string>
|
<string lang="de" key="AFTER_UPGRADE_RELEASE_NOTES">Möchten Sie die „Versionshinweise“ zu der aktuellen (stabilen) VeraCrypt-Version lesen?</string>
|
||||||
<string lang="de" key="AFTER_INSTALL_TUTORIAL">Falls Sie VeraCrypt noch nie zuvor verwendet haben, ist es empfehlenswert das Kapitel „Beginner's Tutorial“ im VeraCrypt-Benutzerhandbuch zu lesen. Möchten Sie das Tutorial ansehen?</string>
|
<string lang="de" key="AFTER_INSTALL_TUTORIAL">Falls Sie VeraCrypt noch nie zuvor verwendet haben, ist es empfehlenswert das Kapitel „Beginner's Tutorial“ im VeraCrypt-Benutzerhandbuch zu lesen. Möchten Sie das Tutorial ansehen?</string>
|
||||||
<string lang="de" key="SELECT_AN_ACTION">Wählen Sie eine der folgenden Aktionen aus:</string>
|
<string lang="de" key="SELECT_AN_ACTION">Wählen Sie eine der folgenden Aktionen aus:</string>
|
||||||
<string lang="de" key="REPAIR_REINSTALL">Reparatur/Neuinstallation</string>
|
<string lang="de" key="REPAIR_REINSTALL">Reparatur/Neuinstallation</string>
|
||||||
@@ -1261,18 +1261,18 @@
|
|||||||
<string lang="de" key="BOOT_LOADER_UPGRADE_FAILED">Es ist ein Fehler beim Aktualisieren des VeraCrypt-Bootloaders aufgetreten.</string>
|
<string lang="de" key="BOOT_LOADER_UPGRADE_FAILED">Es ist ein Fehler beim Aktualisieren des VeraCrypt-Bootloaders aufgetreten.</string>
|
||||||
<string lang="de" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt konnte die reale Größe des Systemlaufwerkes nicht ermitteln und folglich wird die Größe, die das Betriebssystem angibt verwendet (welche kleiner sein kann als die reale Größe). Beachten Sie auch, dass dies kein Fehler in VeraCrypt ist.</string>
|
<string lang="de" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt konnte die reale Größe des Systemlaufwerkes nicht ermitteln und folglich wird die Größe, die das Betriebssystem angibt verwendet (welche kleiner sein kann als die reale Größe). Beachten Sie auch, dass dies kein Fehler in VeraCrypt ist.</string>
|
||||||
<string lang="de" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">WARNUNG: Möglicherweise hat VeraCrypt bereits versucht versteckte Sektoren auf diesem Systemlaufwerk zu erkennen. Wenn Sie Probleme während des vorherigen Erkennungsprozesses hatten, so können Sie diese vermeiden, indem Sie diesmal die Erkennung von versteckten Sektoren überspringen. Bedenken Sie dabei, dass VeraCrypt die vom Betriebssystem angegebene Größe verwendet (die vielleicht kleiner ist als die tatsächliche Größe).\n\nBeachten Sie, das Problem wurde nicht wegen eines Fehlers in VeraCrypt verursacht.</string>
|
<string lang="de" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">WARNUNG: Möglicherweise hat VeraCrypt bereits versucht versteckte Sektoren auf diesem Systemlaufwerk zu erkennen. Wenn Sie Probleme während des vorherigen Erkennungsprozesses hatten, so können Sie diese vermeiden, indem Sie diesmal die Erkennung von versteckten Sektoren überspringen. Bedenken Sie dabei, dass VeraCrypt die vom Betriebssystem angegebene Größe verwendet (die vielleicht kleiner ist als die tatsächliche Größe).\n\nBeachten Sie, das Problem wurde nicht wegen eines Fehlers in VeraCrypt verursacht.</string>
|
||||||
<string lang="de" key="SKIP_HIDDEN_SECTOR_DETECTION">Die Erkennung von versteckten Sektoren überspringen (die Größe die das Betriebssystem angibt verwenden)</string>
|
<string lang="de" key="SKIP_HIDDEN_SECTOR_DETECTION">Die Erkennung von versteckten Sektoren überspringen (die vom Betriebssystem angegebene Größe verwenden)</string>
|
||||||
<string lang="de" key="RETRY_HIDDEN_SECTOR_DETECTION">Nochmals versteckte Sektoren suchen</string>
|
<string lang="de" key="RETRY_HIDDEN_SECTOR_DETECTION">Nochmals versteckte Sektoren suchen</string>
|
||||||
<string lang="de" key="ENABLE_BAD_SECTOR_ZEROING">Fehler: Der Inhalt von mindestens einem Sektor des Laufwerks konnte nicht gelesen werden (zum Beispiel wegen eines Hardware Fehlers).\n\nDer Vorgang der „in-place“-Verschlüsselung kann nur fortgesetzt werden, wenn diese Sektoren wieder lesbar sind. VeraCrypt kann versuchen, diese Sektoren wieder lesbar zu machen, indem sie mit Nullen überschrieben werden (diese werden dann mit verschlüsselt). Beachten Sie dabei bitte, dass alle in den beschädigten Sektoren vorhandenen Daten bei diesem Vorgang verloren gehen. Wenn Sie dies vermeiden möchten, dann können Sie versuchen die beschädigten Daten mit einem Dritt-Anbieter Programm wiederherzustellen.\n\nHinweis: Im Falle eines Hardware Fehlers (im Gegensatz zu beschädigten Daten und Prüfsummenfehlern) könnten die Laufwerke die beschädigten Sektoren intern schützen, so dass die darin enthaltenen Daten unverschlüsselt auf der Festplatte bleiben.\n\nMöchten Sie, dass VeraCrypt die unlesbaren Sektoren mit Nullen überschreibt?</string>
|
<string lang="de" key="ENABLE_BAD_SECTOR_ZEROING">Fehler: Der Inhalt von mindestens einem Sektor des Laufwerks konnte nicht gelesen werden (zum Beispiel wegen eines Hardware Fehlers).\n\nDer Vorgang der „in-place“-Verschlüsselung kann nur fortgesetzt werden, wenn diese Sektoren wieder lesbar sind. VeraCrypt kann versuchen, diese Sektoren wieder lesbar zu machen, indem sie mit Nullen überschrieben werden (diese werden dann mit verschlüsselt). Beachten Sie dabei bitte, dass alle in den beschädigten Sektoren vorhandenen Daten bei diesem Vorgang verloren gehen. Wenn Sie dies vermeiden möchten, dann können Sie versuchen die beschädigten Daten mit einem Dritt-Anbieter Programm wiederherzustellen.\n\nHinweis: Im Falle eines Hardware Fehlers (im Gegensatz zu beschädigten Daten und Prüfsummenfehlern) könnten die Laufwerke die beschädigten Sektoren intern schützen, so dass die darin enthaltenen Daten unverschlüsselt auf der Festplatte bleiben.\n\nMöchten Sie, dass VeraCrypt die unlesbaren Sektoren mit Nullen überschreibt?</string>
|
||||||
<string lang="de" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Fehler: Der Inhalt von mindestens einem Sektor des Laufwerks konnte nicht gelesen werden (zum Beispiel wegen eines Hardware Fehlers).\n\nUm den Vorgang fortsetzen zu können, muss VeraCrypt den Inhalt dieser Sektoren verwerfen (der Inhalt wird mit Pseudo-Zufallsinhalten gefüllt). Beachten Sie bitte dass Sie auch versuchen können die beschädigten Daten mit einem Dritt-Anbieter Programm wiederherzustellen.\n\nMöchten Sie, dass VeraCrypt die unlesbaren Sektoren verwirft?</string>
|
<string lang="de" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Fehler: Der Inhalt von mindestens einem Sektor des Laufwerks konnte nicht gelesen werden (zum Beispiel wegen eines Hardware Fehlers).\n\nUm den Vorgang fortsetzen zu können, muss VeraCrypt den Inhalt dieser Sektoren verwerfen (der Inhalt wird mit Pseudo-Zufallsinhalten gefüllt). Beachten Sie bitte dass Sie auch versuchen können die beschädigten Daten mit einem Dritt-Anbieter Programm wiederherzustellen.\n\nMöchten Sie, dass VeraCrypt die unlesbaren Sektoren verwirft?</string>
|
||||||
<string lang="de" key="ZEROED_BAD_SECTOR_COUNT">Hinweis: VeraCrypt hat den Inhalt der %I64d nicht lesbaren Sektoren (%s) mit verschlüsselten NULL-Textblöcken ersetzt.</string>
|
<string lang="de" key="ZEROED_BAD_SECTOR_COUNT">Hinweis: VeraCrypt hat den Inhalt der %I64d nicht lesbaren Sektoren (%s) mit verschlüsselten NULL-Textblöcken ersetzt.</string>
|
||||||
<string lang="de" key="SKIPPED_BAD_SECTOR_COUNT">Hinweis: VeraCrypt hat den Inhalt der %I64d nicht lesbaren Sektoren (%s) mit zufälligen Daten ersetzt.</string>
|
<string lang="de" key="SKIPPED_BAD_SECTOR_COUNT">Hinweis: VeraCrypt hat den Inhalt der %I64d nicht lesbaren Sektoren (%s) mit zufälligen Daten ersetzt.</string>
|
||||||
<string lang="de" key="ENTER_TOKEN_PASSWORD">Passwort/PIN eingeben für Token „%s“:</string>
|
<string lang="de" key="ENTER_TOKEN_PASSWORD">Passwort/PIN eingeben für Token „%s“:</string>
|
||||||
<string lang="de" key="PKCS11_LIB_LOCATION_HELP">Damit VeraCrypt auf einen Token/Smart Card zugreifen kann, müssen Sie zuerst eine PKCS #11 Software Bibliothek installieren. Diese kann mit dem Gerät ausgeliefert sein o. sie steht zum Herunterladen auf der Webswite des Herstellers oder eines Drittherstellers bereit.\n\nNachdem Sie die Bibliothek installiert haben, können Sie diese durch klicken auf „Wähle Bibliothek ...“ selber wählen oder Sie können diese von VeraCrypt durch klicken auf „Bibliothek automatisch erkennen“ suchen und auswählen lassen (nur das Windows Systemverzeichnis wird durchsucht).</string>
|
<string lang="de" key="PKCS11_LIB_LOCATION_HELP">Damit VeraCrypt auf eine(n) Token/Smart Card zugreifen kann, müssen Sie zuerst eine PKCS #11-Softwarebibliothek installieren. Diese kann mit dem Gerät ausgeliefert sein oder sie steht zum Herunterladen auf der Webseite des Herstellers oder eines Drittherstellers bereit.\n\nNachdem Sie die Bibliothek installiert haben, können Sie diese durch klicken auf „Bibliothek auswählen ...“ selber auswählen oder Sie können diese von VeraCrypt durch klicken auf „Bibliothek automatisch erkennen“ suchen und auswählen lassen (nur das Windows-Systemverzeichnis wird durchsucht).</string>
|
||||||
<string lang="de" key="SELECT_PKCS11_MODULE_HELP">Hinweis: Für den Dateinamen und Speicherort der PKCS #11-Bibliothek, die für Ihren Sicherheitstoken oder Smart Card installiert wurde, lesen Sie bitte die Dokumentation, welche mit dem Token, der Card oder Dritthersteller Software mitgeliefert wurde.\n\nKlicken Sie auf „OK“, um den Pfad und Dateinamen zu wählen.</string>
|
<string lang="de" key="SELECT_PKCS11_MODULE_HELP">Hinweis: Für den Dateinamen und Speicherort der PKCS #11-Bibliothek, die für Ihren Sicherheitstoken oder Smart Card installiert wurde, lesen Sie bitte die Dokumentation, welche mit dem Token, der Card oder Dritthersteller Software mitgeliefert wurde.\n\nKlicken Sie auf „OK“, um den Pfad und Dateinamen zu wählen.</string>
|
||||||
<string lang="de" key="NO_PKCS11_MODULE_SPECIFIED">Um VeraCrypt zu ermöglichen auf einen Sicherheitstoken oder eine Smart-Card zuzugreifen, müssen Sie dafür zuerst eine PKCS #11 Bibliothekssoftware für den Token/die Smart-Card auswählen. Wählen Sie dazu „Einstellungen“ > „Sicherheitstokens ...“.</string>
|
<string lang="de" key="NO_PKCS11_MODULE_SPECIFIED">Um VeraCrypt zu ermöglichen auf einen Sicherheitstoken oder eine Smart-Card zuzugreifen, müssen Sie dafür zuerst eine PKCS #11 Bibliothekssoftware für den Token/die Smart-Card auswählen. Wählen Sie dazu „Einstellungen“ > „Sicherheitstokens ...“.</string>
|
||||||
<string lang="de" key="PKCS11_MODULE_INIT_FAILED">Die PKCS #11 Sicherheitstoken Bibliothek konnte nicht initialisiert werden.\n\nStellen Sie bitte sicher, dass der angegebene Pfad und Dateiname auf eine gültige PKCS # 11-Bibliothek verweist. Um den Pfad und Dateiname für eine PKCS #11-Bibliothek anzugeben, klicken Sie auf „Einstellungen“ > „Sicherheitstokens“.</string>
|
<string lang="de" key="PKCS11_MODULE_INIT_FAILED">Die PKCS #11 Sicherheitstoken-Bibliothek konnte nicht initialisiert werden.\n\nStellen Sie bitte sicher, dass der angegebene Pfad und Dateiname auf eine gültige PKCS # 11-Bibliothek verweist. Um den Pfad und Dateiname für eine PKCS #11-Bibliothek anzugeben, klicken Sie auf „Einstellungen“ > „Sicherheitstokens“.</string>
|
||||||
<string lang="de" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">Es wurde keine PKCS #11-Bibliothek im Windows Systemverzeichnis gefunden.\n\nBitte stellen Sie sicher, dass eine PKCS #11-Bibliothek für Ihren Sicherheitstoken (oder für Ihre Smart Card) installiert ist (solch eine Bibliothek kann mit dem Token/der Smart Card mitgeliefert sein oder zum Herunterladen auf der Webseite des Herstellers oder von anderen Drittherstellern bereitstehen). Wenn sie in einem anderen Verzeichnis installiert ist als im Windows-Verzeichnis, dann klicken Sie auf „Wähle Bibliothek“, um die Bibliothek anzugeben (z.B. im Ordner in dem die Software für den Token/die Smart Card installiert ist).</string>
|
<string lang="de" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">Es wurde keine PKCS #11-Bibliothek im Windows Systemverzeichnis gefunden.\n\nBitte stellen Sie sicher, dass eine PKCS #11-Bibliothek für Ihren Sicherheitstoken (oder für Ihre Smart Card) installiert ist (solch eine Bibliothek kann mit dem Token/der Smart Card mitgeliefert sein oder zum Herunterladen auf der Webseite des Herstellers oder von anderen Drittherstellern bereitstehen). Wenn sie in einem anderen Verzeichnis installiert ist als im Windows-Verzeichnis, dann klicken Sie auf „Bibliothek auswählen ...“, um die Bibliothek anzugeben (z.B. im Ordner in dem die Software für den Token/die Smart Card installiert ist).</string>
|
||||||
<string lang="de" key="NO_TOKENS_FOUND">Kein Sicherheitstoken gefunden.\n\nBitte stellen Sie sicher, dass Ihr Sicherheitstoken mit Ihrem Computer verbunden ist und der richtige Gerätetreiber für Ihren Sicherheitstoken installiert ist.</string>
|
<string lang="de" key="NO_TOKENS_FOUND">Kein Sicherheitstoken gefunden.\n\nBitte stellen Sie sicher, dass Ihr Sicherheitstoken mit Ihrem Computer verbunden ist und der richtige Gerätetreiber für Ihren Sicherheitstoken installiert ist.</string>
|
||||||
<string lang="de" key="TOKEN_KEYFILE_NOT_FOUND">Sicherheitstoken Schlüsseldatei nicht gefunden.</string>
|
<string lang="de" key="TOKEN_KEYFILE_NOT_FOUND">Sicherheitstoken Schlüsseldatei nicht gefunden.</string>
|
||||||
<string lang="de" key="TOKEN_KEYFILE_ALREADY_EXISTS">Eine Sicherheitstoken Schlüsseldatei mit demselben Namen existiert bereits.</string>
|
<string lang="de" key="TOKEN_KEYFILE_ALREADY_EXISTS">Eine Sicherheitstoken Schlüsseldatei mit demselben Namen existiert bereits.</string>
|
||||||
@@ -1282,9 +1282,9 @@
|
|||||||
<string lang="de" key="CKR_PIN_INCORRECT">Passwort für das Sicherheitstoken ist falsch.</string>
|
<string lang="de" key="CKR_PIN_INCORRECT">Passwort für das Sicherheitstoken ist falsch.</string>
|
||||||
<string lang="de" key="CKR_DEVICE_MEMORY">Das Sicherheitstoken hat nicht genug Speicherplatz zur Verfügung um diesen Vorgang durchzuführen.\n\nWenn Sie versuchen eine Schlüsseldatei zu importieren sollten Sie eine kleinere Datei auswählen oder eine von VeraCrypt erstellte Schlüsseldatei benutzen („Extras“ > „Schlüsseldatei(en) generieren“).</string>
|
<string lang="de" key="CKR_DEVICE_MEMORY">Das Sicherheitstoken hat nicht genug Speicherplatz zur Verfügung um diesen Vorgang durchzuführen.\n\nWenn Sie versuchen eine Schlüsseldatei zu importieren sollten Sie eine kleinere Datei auswählen oder eine von VeraCrypt erstellte Schlüsseldatei benutzen („Extras“ > „Schlüsseldatei(en) generieren“).</string>
|
||||||
<string lang="de" key="ALL_TOKEN_SESSIONS_CLOSED">Alle offenen Sicherheitstoken Sitzungen wurden geschlossen.</string>
|
<string lang="de" key="ALL_TOKEN_SESSIONS_CLOSED">Alle offenen Sicherheitstoken Sitzungen wurden geschlossen.</string>
|
||||||
<string lang="de" key="SELECT_TOKEN_KEYFILES">Wähle Sicherheitstoken Schlüsseldateien</string>
|
<string lang="de" key="SELECT_TOKEN_KEYFILES">Sicherheitstoken-Schlüsseldateien auswählen</string>
|
||||||
<string lang="de" key="TOKEN_SLOT_ID">Steckplatz</string>
|
<string lang="de" key="TOKEN_SLOT_ID">Steckplatz</string>
|
||||||
<string lang="de" key="TOKEN_NAME">Token Name</string>
|
<string lang="de" key="TOKEN_NAME">Tokenname</string>
|
||||||
<string lang="de" key="TOKEN_DATA_OBJECT_LABEL">Dateiname</string>
|
<string lang="de" key="TOKEN_DATA_OBJECT_LABEL">Dateiname</string>
|
||||||
<string lang="de" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">WICHTIG: Bitte beachten Sie, dass Prä-Boot-Authentifikationspasswörter stets mit einer Standard US-Tastaturbelegung geschrieben werden. Deshalb kann es unmöglich sein ein Volume, dessen Passwort mit einer anderen Tastaturbelegung erstellt wurde mit einem Prä-Boot-Authentifikationspasswort einzubinden (bitte beachten Sie, dass dies kein VeraCrypt-Fehler ist). Um solch ein Volume mit einem Prä-Boot-Authentifikationspasswort einzubinden, folgen Sie diesen Schritten:\n\n1) Klicken Sie „Datei“ oder „Datenträger“ und wählen Sie das Volume aus.\n2) Wählen Sie „Volumes“ > „Volume-Passwort ändern“.\n3) Geben Sie das derzeitige Passwort für das Volume ein.\n4) Ändern Sie die Tastaturbelegung auf „English (US)“ indem Sie auf das Sprachsymbol in der Windows Taskleiste klicken und „EN English (United States)“ wählen (falls das Symbol nicht angezeigt wird gehen Sie in „Systemsteuerung“ > „Regions- und Sprachoptionen“. Klicken Sie auf „Tastatur ändern“ und wählen Sie „Englisch (US)“).\n5) Geben Sie nun in VeraCrypt das neue Prä-Boot-Authentifikationspasswort ein.\n6) Bestätigen Sie das neue Prä-Boot-Authentifikationspasswort und klicken Sie „OK“.\n7)ACHTUNG: Bitte denken Sie daran, dass das Volume Passwort IMMER mit der US-Tastaturbelegung eingegeben werden muss, wenn Sie diese Schritte befolgen (in der Prä-Boot-Umgebung ist automatisch US-Englisch eingestellt).</string>
|
<string lang="de" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">WICHTIG: Bitte beachten Sie, dass Prä-Boot-Authentifikationspasswörter stets mit einer Standard US-Tastaturbelegung geschrieben werden. Deshalb kann es unmöglich sein ein Volume, dessen Passwort mit einer anderen Tastaturbelegung erstellt wurde mit einem Prä-Boot-Authentifikationspasswort einzubinden (bitte beachten Sie, dass dies kein VeraCrypt-Fehler ist). Um solch ein Volume mit einem Prä-Boot-Authentifikationspasswort einzubinden, folgen Sie diesen Schritten:\n\n1) Klicken Sie „Datei“ oder „Datenträger“ und wählen Sie das Volume aus.\n2) Wählen Sie „Volumes“ > „Volume-Passwort ändern“.\n3) Geben Sie das derzeitige Passwort für das Volume ein.\n4) Ändern Sie die Tastaturbelegung auf „English (US)“ indem Sie auf das Sprachsymbol in der Windows Taskleiste klicken und „EN English (United States)“ wählen (falls das Symbol nicht angezeigt wird gehen Sie in „Systemsteuerung“ > „Regions- und Sprachoptionen“. Klicken Sie auf „Tastatur ändern“ und wählen Sie „Englisch (US)“).\n5) Geben Sie nun in VeraCrypt das neue Prä-Boot-Authentifikationspasswort ein.\n6) Bestätigen Sie das neue Prä-Boot-Authentifikationspasswort und klicken Sie „OK“.\n7)ACHTUNG: Bitte denken Sie daran, dass das Volume Passwort IMMER mit der US-Tastaturbelegung eingegeben werden muss, wenn Sie diese Schritte befolgen (in der Prä-Boot-Umgebung ist automatisch US-Englisch eingestellt).</string>
|
||||||
<string lang="de" key="SYS_FAVORITES_KEYBOARD_WARNING">Systemfavoriten-Volumes werden mit dem Prä-Boot-Authentifikationspasswort eingebunden. Wenn irgendein Systemfavoriten-Volume ein anderes Passwort nutzt wird es nicht eingebunden.</string>
|
<string lang="de" key="SYS_FAVORITES_KEYBOARD_WARNING">Systemfavoriten-Volumes werden mit dem Prä-Boot-Authentifikationspasswort eingebunden. Wenn irgendein Systemfavoriten-Volume ein anderes Passwort nutzt wird es nicht eingebunden.</string>
|
||||||
@@ -1293,8 +1293,8 @@
|
|||||||
<string lang="de" key="SETTING_REQUIRES_REBOOT">Bitte beachten Sie, dass diese Änderung erst nach einem Neustart des Betriebssystems in Kraft tritt.</string>
|
<string lang="de" key="SETTING_REQUIRES_REBOOT">Bitte beachten Sie, dass diese Änderung erst nach einem Neustart des Betriebssystems in Kraft tritt.</string>
|
||||||
<string lang="de" key="COMMAND_LINE_ERROR">Fehler bei der Syntaxanalyse der Kommandozeile.</string>
|
<string lang="de" key="COMMAND_LINE_ERROR">Fehler bei der Syntaxanalyse der Kommandozeile.</string>
|
||||||
<string lang="de" key="RESCUE_DISK">Rettungsdatenträger</string>
|
<string lang="de" key="RESCUE_DISK">Rettungsdatenträger</string>
|
||||||
<string lang="de" key="SELECT_FILE_AND_MOUNT">&Datei wählen und einbinden ...</string>
|
<string lang="de" key="SELECT_FILE_AND_MOUNT">&Datei auswählen und einbinden ...</string>
|
||||||
<string lang="de" key="SELECT_DEVICE_AND_MOUNT">Laufwerk wä&hlen und einbinden ...</string>
|
<string lang="de" key="SELECT_DEVICE_AND_MOUNT">Laufwerk auswä&hlen und einbinden ...</string>
|
||||||
<string lang="de" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Nur Administratoren erlauben Systemfavoriten in VeraCrypt zu sehen und zu trennen</string>
|
<string lang="de" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Nur Administratoren erlauben Systemfavoriten in VeraCrypt zu sehen und zu trennen</string>
|
||||||
<string lang="de" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Systemfavoriten-Volumes einbinden wenn Windows startet (am Anfang der Startphase)</string>
|
<string lang="de" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Systemfavoriten-Volumes einbinden wenn Windows startet (am Anfang der Startphase)</string>
|
||||||
<string lang="de" key="MOUNTED_VOLUME_DIRTY">WARNUNG: Das Dateisystem auf dem Volume, eingebunden als „%s“, wurde nicht ordnungsgemäß getrennt und könnte dadurch Fehler enthalten. Das Verwenden eines beschädigten Dateisystems kann zu Datenverlusten bzw. Datenbeschädigungen führen.\n\nHinweis: Bevor Sie ein Laufwerk physikalisch entfernen oder ausschalten (z.B. ein USB-Stick oder eine externe Festplatte), auf denen ein eingebundenes VeraCrypt-Volume ist, so sollten Sie immer zuerst das Volume in VeraCrypt trennen.\n\n\nMöchten Sie das Windows auf dem Dateisystem nach Fehlern sucht und diese behebt (falls vorhanden)?</string>
|
<string lang="de" key="MOUNTED_VOLUME_DIRTY">WARNUNG: Das Dateisystem auf dem Volume, eingebunden als „%s“, wurde nicht ordnungsgemäß getrennt und könnte dadurch Fehler enthalten. Das Verwenden eines beschädigten Dateisystems kann zu Datenverlusten bzw. Datenbeschädigungen führen.\n\nHinweis: Bevor Sie ein Laufwerk physikalisch entfernen oder ausschalten (z.B. ein USB-Stick oder eine externe Festplatte), auf denen ein eingebundenes VeraCrypt-Volume ist, so sollten Sie immer zuerst das Volume in VeraCrypt trennen.\n\n\nMöchten Sie das Windows auf dem Dateisystem nach Fehlern sucht und diese behebt (falls vorhanden)?</string>
|
||||||
@@ -1393,28 +1393,28 @@
|
|||||||
<control lang="de" key="IDC_FAVORITE_USE_VOLUME_ID">Volume-Kennung zum Einbinden des Favoriten verwenden</control>
|
<control lang="de" key="IDC_FAVORITE_USE_VOLUME_ID">Volume-Kennung zum Einbinden des Favoriten verwenden</control>
|
||||||
<string lang="de" key="VOLUME_ID_INVALID">Die Volume-Kennung ist ungültig</string>
|
<string lang="de" key="VOLUME_ID_INVALID">Die Volume-Kennung ist ungültig</string>
|
||||||
<string lang="de" key="VOLUME_ID_NOT_FOUND">Mit der angegebenen Kennung wurde kein Volume auf dem System gefunden</string>
|
<string lang="de" key="VOLUME_ID_NOT_FOUND">Mit der angegebenen Kennung wurde kein Volume auf dem System gefunden</string>
|
||||||
<string lang="de" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Wert in die Zwischenablage kopieren...</string>
|
<string lang="de" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Wert in die Zwischenablage kopieren ...</string>
|
||||||
<control lang="de" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Im Prä-Boot-Authentifikationsbildschirm keinen PIM abfragen</control>
|
<control lang="de" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Im Prä-Boot-Authentifikationsbildschirm keinen PIM abfragen</control>
|
||||||
<string lang="de" key="DISABLE_BOOT_LOADER_PIM_PROMPT">WARNUNG: Sie sollten nicht vergessen, dass, wenn Sie diese Option aktivieren, der PIM-Wert unverschlüsselt auf der Festplatte gespeichert wird.\n\nSind Sie sicher, dass Sie diese Option aktivieren möchten?</string>
|
<string lang="de" key="DISABLE_BOOT_LOADER_PIM_PROMPT">WARNUNG: Sie sollten nicht vergessen, dass, wenn Sie diese Option aktivieren, der PIM-Wert unverschlüsselt auf der Festplatte gespeichert wird.\n\nSind Sie sicher, dass Sie diese Option aktivieren möchten?</string>
|
||||||
<string lang="de" key="PIM_TOO_BIG">Der größtmögliche Wert für den PIM (Persönlicher IterationsMultiplikator) ist 2147468.</string>
|
<string lang="de" key="PIM_TOO_BIG">Der größtmögliche Wert für den PIM (Persönlicher IterationsMultiplikator) ist 2147468.</string>
|
||||||
<control lang="de" key="IDC_SKIP_RESCUE_VERIFICATION">Rettungsdatenträgerüberprüfung überspringen</control>
|
<control lang="de" key="IDC_SKIP_RESCUE_VERIFICATION">Rettungsdatenträgerüberprüfung überspringen</control>
|
||||||
<control lang="de" key="IDC_HIDE_WAITING_DIALOG">Wartemitteilungsdialog nicht anzeigen, wenn Vorgänge ausgeführt werden</control>
|
<control lang="de" key="IDC_HIDE_WAITING_DIALOG">Wartemitteilungsdialog nicht anzeigen, wenn Vorgänge ausgeführt werden</control>
|
||||||
<control lang="de" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Im Prä-Boot-Authentifikationsbildschirm keinen Hash-Algorithmus abfragen</control>
|
<control lang="de" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Im Prä-Boot-Authentifikationsbildschirm keinen Hash-Algorithmus abfragen</control>
|
||||||
<string lang="en" key="GOST89_HELP">The GOST block cipher, defined in the standard GOST 28147-89 under name Magma, is a Soviet and Russian government standard symmetric key block cipher.\n\nDeveloped in the 1970s, the standard had been marked "Top Secret" and then downgraded to "Secret" in 1990. It was a Soviet alternative to the United States standard algorithm, DES.</string>
|
<string lang="de" key="GOST89_HELP">Die GOST-Blockverschlüsselung, definiert in der Norm GOST 28147-89 unter dem Namen Magma, ist ein sowjetischer und russischer Regierungsstandard für Blockverschlüsselung mit symmetrischem Schlüssel.\n\nEntwickelt in den 1970er Jahren wurde der Standard als "Streng geheim" eingestuft und dann im Jahr 1990 auf "Geheim" herabgestuft. Er war eine sowjetische Alternative zum Standard-Algorithmus der Vereinigten Staaten, DES.</string>
|
||||||
<string lang="en" key="KUZNYECHIK_HELP">Kuznyechik is a block cipher first published in 2015 and defined in the National Standard of the Russian Federation GOST R 34.12-2015 and also in RFC 7801. 256-bit key, 128-bit block. Mode of operation is XTS.</string>
|
<string lang="de" key="KUZNYECHIK_HELP">Kuznyechik ist eine Blockverschlüsselung, zuerst veröffentlicht im Jahr 2015 und definiert im Nationalen Standard der Russischen Föderation GOST R 34.12-2015 und ebenfalls in RFC 7801. 256 Bit Schlüssellänge, 28 Bit Blockgröße. Arbeitet im XTS-Modus.</string>
|
||||||
<string lang="de" key="CAMELLIA_HELP">Von Mitsubishi Electric und NTT aus Japan gemeinsam entwickelt. Im Jahr 2000 zuerst veröffentlicht. 256 Bit Schlüssellänge, 128 Bit Blockgröße.\nArbeitet im XTS-Modus. Von der ISO/IEC, dem Projekt NESSIE der Europäischen Union und dem japanischen Projekt CRYPTREC zur Nutzung zugelassen.</string>
|
<string lang="de" key="CAMELLIA_HELP">Von Mitsubishi Electric und NTT aus Japan gemeinsam entwickelt. Im Jahr 2000 zuerst veröffentlicht. 256 Bit Schlüssellänge, 128 Bit Blockgröße.\nArbeitet im XTS-Modus. Von der ISO/IEC, dem Projekt NESSIE der Europäischen Union und dem japanischen Projekt CRYPTREC zur Nutzung zugelassen.</string>
|
||||||
<string lang="de" key="TIME">Zeit</string>
|
<string lang="de" key="TIME">Zeit</string>
|
||||||
<string lang="de" key="ITERATIONS">Iterationen</string>
|
<string lang="de" key="ITERATIONS">Iterationen</string>
|
||||||
<string lang="de" key="PRE-BOOT">Prä-Boot</string>
|
<string lang="de" key="PRE-BOOT">Prä-Boot</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_INFO">Before you can encrypt the partition, you must create a VeraCrypt Rescue Disk (VRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the VRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the VRD allows you to permanently decrypt the partition before Windows starts.\n\n- The VRD will contain a backup of the present EFI boot loader and will allow you to restore it if necessary.\n\nThe VeraCrypt Rescue Disk ZIP image will be created in the location specified below.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_INFO">Bevor Sie die Partition verschlüsseln können, müssen Sie einen VeraCrypt-Rettungsdatenträger (VRD) erstellen, der zu folgenden Zwecken dient:\n\n- Wenn der VeraCrypt-Bootloader, Hauptschlüssel oder andere kritische Daten beschädigt werden, ermöglicht der VRD Ihnen, sie wiederherzustellen (beachten Sie jedoch, dass Sie immer noch das richtige Passwort eingeben müssen).\n\n- Wenn Windows beschädigt wird und nicht gestartet werden kann, ermöglicht der VRD Ihnen, die Partition dauerhaft zu entschlüsseln, bevor Windows gestartet wird.\n\n- Der VRD wird eine Sicherung des derzeitigen EFI-Bootloaders enthalten und ermöglicht es Ihnen, ihn bei Bedarf wiederherzustellen.\n\nDas VeraCrypt-Rettungsdatenträger-ZIP-Abbild wird in der unten angegebenen Adresse erstellt.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you need to extract it to a USB stick that is formatted as FAT/FAT32.\n\n%lsAfter you create the Rescue Disk, click Next to verify that it has been correctly created.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_EXTRACT_INFO">Das Rettungsdatenträger-ZIP-Abbild wurde erstellt und in dieser Datei gespeichert:\n%s\n\nJetzt müssen Sie es auf einen mit FAT/FAT32-formatierten USB-Stick entpacken.\n\n%lsNachdem Sie den Rettungsdatenträger erstellt haben, klicken Sie auf Weiter, um zu bestätigen, dass er korrekt erstellt wurde.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you should either extract the image to a USB stick that is formatted as FAT/FAT32 or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Das Rettungsdatenträger-ZIP-Abbild wurde erstellt und in dieser Datei gespeichert\n%s\n\nJetzt sollten Sie es entweder auf einen mit FAT/FAT32-formatierten USB-Stick entpacken oder an einen sicheren Ort für die spätere Verwendung verschieben.\n\n%lsWeiter klicken, um fortzufahren.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">IMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\n</string>
|
<string lang="de" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">WICHTIG: Beachten Sie, dass die ZIP-Datei direkt in das Stammverzeichnis des USB-Sticks entpackt werden muss. Zum Beispiel, wenn der Laufwerksbuchstabe des USB-Sticks E: ist, sollte das Entpacken der ZIP-Datei einen Ordner E:\\EFI auf dem USB-Stick erstellen.\n\n</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_CHECK_FAILED">Kann nicht bestätigen, ob der Rettungsdatenträger korrekt entpackt wurde.\n\nWenn Sie den Rettungsdatenträger entpackt haben, werfen Sie den USB-Stick bitte aus und stecken Sie ihn wieder ein; anschließend klicken Sie auf Weiter und versuchen es erneut. Wenn dies nicht hilft, versuchen Sie es bitte mit einem anderen USB-Stick und/oder einer anderen ZIP-Software.\n\nWenn Sie den Rettungsdatenträger noch nicht entpackt haben, machen Sie dies bitte und klicken Sie anschließend auf Weiter.\n\nWenn Sie vor dem Start dieses Assistenten versucht haben, den VeraCrypt-Rettungsdatenträger zu bestätigen, beachten Sie bitte, dass ein solcher Rettungsdatenträger nicht verwendet werden kann, da er für einen anderen Hauptschlüssel erstellt wurde. Sie müssen das neu generierte Rettungsdatenträger-ZIP-Abbild entpacken.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Kann nicht bestätigen, ob der Rettungsdatenträger korrekt entpackt wurde.\n\nWenn Sie das Rettungsdatenträger-Abbild auf einen USB-Stick entpackt haben, werfen Sie ihn bitte aus und stecken Sie ihn wieder ein; anschließend versuchen Sie es erneut. Wenn dies nicht hilft, versuchen Sie es bitte mit einer anderen ZIP-Software und/oder Medium.\n\nWenn Sie für einen anderen Hauptschlüssel, Passwort, Salz, usw. versucht haben, den VeraCrypt-Rettungsdatenträger zu bestätigen, beachten Sie bitte, dass ein solcher Rettungsdatenträger immer durch diese Überprüfung fallen wird. Um einen neuen, mit Ihrer aktuellen Konfiguration vollständig kompatiblen Rettungsdatenträger zu erstellen, wählen Sie 'System' > 'Rettungsdatenträger erstellen' aus.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
|
<string lang="de" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Das Rettungsdatenträger-Abbild wurde erstellt und in dieser Datei gespeichert:\n%s\n\nJetzt müssen Sie das Rettungsdatenträger-Abbild auf einen mit FAT/FAT32-formatierten USB-Stick entpacken.\n\nWICHTIG: Beachten Sie, dass die ZIP-Datei direkt in das Stammverzeichnis des USB-Sticks entpackt werden muss. Zum Beispiel, wenn der Laufwerksbuchstabe des USB-Sticks E: ist, sollte das Entpacken der ZIP-Datei einen Ordner E:\\EFI auf dem USB-Stick erstellen.\n\nNachdem Sie den Rettungsdatenträger erstellt haben, wählen Sie 'System' > 'Rettungsdatenträger überprüfen' aus, um zu bestätigen, dass er korrekt erstellt wurde.</string>
|
||||||
</localization>
|
</localization>
|
||||||
<!-- XML Schema -->
|
<!-- XML-Schema -->
|
||||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
<xs:element name="VeraCrypt">
|
<xs:element name="VeraCrypt">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
|
<language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
|
<language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
|
<language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
|
<language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="fa" name="فارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
|
<language langid="fa" name="فارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="fi" name="Suomi" en-name="Finnish" version="0.1.0" translators="Matti Ruhanen" />
|
<language langid="fi" name="Suomi" en-name="Finnish" version="0.1.0" translators="Matti Ruhanen" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
|
<language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="hu" name="Magyar" en-name="Hungarian" version="0.1.0" translators="Nyul Balazs" />
|
<language langid="hu" name="Magyar" en-name="Hungarian" version="0.1.0" translators="Nyul Balazs" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
|
<language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
|
<language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
|
<language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ka" name="ქართული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
|
<language langid="ka" name="ქართული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ko" name="한국어" en-name="Korean" version="0.1.1" translators="Kim Young, Herbert Shin" />
|
<language langid="ko" name="한국어" en-name="Korean" version="0.1.1" translators="Kim Young, Herbert Shin" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
|
<language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
|
<language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
+102
-102
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="nl" name="Nederlands" en-name="Dutch" version="0.2.1" translators="Jan van der Wal, Peter Tak" />
|
<language langid="nl" name="Nederlands" en-name="Dutch" version="0.2.3" translators="Jan van der Wal, Peter Tak" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<font lang="nl" class="normal" size="11" face="default" />
|
<font lang="nl" class="normal" size="11" face="default" />
|
||||||
<font lang="nl" class="bold" size="13" face="Arial" />
|
<font lang="nl" class="bold" size="13" face="Arial" />
|
||||||
@@ -25,14 +25,14 @@
|
|||||||
<control lang="nl" key="IDD_UNINSTALL">De-installeer VeraCrypt</control>
|
<control lang="nl" key="IDD_UNINSTALL">De-installeer VeraCrypt</control>
|
||||||
<control lang="nl" key="IDHELP">&Help</control>
|
<control lang="nl" key="IDHELP">&Help</control>
|
||||||
<control lang="nl" key="IDT_EXTRACT_DESTINATION">Selecteer of type de locatie waar u de uitgepakte bestanden naartoe wilt kopiëren:</control>
|
<control lang="nl" key="IDT_EXTRACT_DESTINATION">Selecteer of type de locatie waar u de uitgepakte bestanden naartoe wilt kopiëren:</control>
|
||||||
<control lang="nl" key="IDT_INSTALL_DESTINATION">Selecteer of type de locatie waar u de VeraCrypt programma bestanden naartoe wilt kopiëren. Als de gespecificeerde map niet bestaat, zal deze automatisch worden aangemaakt.</control>
|
<control lang="nl" key="IDT_INSTALL_DESTINATION">Selecteer of type de locatie waar u de VeraCrypt programma bestanden naartoe wilt kopiëren. Als de gespecificeerde map niet bestaat, wordt deze automatisch aangemaakt.</control>
|
||||||
<control lang="nl" key="IDT_UNINSTALL_DIR">Klik op Deinstalleer om VeraCrypt te verwijderen van dit systeem.</control>
|
<control lang="nl" key="IDT_UNINSTALL_DIR">Klik op Deinstalleer om VeraCrypt te verwijderen van dit systeem.</control>
|
||||||
<control lang="nl" key="IDC_ABORT_BUTTON">Afbreken</control>
|
<control lang="nl" key="IDC_ABORT_BUTTON">Afbreken</control>
|
||||||
<control lang="nl" key="IDC_BENCHMARK">&Benchmark</control>
|
<control lang="nl" key="IDC_BENCHMARK">&Benchmark</control>
|
||||||
<control lang="nl" key="IDC_CIPHER_TEST">&Test</control>
|
<control lang="nl" key="IDC_CIPHER_TEST">&Test</control>
|
||||||
<control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Aanmaak en formatering gecodeerd volume</control>
|
<control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Aanmaken en formateren gecodeerd volume</control>
|
||||||
<control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Op-De-Plaats codering van de partitie (Windows Vista)</control>
|
<control lang="nl" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Op-De-Plaats codering van de partitie (Windows Vista)</control>
|
||||||
<control lang="nl" key="IDC_DISPLAY_KEYS">Toon gegenereerde sleutels (their portions)</control>
|
<control lang="nl" key="IDC_DISPLAY_KEYS">Toon gegenereerde sleutels (hun gedeelten)</control>
|
||||||
<control lang="nl" key="IDC_DISPLAY_POOL_CONTENTS">Toon inhoud</control>
|
<control lang="nl" key="IDC_DISPLAY_POOL_CONTENTS">Toon inhoud</control>
|
||||||
<control lang="nl" key="IDC_DOWNLOAD_CD_BURN_SOFTWARE">Download CD/DVD brandersoftware</control>
|
<control lang="nl" key="IDC_DOWNLOAD_CD_BURN_SOFTWARE">Download CD/DVD brandersoftware</control>
|
||||||
<control lang="nl" key="IDC_FILE_CONTAINER">Maak een gecodeerde bestandscontainer</control>
|
<control lang="nl" key="IDC_FILE_CONTAINER">Maak een gecodeerde bestandscontainer</control>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<control lang="nl" key="IDC_LINK_PIM_INFO">Informatie over PIM</control>
|
<control lang="nl" key="IDC_LINK_PIM_INFO">Informatie over PIM</control>
|
||||||
<control lang="nl" key="IDC_MB">&MB</control>
|
<control lang="nl" key="IDC_MB">&MB</control>
|
||||||
<control lang="nl" key="IDC_MORE_INFO_ON_CONTAINERS">Meer informatie</control>
|
<control lang="nl" key="IDC_MORE_INFO_ON_CONTAINERS">Meer informatie</control>
|
||||||
<control lang="nl" key="IDC_MORE_INFO_ON_SYS_ENCRYPTION">Meer informatie over systeem codering</control>
|
<control lang="nl" key="IDC_MORE_INFO_ON_SYS_ENCRYPTION">Meer informatie over systeemcodering</control>
|
||||||
<control lang="nl" key="IDC_MORE_INFO_SYS_ENCRYPTION">Meer informatie</control>
|
<control lang="nl" key="IDC_MORE_INFO_SYS_ENCRYPTION">Meer informatie</control>
|
||||||
<control lang="nl" key="IDC_MULTI_BOOT">Multi-boot</control>
|
<control lang="nl" key="IDC_MULTI_BOOT">Multi-boot</control>
|
||||||
<control lang="nl" key="IDC_NONSYS_DEVICE">Codeer een niet-systeem partitie/station</control>
|
<control lang="nl" key="IDC_NONSYS_DEVICE">Codeer een niet-systeem partitie/station</control>
|
||||||
@@ -242,22 +242,22 @@
|
|||||||
<control lang="nl" key="IDM_ORGANIZE_SYSTEM_FAVORITES">Systeemfavoriete volumes organiseren...</control>
|
<control lang="nl" key="IDM_ORGANIZE_SYSTEM_FAVORITES">Systeemfavoriete volumes organiseren...</control>
|
||||||
<control lang="nl" key="IDM_PERFORMANCE_SETTINGS">Prestatie-/Stuurprogrammaconfiguratie</control>
|
<control lang="nl" key="IDM_PERFORMANCE_SETTINGS">Prestatie-/Stuurprogrammaconfiguratie</control>
|
||||||
<control lang="nl" key="IDM_PERMANENTLY_DECRYPT_SYS">Permanent decoderen systeempartitie/-schijf</control>
|
<control lang="nl" key="IDM_PERMANENTLY_DECRYPT_SYS">Permanent decoderen systeempartitie/-schijf</control>
|
||||||
<control lang="nl" key="IDM_PREFERENCES">Voorkeuren</control>
|
<control lang="nl" key="IDM_PREFERENCES">Voorkeuren...</control>
|
||||||
<control lang="nl" key="IDM_REFRESH_DRIVE_LETTERS">Lees stationletters opnieuw in</control>
|
<control lang="nl" key="IDM_REFRESH_DRIVE_LETTERS">Lees stationletters opnieuw in</control>
|
||||||
<control lang="nl" key="IDM_REMOVE_ALL_KEYFILES_FROM_VOL">Verwijder alle sleutelbestanden van volume</control>
|
<control lang="nl" key="IDM_REMOVE_ALL_KEYFILES_FROM_VOL">Verwijder alle sleutelbestanden van volume</control>
|
||||||
<control lang="nl" key="IDM_RESTORE_VOL_HEADER">Herstel volumeheader</control>
|
<control lang="nl" key="IDM_RESTORE_VOL_HEADER">Herstel volumeheader</control>
|
||||||
<control lang="nl" key="IDM_RESUME_INTERRUPTED_PROC">Hervat onderbroken proces</control>
|
<control lang="nl" key="IDM_RESUME_INTERRUPTED_PROC">Hervat onderbroken proces</control>
|
||||||
<control lang="nl" key="IDM_SELECT_DEVICE">Selecteer apparaat</control>
|
<control lang="nl" key="IDM_SELECT_DEVICE">Selecteer apparaat...</control>
|
||||||
<control lang="nl" key="IDM_SELECT_FILE">Selecteer bestand</control>
|
<control lang="nl" key="IDM_SELECT_FILE">Selecteer bestand...</control>
|
||||||
<control lang="nl" key="IDM_SYSENC_RESUME">Hervat onderbroken proces</control>
|
<control lang="nl" key="IDM_SYSENC_RESUME">Hervat onderbroken proces</control>
|
||||||
<control lang="nl" key="IDM_SYSENC_SETTINGS">Systeem codering</control>
|
<control lang="nl" key="IDM_SYSENC_SETTINGS">Systeemcodering...</control>
|
||||||
<control lang="nl" key="IDM_SYSTEM_ENCRYPTION_STATUS">Eigenschappen</control>
|
<control lang="nl" key="IDM_SYSTEM_ENCRYPTION_STATUS">Eigenschappen...</control>
|
||||||
<control lang="nl" key="IDM_SYS_ENC_SETTINGS">Instellingen</control>
|
<control lang="nl" key="IDM_SYS_ENC_SETTINGS">Instellingen...</control>
|
||||||
<control lang="nl" key="IDM_SYS_FAVORITES_SETTINGS">Systeemfavoriete volumes...</control>
|
<control lang="nl" key="IDM_SYS_FAVORITES_SETTINGS">Systeemfavoriete volumes...</control>
|
||||||
<control lang="nl" key="IDM_TC_DOWNLOADS">Downloads</control>
|
<control lang="nl" key="IDM_TC_DOWNLOADS">Downloads</control>
|
||||||
<control lang="nl" key="IDM_TEST_VECTORS">Test vectoren</control>
|
<control lang="nl" key="IDM_TEST_VECTORS">Test vectoren...</control>
|
||||||
<control lang="nl" key="IDM_TOKEN_PREFERENCES">Beveiliging tokens</control>
|
<control lang="nl" key="IDM_TOKEN_PREFERENCES">Beveiliging tokens...</control>
|
||||||
<control lang="nl" key="IDM_TRAVELER">Traveler disk aanmaken</control>
|
<control lang="nl" key="IDM_TRAVELER">Traveler disk aanmaken...</control>
|
||||||
<control lang="nl" key="IDM_UNMOUNTALL">Ontkoppel alle gekoppelde volumes</control>
|
<control lang="nl" key="IDM_UNMOUNTALL">Ontkoppel alle gekoppelde volumes</control>
|
||||||
<control lang="nl" key="IDM_UNMOUNT_VOLUME">Ontkoppel volume</control>
|
<control lang="nl" key="IDM_UNMOUNT_VOLUME">Ontkoppel volume</control>
|
||||||
<control lang="nl" key="IDM_VERIFY_RESCUE_DISK">Controleer reddingsschijf</control>
|
<control lang="nl" key="IDM_VERIFY_RESCUE_DISK">Controleer reddingsschijf</control>
|
||||||
@@ -324,7 +324,7 @@
|
|||||||
<control lang="nl" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Wat is verborgen volume bescherming?</control>
|
<control lang="nl" key="IDC_LINK_HIDVOL_PROTECTION_INFO">Wat is verborgen volume bescherming?</control>
|
||||||
<control lang="nl" key="IDC_LINK_KEYFILES_INFO">Meer informatie over sleutelbestanden</control>
|
<control lang="nl" key="IDC_LINK_KEYFILES_INFO">Meer informatie over sleutelbestanden</control>
|
||||||
<control lang="nl" key="IDC_MOUNT_REMOVABLE">Koppel volume als verwijderbaar &medium</control>
|
<control lang="nl" key="IDC_MOUNT_REMOVABLE">Koppel volume als verwijderbaar &medium</control>
|
||||||
<control lang="nl" key="IDC_MOUNT_SYSENC_PART_WITHOUT_PBA">Koppel partitie &middels systeem codering zonder pre-boot authenticatie</control>
|
<control lang="nl" key="IDC_MOUNT_SYSENC_PART_WITHOUT_PBA">Koppel partitie &middels systeemcodering zonder pre-boot authenticatie</control>
|
||||||
<control lang="nl" key="IDC_PARALLELIZATION_LABEL_LINK">Paralellisatie:</control>
|
<control lang="nl" key="IDC_PARALLELIZATION_LABEL_LINK">Paralellisatie:</control>
|
||||||
<control lang="nl" key="IDC_PERFORM_BENCHMARK">Start tests</control>
|
<control lang="nl" key="IDC_PERFORM_BENCHMARK">Start tests</control>
|
||||||
<control lang="nl" key="IDC_PRINT">&Print</control>
|
<control lang="nl" key="IDC_PRINT">&Print</control>
|
||||||
@@ -356,7 +356,7 @@
|
|||||||
<control lang="nl" key="IDT_HIDDEN_VOL_PROTECTION">Verborgen volume protectie</control>
|
<control lang="nl" key="IDT_HIDDEN_VOL_PROTECTION">Verborgen volume protectie</control>
|
||||||
<control lang="nl" key="IDT_KEY">Sleutelgrootte:</control>
|
<control lang="nl" key="IDT_KEY">Sleutelgrootte:</control>
|
||||||
<control lang="nl" key="IDT_KEYFILE_GENERATOR_NOTE">BELANGRIJK: Beweeg de muis zo willekeurig mogelijk binnen dit scherm. Hoe langer u hem beweegt, hoe beter. Dit verbetert significant de cryptografische sterkte van de codeersleutels.</control>
|
<control lang="nl" key="IDT_KEYFILE_GENERATOR_NOTE">BELANGRIJK: Beweeg de muis zo willekeurig mogelijk binnen dit scherm. Hoe langer u hem beweegt, hoe beter. Dit verbetert significant de cryptografische sterkte van de codeersleutels.</control>
|
||||||
<control lang="nl" key="IDT_KEYFILE_WARNING">Let op: Als een sleutelbestand zoekraakt of in de eerste 1024 kilobytes verandert, zal het corresponderende volume niet meer gekoppeld kunnen worden!</control>
|
<control lang="nl" key="IDT_KEYFILE_WARNING">Let op: Als een sleutelbestand zoek raakt of in de eerste 1024 kilobytes verandert, kunt u het corresponderende volume niet meer koppelen!</control>
|
||||||
<control lang="nl" key="IDT_KEY_UNIT">bits</control>
|
<control lang="nl" key="IDT_KEY_UNIT">bits</control>
|
||||||
<control lang="nl" key="IDT_NUMBER_KEYFILES">Aantal sleutelbestanden:</control>
|
<control lang="nl" key="IDT_NUMBER_KEYFILES">Aantal sleutelbestanden:</control>
|
||||||
<control lang="nl" key="IDT_KEYFILES_SIZE">Grootte sleutelbestanden (in Bytes):</control>
|
<control lang="nl" key="IDT_KEYFILES_SIZE">Grootte sleutelbestanden (in Bytes):</control>
|
||||||
@@ -390,17 +390,17 @@
|
|||||||
<string lang="nl" key="ABOUTBOX">&Over</string>
|
<string lang="nl" key="ABOUTBOX">&Over</string>
|
||||||
<string lang="nl" key="ACCESSMODEFAIL">Het alleen-lezen attribuut op uw oude volume kon niet worden aangepast. Controleer de permissies van het bestand.</string>
|
<string lang="nl" key="ACCESSMODEFAIL">Het alleen-lezen attribuut op uw oude volume kon niet worden aangepast. Controleer de permissies van het bestand.</string>
|
||||||
<string lang="nl" key="ACCESS_DENIED">Fout: Toegang geweigerd.\n\nDe partitie die u probeert te bereiken is of 0 sectoren groot, of is uw opstart partitie.</string>
|
<string lang="nl" key="ACCESS_DENIED">Fout: Toegang geweigerd.\n\nDe partitie die u probeert te bereiken is of 0 sectoren groot, of is uw opstart partitie.</string>
|
||||||
<string lang="en" key="ADMINISTRATOR">Administrator</string>
|
<string lang="nl" key="ADMINISTRATOR">Administrator</string>
|
||||||
<string lang="nl" key="ADMIN_PRIVILEGES_DRIVER">Om de VeraCrypt driver te laden moet u zijn ingelogd met een account met administrator rechten.</string>
|
<string lang="nl" key="ADMIN_PRIVILEGES_DRIVER">Om de VeraCrypt driver te laden moet u zijn ingelogd met een account met administrator rechten.</string>
|
||||||
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_DEVICES">Noot: om een apparaat/partitie te kunnen coderen/Decodeer/formatteren moet u ingelogd zijn met een beheersaccount, dus met administrator rechten.\n\nDit geldt niet voor het formatteren/coderen van volumes die zijn opgenomen in een Bestandscontainer.</string>
|
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_DEVICES">Noot: om een apparaat/partitie te kunnen coderen/Decodeer/formatteren moet u ingelogd zijn met een beheersaccount, dus met administrator rechten.\n\nDit geldt niet voor het formatteren/coderen van volumes die zijn opgenomen in een Bestandscontainer.</string>
|
||||||
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Om een verborgen volume te kunnen maken moet u ingelogd zijn in een account met administrator rechten.\n\nDoorgaan?</string>
|
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Om een verborgen volume te kunnen maken moet u ingelogd zijn in een account met administrator rechten.\n\nDoorgaan?</string>
|
||||||
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_NTFS">Om het volume te kunen formatteren in NTFS formaat moet u ingelogd zijn in een account met administrator rechten.\n\nZonder administrator rechten kunt u het volume in FAT formaat formatteren.</string>
|
<string lang="nl" key="ADMIN_PRIVILEGES_WARN_NTFS">Om het volume te kunen formatteren in NTFS formaat moet u ingelogd zijn in een account met administrator rechten.\n\nZonder administrator rechten kunt u het volume in FAT formaat formatteren.</string>
|
||||||
<string lang="nl" key="AES_HELP">FIPS-goedgekeurde code (Rijndael, gepubliceerd 1998) die mag worden gebruikt door U.S. overheids departementen en agentschappen om geclassificeerde informatie te beveiligen tot aan Top Secret level. 256-bit sleutel, 128-bit blok, 14 rondgangen (AES-256). Operatiemodus is XTS.</string>
|
<string lang="nl" key="AES_HELP">FIPS-goedgekeurde code (Rijndael, gepubliceerd 1998) die mag worden gebruikt door U.S. overheids departementen en agentschappen om geclassificeerde informatie te beveiligen tot aan Top Secret level. 256-bit sleutel, 128-bit blok, 14 rondgangen (AES-256). Bewerkingsmodus is XTS.</string>
|
||||||
<string lang="nl" key="ALREADY_MOUNTED">Volume is reeds gekoppeld.</string>
|
<string lang="nl" key="ALREADY_MOUNTED">Volume is reeds gekoppeld.</string>
|
||||||
<string lang="nl" key="ERR_SELF_TESTS_FAILED">WAARSCHUWING: Bij tenminste een codering of hash algoritme is de ingebouwde automatische zelftest mislukt!\n\nDe installatie van VeraCrypt kan mogelijk beschadigd zijn.</string>
|
<string lang="nl" key="ERR_SELF_TESTS_FAILED">WAARSCHUWING: Bij tenminste een codering of hash algoritme is de ingebouwde automatische zelftest mislukt!\n\nDe installatie van VeraCrypt kan mogelijk beschadigd zijn.</string>
|
||||||
<string lang="nl" key="ERR_NOT_ENOUGH_RANDOM_DATA">Waarschuwing: Er zijn niet genoeg data in de Random Nummer Generator om te voorzien in de gevraagde hoeveelheid random data.\n\nGa niet verder in het programma. Wilt u a.u.b.'Rapporteer een fout' uit het Help menu kiezen en deze fout rapporteren?</string>
|
<string lang="nl" key="ERR_NOT_ENOUGH_RANDOM_DATA">Waarschuwing: Er zijn niet genoeg data in de Random Nummer Generator om te voorzien in de gevraagde hoeveelheid random data.\n\nGa niet verder in het programma. Wilt u a.u.b.'Rapporteer een fout' uit het Help menu kiezen en deze fout rapporteren?</string>
|
||||||
<string lang="nl" key="ERR_HARDWARE_ERROR">De schijf is beschadigd (fysiek defect) of een kabel is beschadigd, of het geheugen disfunctioneert.\n\nMerk a.u.b. op dat dit een probleem met uw hardware is, niet met VeraCrypt. Rapporteer dit daarom a.u.b. NIET als een bug of probleem in VeraCrypt en vraag hiervoor NIET om hulp in het VeraCrypt Forum. Neem a.u.b. contact op met het technisch ondersteunings team van uw computer verkoper voor hulp. Dank u wel.\n\nMerk op: Als de fout herhaaldelijk op dezelfde plaats optreedt, wordt deze waarschijnlijk veroorzaakt door een zgn. bad cluster op de schijf. Dit zou gecorrigeerd moeten kunnen worden middels software van een derde partij (in veel gevallen is de opdracht 'chkdsk /r' niet in staat deze fout te corrigeren omdat dit programma op bestandsnivo werkt; in sommige gevallen zal 'chkdsk' de fout zelfs niet opmerken).</string>
|
<string lang="nl" key="ERR_HARDWARE_ERROR">De schijf is beschadigd (fysiek defect) of een kabel is beschadigd, of het geheugen disfunctioneert.\n\nMerk a.u.b. op dat dit een probleem met uw hardware is, niet met VeraCrypt. Rapporteer dit daarom a.u.b. NIET als een bug of probleem in VeraCrypt en vraag hiervoor NIET om hulp in het VeraCrypt Forum. Neem a.u.b. contact op met het technisch ondersteunings team van uw computer verkoper voor hulp. Dank u wel.\n\nMerk op: Als de fout herhaaldelijk op dezelfde plaats optreedt, wordt deze waarschijnlijk veroorzaakt door een zgn. bad cluster op de schijf. Dit kunt u mogelijk corrigeren met software van een derde partij (in veel gevallen is de opdracht 'chkdsk /r' niet in staat deze fout te corrigeren omdat dit programma op bestandsniveau werkt; in sommige gevallen zal 'chkdsk' de fout zelfs niet opmerken).</string>
|
||||||
<string lang="nl" key="DEVICE_NOT_READY_ERROR">Als je toegang tot een station op een verwisselbaar apparaat wilt, wees er dan zeker van dat het apparaat is aangesloten. De schijf/Het apparaat kan ook beschadigd zijn (mogelijk is er een fysiek defect) of is de kabel afgekoppeld/beschadigd.</string>
|
<string lang="nl" key="DEVICE_NOT_READY_ERROR">Als u toegang tot een station op een verwisselbaar apparaat wilt, wees er dan zeker van dat het apparaat is aangesloten. De schijf/Het apparaat kan ook beschadigd zijn (mogelijk is er een fysiek defect) of is de kabel afgekoppeld/beschadigd.</string>
|
||||||
<string lang="nl" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Uw system heeft aangepaste chipset drivers met daarin een bug die codering van de gehele systeem schijf verhindert.\n\nProbeer a.u.b. (niet-Microsoft) aangepaste chipset drivers bij te werken of te deïnstalleren voordat u verder gaat. Codeer alleen de systeem partitie als het probleem blijft.</string>
|
<string lang="nl" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Uw system heeft aangepaste chipset drivers met daarin een bug die codering van de gehele systeem schijf verhindert.\n\nProbeer a.u.b. (niet-Microsoft) aangepaste chipset drivers bij te werken of te deïnstalleren voordat u verder gaat. Codeer alleen de systeem partitie als het probleem blijft.</string>
|
||||||
<string lang="nl" key="BAD_DRIVE_LETTER">Ongeldige stationsletter.</string>
|
<string lang="nl" key="BAD_DRIVE_LETTER">Ongeldige stationsletter.</string>
|
||||||
<string lang="nl" key="INVALID_PATH">Ongeldig pad.</string>
|
<string lang="nl" key="INVALID_PATH">Ongeldig pad.</string>
|
||||||
@@ -414,7 +414,7 @@
|
|||||||
<string lang="nl" key="CIPHER_HIDVOL_HOST_TITLE">Buiten volume codering opties</string>
|
<string lang="nl" key="CIPHER_HIDVOL_HOST_TITLE">Buiten volume codering opties</string>
|
||||||
<string lang="nl" key="CIPHER_HIDVOL_TITLE">Verborgen volume codering opties</string>
|
<string lang="nl" key="CIPHER_HIDVOL_TITLE">Verborgen volume codering opties</string>
|
||||||
<string lang="nl" key="CIPHER_TITLE">Codering opties</string>
|
<string lang="nl" key="CIPHER_TITLE">Codering opties</string>
|
||||||
<string lang="nl" key="CLEAN_WINMRU_FAILED">WAARSCHUWING: Het pad (als opgeslagen door de bestandsselectie) van het laatst geselecteerde volume/sleutelbestand kon niet geschoond worden!</string>
|
<string lang="nl" key="CLEAN_WINMRU_FAILED">WAARSCHUWING: Het pad (als opgeslagen door de bestandsselectie) van het laatst geselecteerde volume/sleutelbestand kon niet worden geschoond!</string>
|
||||||
<string lang="nl" key="COMPRESSION_NOT_SUPPORTED">Fout: De bestandscontainer is gecomprimeerd op bestandsniveau. VeraCrypt ondersteunt geen gecomprimeerde containers (noot: Compressie van gecodeerde data is ineffectief en overbodig).\n\nSchakel a.u.b. compressie voor deze container uit door de volgende stappen te nemen: 1) Klik de container RECHTS aan in Windows Explorer (niet in VeraCrypt). 2) Selecteer 'Eigenschappen'. 3) Kies 'Geavanceerd' in de 'Eigenschappen' dialoog. 4) Haal het vinkje bij 'Inhoud Comprimeren om schijfruimte vrij te maken' weg in het Geavanceerde Dialoog Scherm en klik op 'OK'. 5) Klik op 'OK' in het 'Eigenschappen' dialoog scherm.</string>
|
<string lang="nl" key="COMPRESSION_NOT_SUPPORTED">Fout: De bestandscontainer is gecomprimeerd op bestandsniveau. VeraCrypt ondersteunt geen gecomprimeerde containers (noot: Compressie van gecodeerde data is ineffectief en overbodig).\n\nSchakel a.u.b. compressie voor deze container uit door de volgende stappen te nemen: 1) Klik de container RECHTS aan in Windows Explorer (niet in VeraCrypt). 2) Selecteer 'Eigenschappen'. 3) Kies 'Geavanceerd' in de 'Eigenschappen' dialoog. 4) Haal het vinkje bij 'Inhoud Comprimeren om schijfruimte vrij te maken' weg in het Geavanceerde Dialoog Scherm en klik op 'OK'. 5) Klik op 'OK' in het 'Eigenschappen' dialoog scherm.</string>
|
||||||
<string lang="nl" key="CREATE_FAILED">Niet succesvol in het aanmaken van volume %s</string>
|
<string lang="nl" key="CREATE_FAILED">Niet succesvol in het aanmaken van volume %s</string>
|
||||||
<string lang="nl" key="DEVICE_FREE_BYTES">Grootte van %s is %.2f bytes</string>
|
<string lang="nl" key="DEVICE_FREE_BYTES">Grootte van %s is %.2f bytes</string>
|
||||||
@@ -426,47 +426,47 @@
|
|||||||
<string lang="nl" key="DEVICE_IN_USE_FORMAT">WAARSCHUWING: Het apparaat/partitie is in gebruik door het besturingssysteem of door programma's. Het formatteren van het apparaat/partitie kan dataverminking en systeeminstabiliteit tot gevolg hebben.\n\nWilt u doorgaan?</string>
|
<string lang="nl" key="DEVICE_IN_USE_FORMAT">WAARSCHUWING: Het apparaat/partitie is in gebruik door het besturingssysteem of door programma's. Het formatteren van het apparaat/partitie kan dataverminking en systeeminstabiliteit tot gevolg hebben.\n\nWilt u doorgaan?</string>
|
||||||
<string lang="nl" key="DEVICE_IN_USE_INPLACE_ENC">Waarschuwing: Deze partitie is in gebruik door het besturingssysteem of programma's. U dient iedere applicatie die deze partitie zou kunnen gebruiken (incl. antivirusprogramma's) te sluiten.\n\nDoorgaan?</string>
|
<string lang="nl" key="DEVICE_IN_USE_INPLACE_ENC">Waarschuwing: Deze partitie is in gebruik door het besturingssysteem of programma's. U dient iedere applicatie die deze partitie zou kunnen gebruiken (incl. antivirusprogramma's) te sluiten.\n\nDoorgaan?</string>
|
||||||
<string lang="nl" key="FORMAT_CANT_DISMOUNT_FILESYS">Fout: Het apparaat/partitie bevat een bestandssysteem dat niet kan worden ontkoppeld. Dit bestandssyteem kan in gebruik zijn door het besturingssysteem. Het formatteren van het apparaat/partitie zal waarschijnlijk dataverminking en systeeminstabiliteit tot gevolg hebben.\n\nOm dit probleem op te lossen raden we aan deze partitie eerst te verwijderen en dan opnieuw aan te maken zonder deze te formatteren. Volg hiertoe de volgende stappen: 1) Klik RECHTS op het 'Deze Computer' (of 'Mijn Computer') icoontje in het 'Startmenu' en kies 'Beheren'. Het 'Computerbeheer' scherm verschijnt nu. 2) In het 'Computerbeheer' scherm, kies 'Opslag' > 'Schijfbeheer'. 3) Klik RECHTS op de partitie die u wilt gaan coderen en kies voor 'Partitie verwijderen', of 'Verwijder schijf', of 'Logisch station verwijderen'. 4) Klik op 'Ja'. Als Windows u vraagt de computer te herstarten, doet u dit dan. Herhaal dan de stappen 1 en 2 en ga verder met stap 5. 5) Klik nu RECHTS op de niet-toegewezen/vrije ruimte en selecteer 'Nieuwe partitie', of 'Nieuw eenvoudig volume', of 'Nieuw logisch station'. 6) De 'Wizard nieuwe partitie' of 'Wizard nieuw eenvoudig volume' moet nu verschijnen; volg de instructies. Op de wizard-pagina met de titel 'Formatteer partitie', selecteer 'Formatteer deze partitie NIET' of 'Formatteer dit volume NIET'. In dezelfde wizard, klik op 'Volgende' en dan 'Voltooien'. 7) Merk op dat het stationspad dat u hebt geselecteerd in VeraCrypt nu verandert en dus verkeerd kan zijn. Verlaat daarom de VeraCrypt volume aanmaak wizard (als die nog draait) en start deze opnieuw. 8) Probeer het apparaat/partitie opnieuw te coderen.\n\nMocht VeraCrypt herhaaldelijk falen in zijn pogingen dit apparaat/partitie te coderen, dan kunt u overwegen een bestandscontainer aan te maken.</string>
|
<string lang="nl" key="FORMAT_CANT_DISMOUNT_FILESYS">Fout: Het apparaat/partitie bevat een bestandssysteem dat niet kan worden ontkoppeld. Dit bestandssyteem kan in gebruik zijn door het besturingssysteem. Het formatteren van het apparaat/partitie zal waarschijnlijk dataverminking en systeeminstabiliteit tot gevolg hebben.\n\nOm dit probleem op te lossen raden we aan deze partitie eerst te verwijderen en dan opnieuw aan te maken zonder deze te formatteren. Volg hiertoe de volgende stappen: 1) Klik RECHTS op het 'Deze Computer' (of 'Mijn Computer') icoontje in het 'Startmenu' en kies 'Beheren'. Het 'Computerbeheer' scherm verschijnt nu. 2) In het 'Computerbeheer' scherm, kies 'Opslag' > 'Schijfbeheer'. 3) Klik RECHTS op de partitie die u wilt gaan coderen en kies voor 'Partitie verwijderen', of 'Verwijder schijf', of 'Logisch station verwijderen'. 4) Klik op 'Ja'. Als Windows u vraagt de computer te herstarten, doet u dit dan. Herhaal dan de stappen 1 en 2 en ga verder met stap 5. 5) Klik nu RECHTS op de niet-toegewezen/vrije ruimte en selecteer 'Nieuwe partitie', of 'Nieuw eenvoudig volume', of 'Nieuw logisch station'. 6) De 'Wizard nieuwe partitie' of 'Wizard nieuw eenvoudig volume' moet nu verschijnen; volg de instructies. Op de wizard-pagina met de titel 'Formatteer partitie', selecteer 'Formatteer deze partitie NIET' of 'Formatteer dit volume NIET'. In dezelfde wizard, klik op 'Volgende' en dan 'Voltooien'. 7) Merk op dat het stationspad dat u hebt geselecteerd in VeraCrypt nu verandert en dus verkeerd kan zijn. Verlaat daarom de VeraCrypt volume aanmaak wizard (als die nog draait) en start deze opnieuw. 8) Probeer het apparaat/partitie opnieuw te coderen.\n\nMocht VeraCrypt herhaaldelijk falen in zijn pogingen dit apparaat/partitie te coderen, dan kunt u overwegen een bestandscontainer aan te maken.</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Fout: Het bestandssysteem kon niet gekoppeld en/of ontkoppeld worden. Het bestandssysteem kan in gebruik zijn door het besturingssysteem of programma's (bijv. antivirus software). Het coderen van de partitie kan dan data corruptie en systeeminstabiliteit veroorzaken.\n\nSluit a.u.b. ieder programma dat het bestandssysteem zou kunnen gebruiken (incl. antivirus software) en probeer het opnieuw. Indien dit niet helpt, volg a.u.b. de stappen hieronder.</string>
|
<string lang="nl" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Fout: Het bestandssysteem kon niet worden gekoppeld en/of ontkoppeld. Het bestandssysteem kan in gebruik zijn door het besturingssysteem of programma's (bijv. antivirus software). Het coderen van de partitie kan dan data corruptie en systeeminstabiliteit veroorzaken.\n\nSluit a.u.b. ieder programma dat het bestandssysteem zou kunnen gebruiken (incl. antivirus software) en probeer het opnieuw. Indien dit niet helpt, volg a.u.b. de stappen hieronder.</string>
|
||||||
<string lang="nl" key="DEVICE_IN_USE_INFO">WAARSCHUWING: Sommige van de gekoppelde apparaten/partities waren reeds in gebruik!\n\nIndien u dit negeert kan dit ongewenste gevolgen en systeeminstabiliteit tot gevolg hebben.\n\nWe raden u sterk aan ieder programma dat het apparaat/partitie in gebruik zou kunnen hebben te beëindigen.</string>
|
<string lang="nl" key="DEVICE_IN_USE_INFO">WAARSCHUWING: Sommige van de gekoppelde apparaten/partities waren reeds in gebruik!\n\nIndien u dit negeert kan dit ongewenste gevolgen en systeeminstabiliteit tot gevolg hebben.\n\nWe raden u sterk aan ieder programma dat het apparaat/partitie in gebruik zou kunnen hebben te beëindigen.</string>
|
||||||
<string lang="nl" key="DEVICE_PARTITIONS_ERR">Het geselecteerde apparaat bevat partities!\n\nDit apparaat formatteren zou systeem instabiliteit en dataverlies tot gevolg kunnen hebben. Selecteert u a.u.b. een partitie op dit apparaat, of verwijdert u alle partities zodat VeraCrypt het apparaat vervolgens veilig kan formatteren.</string>
|
<string lang="nl" key="DEVICE_PARTITIONS_ERR">Het geselecteerde apparaat bevat partities!\n\nDit apparaat formatteren zou systeem instabiliteit en dataverlies tot gevolg kunnen hebben. Selecteert u a.u.b. een partitie op dit apparaat, of verwijdert u alle partities zodat VeraCrypt het apparaat vervolgens veilig kan formatteren.</string>
|
||||||
<string lang="nl" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Op apparaten die niet gepartitioneerd zijn (incl. harde schijven en Solid State drives) kunnen gecodeerde VeraCrypt volumes worden aangemaakt. Een apparaat dat partities bevat kan slechts als één geheel worden gecodeerd (met één master key) indien Windows daarop geïnstalleerd is en ermee opgestart wordt.\n\nAls u het geselecteerde niet-systeem apparaat als één geheel wilt coderen met één master key, dient u eerst alle partities te verwijderen waarna VeraCrypt dit apparaat als één geheel kan formatteren. Als alternatief kunt u iedere partitie op dit apparaat afzonderlijk selecteren voor aanmaak van een VeraCrypt volume. (Iedere partitie wordt dan met een andere master key gecodeerd).\n\nNoot:Als u alle partities wilt verwijderen van een GPT disk, zou u deze kunnen converteren naar een MBR disk (middels bijv. Computerbeheer in Windows) teneinde de verborgen partities te kunnen verwijderen.</string>
|
<string lang="nl" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Op apparaten die niet gepartitioneerd zijn (incl. harde schijven en Solid State drives) kunnen gecodeerde VeraCrypt volumes worden aangemaakt. Een apparaat dat partities bevat kan slechts als één geheel worden gecodeerd (met één master key) indien Windows daarop geïnstalleerd is en ermee opgestart wordt.\n\nAls u het geselecteerde niet-systeem apparaat als één geheel wilt coderen met één master key, dient u eerst alle partities te verwijderen waarna VeraCrypt dit apparaat als één geheel kan formatteren. Als alternatief kunt u iedere partitie op dit apparaat afzonderlijk selecteren voor aanmaak van een VeraCrypt volume. (Iedere partitie wordt dan met een andere master key gecodeerd).\n\nNoot:Als u alle partities wilt verwijderen van een GPT disk, zou u deze kunnen converteren naar een MBR disk (middels bijv. Computerbeheer in Windows) teneinde de verborgen partities te kunnen verwijderen.</string>
|
||||||
<string lang="en" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Warning: If you encrypt the entire device (as opposed to encrypting only a partition on it), operating systems will consider the device as new, empty, and unformatted (as it will contain no partition table) and may spontaneously initialize the device (or ask you if you want to do so), which may damage the volume. Furthermore, it will not be possible to consistently mount the volume as favorite (e.g. when the drive number changes) or to assign a favorite-volume label to it.\n\nTo avoid that you may want to consider creating a partition on the device and encrypting the partition instead.\n\nAre you sure want to encrypt the entire device?</string>
|
<string lang="nl" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Waarschuwing: Als u het volledige apparaat codeert (dit in tegenstelling tot het coderen van een partitie), zal het besturingssysteem het apparaat als nieuw, leeg en ongeformatteerd beschouwen; dit omdat de partitietabel leeg is. Als gevolg hiervan kan het besturingssysteem het apparaat "spontaan" initialiseren (of je vragen dit te doen), met als gevolg dat het volume onbruikbaar wordt. Ook zal het niet mogelijk zijn om de volume als favoriet te koppelen (b.v. als de stationsletter wijzigt) of kan er geen favoriet-volumelabel worden toegewezen.\n\nOm dit te voorkomen kunt u overwegen een partitie op het apparaat aan te maken en die partitie te coderen.\n\nWeet u zeker dat je het volledige apparaat wilt coderen?</string>
|
||||||
<string lang="en" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT: Please keep in mind that this volume can NOT be mounted/accessed using the drive letter %c:, which is currently assigned to it!\n\nTo mount this volume, click 'Auto-Mount Devices' in the main VeraCrypt window (alternatively, in the main VeraCrypt window, click 'Select Device', then select this partition/device, and click 'Mount'). The volume will be mounted to a different drive letter, which you select from the list in the main VeraCrypt window.\n\nThe original drive letter %c: should be used only in case you need to remove encryption from the partition/device (e.g., if you no longer need encryption). In such a case, right-click the drive letter %c: in the 'Computer' (or 'My Computer') list and select 'Format'. Otherwise, the drive letter %c: should never be used (unless you remove it, as described e.g. in the VeraCrypt FAQ, and assign it to another partition/device).</string>
|
<string lang="nl" key="AFTER_FORMAT_DRIVE_LETTER_WARN">BELANGRIJK: Houdt er rekening mee dat deze volume NIET kan worden gekoppeld/benaderd met stationsletter %c:, welke nu hieraan is toegewezen!\n\nOm dit volume te koppelen, klik 'Auto-koppel apparaten' in het VeraCrypt hoofdvenster (alternatief, in het VeraCrypt hoofdvenster, klik 'Selecteer apparaat', selecteer daarna deze partitie/apparaat en klik 'Koppelen'). U moet het volume koppelen met een ander stationsletter, welke u kunt selecteren uit de lijst in het VeraCrypt hoofdvenster.\n\nDe originele stationsletter %c: mag alleen worden gebruikt in het geval dat u de codering van de partitie/apparaat wilt verwijderen (b.v., wanneer codering niet meer nodig is). In dat geval, rechtsklikken op de stationsletter %c: in de 'Computer' (of 'Mijn computer') lijst en selecteer 'Formatteren'. In andere gevallen moet u de stationsletter %c: nooit gebruiken (tenzij je het verwijderd, zoals beschreven b.v. in het VeraCrypt FAQ, en het toewijst aan een andere partitie/apparaat).</string>
|
||||||
<string lang="nl" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Op-De-Plaats codering van niet-systeem volumes wordt niet ondersteund door uw besturingssysteem (het wordt slechts door Windows Vista en latere versies van Windows ondersteund).\n\nDe reden is dat deze versie krimpen van het bestandsysteem niet ondersteunt (hetgeen noodzakelijk is om plaats te maken voor de volumeheader en back-upheader).</string>
|
<string lang="nl" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Op-De-Plaats codering van niet-systeem volumes wordt niet ondersteunt door uw besturingssysteem (het wordt slechts ondersteunt door Windows Vista en latere versies van Windows).\n\nDe reden is dat deze versie krimpen van het bestandsysteem niet ondersteunt (hetgeen noodzakelijk is om plaats te maken voor de volumeheader en back-upheader).</string>
|
||||||
<string lang="nl" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats gecodeerd worden.De reden hiervoor is dat alleen onder NTFS het krimpen van het bestandssyteem mogelijk is zodat er ruimte vrijkomt voor de volumeheader en de back-upheader).</string>
|
<string lang="nl" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats worden gecodeerd.De reden hiervoor is dat alleen onder NTFS het krimpen van het bestandssyteem mogelijk is zodat er ruimte vrijkomt voor de volumeheader en de back-upheader).</string>
|
||||||
<string lang="nl" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats gecodeerd worden.\n\nIndien u een VeraCrypt volume wilt aanmaken in deze partitie, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
|
<string lang="nl" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">De geselecteerde partitie blijkt geen NTFS bestandssysteem te bevatten. Alleen partities met daarop het NTFS bestandssysteem kunnen Op-De-Plaats worden gecodeerd.\n\nIndien u een VeraCrypt volume wilt aanmaken in deze partitie, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
|
||||||
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Fout: De partitie is te klein. VeraCrypt kan het niet Op-De-Plaats coderen.</string>
|
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Fout: De partitie is te klein. VeraCrypt kan het niet Op-De-Plaats coderen.</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_ALTERNATIVE_STEPS">Volg a.u.b. de volgende stappen om de bestanden op deze partitie te coderen:\n\n1) Maak een VeraCrypt volume aan op een lege partitie/apparaat en koppel dit volume.\n\n2) Kopieer alle bestanden van de partitie die u oorspronkelijk wilde coderen naar het in stap 1 aangemaakte en gekoppelde VeraCrypt volume. U heeft nu een in VeraCrypt gecodeerde back-up van uw bestanden gemaakt.\n\n3) Maak een VeraCrypt volume aan op de partitie die u oorspronkelijk wilde coderen en zorg ervoor dat u in de‘VeraCrypt volume aanmaak wizard’ de keuze ‘Aanmaak en formattering gecodeerd volume’ doet en dus niet ‘Op-De-Plaats Codering van de partitie (Windows Vista)’. Alle data op de partitie worden nu gewist. Na de aanmaak kunt u het volume koppelen.\n\n4) Kopieer nu alle back-upbestanden die u op het in stap 1 gekoppelde VeraCrypt volume hebt veiliggesteld naar het volume dat u in stap 3 heeft aangemaakt en gekoppeld.\n\nNadat u deze stappen hebt doorlopen zijn uw bestanden gecodeerd én heeft u er een back-up van.</string>
|
<string lang="nl" key="INPLACE_ENC_ALTERNATIVE_STEPS">Volg a.u.b. de volgende stappen om de bestanden op deze partitie te coderen:\n\n1) Maak een VeraCrypt volume aan op een lege partitie/apparaat en koppel dit volume.\n\n2) Kopieer alle bestanden van de partitie die u oorspronkelijk wilde coderen naar het in stap 1 aangemaakte en gekoppelde VeraCrypt volume. U heeft nu een in VeraCrypt gecodeerde back-up van uw bestanden gemaakt.\n\n3) Maak een VeraCrypt volume aan op de partitie die u oorspronkelijk wilde coderen en zorg ervoor dat u in de‘VeraCrypt volume aanmaak wizard’ de keuze ‘Aanmaak en formattering gecodeerd volume’ doet en dus niet ‘Op-De-Plaats Codering van de partitie (Windows Vista)’. Alle data op de partitie wordt nu gewist. Na de aanmaak kunt u het volume koppelen.\n\n4) Kopieer nu alle back-upbestanden die u op het in stap 1 gekoppelde VeraCrypt volume hebt veiliggesteld naar het volume dat u in stap 3 heeft aangemaakt en gekoppeld.\n\nNadat u deze stappen hebt doorlopen zijn uw bestanden gecodeerd én heeft u er een back-up van.</string>
|
||||||
<string lang="nl" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.\n\nIndien u een VeraCrypt volume wilt maken in het geselecteerde niet-systeem apparaat, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
|
<string lang="nl" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.\n\nIndien u een VeraCrypt volume wilt maken in het geselecteerde niet-systeem apparaat, kies dan ‘Aanmaak en formattering gecodeerd volume’ (i.p.v. ‘Op-De-Plaats Codering van de partitie (Windows Vista))’</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_INVALID_PATH">Fout: VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.Controleer a.u.b. of het opgegeven pad geldig is.</string>
|
<string lang="nl" key="INPLACE_ENC_INVALID_PATH">Fout: VeraCrypt kan alleen maar een partitie, een dynamisch volume of een gehele systeem schijf Op-De-Plaats coderen.Controleer a.u.b. of het opgegeven pad geldig is.</string>
|
||||||
<string lang="nl" key="CANNOT_RESIZE_FILESYS">Fout: Kan het bestandssysteem niet krimpen (dit is noodzakelijk om plaats te maken voor de volumeheader en de back-upheader).\n\nMogelijke oorzaken en oplossingen:\n\n- Niet voldoende vrije ruimte op het volume. Zorg ervoor dat geen ander programma aan het schrijven is naar het bestandssysteem.\n\n- Corrupt bestandssysteem. Controleer en repareer indien nodig de fouten: Klik rechts op de overeenkomende stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ > Extra > ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
|
<string lang="nl" key="CANNOT_RESIZE_FILESYS">Fout: Kan het bestandssysteem niet krimpen (dit is noodzakelijk om plaats te maken voor de volumeheader en de back-upheader).\n\nMogelijke oorzaken en oplossingen:\n\n- Niet voldoende vrije ruimte op het volume. Zorg ervoor dat geen ander programma aan het schrijven is naar het bestandssysteem.\n\n- Corrupt bestandssysteem. Controleer en repareer indien nodig de fouten: Klik rechts op de overeenkomende stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ > Extra > ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
|
||||||
<string lang="nl" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Fout: er is niet genoeg vrije ruimte op het volume waardoor het bestandssysteem niet ingekrompen kan worden (dit is noodzakelijk om ruimte te maken voor de volumeheader en de back-upheader).\n\nVerwijder a.u.b. alle overbodige bestanden en maak de prullenbak leeg om zo minstens 256 KB ruimte vrij te maken en probeer het daarna opnieuw. Door een probleem in Windows kan de vrije ruimte, gemeld door Windows Explorer, incorrect kan zijn zolang de computer niet opnieuw is gestart. Als opnieuw starten van de computer niet helpt, kan het bestandssysteem mogelijk corrupt zijn. Controleer dit dan en repareer de fouten: Klik rechts op de stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ > Extra > ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
|
<string lang="nl" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Fout: er is niet genoeg vrije ruimte op het volume waardoor het bestandssysteem niet kan worden ingekrompen (dit is noodzakelijk om ruimte te maken voor de volumeheader en de back-upheader).\n\nVerwijder a.u.b. alle overbodige bestanden en maak de prullenbak leeg om zo minstens 256 KB ruimte vrij te maken en probeer het daarna opnieuw. Door een probleem in Windows kan de vrije ruimte, gemeld door Windows Explorer, incorrect kan zijn zolang de computer niet opnieuw is gestart. Als opnieuw starten van de computer niet helpt, kan het bestandssysteem mogelijk corrupt zijn. Controleer dit dan en repareer de fouten: Klik rechts op de stationsletter in ‘Mijn Computer’, klik op ‘Eigenschappen’ > Extra > ‘Volume op fouten controleren’, zorg dat de optie ‘Fouten in het bestandssysteem automatisch corrigeren’ is aangevinkt en druk op ‘Starten’.\n\nAls deze stappen niet helpen, volg dan a.u.b. de volgende stappen.</string>
|
||||||
<string lang="nl" key="DISK_FREE_BYTES">Vrije ruimte op schijf %s is %.2f bytes.</string>
|
<string lang="nl" key="DISK_FREE_BYTES">Vrije ruimte op schijf %s is %.2f bytes.</string>
|
||||||
<string lang="nl" key="DISK_FREE_KB">Vrije ruimte op schijf %s is %.2f KB</string>
|
<string lang="nl" key="DISK_FREE_KB">Vrije ruimte op schijf %s is %.2f KB</string>
|
||||||
<string lang="nl" key="DISK_FREE_MB">Vrije ruimte op schijf %s is %.2f MB</string>
|
<string lang="nl" key="DISK_FREE_MB">Vrije ruimte op schijf %s is %.2f MB</string>
|
||||||
<string lang="nl" key="DISK_FREE_GB">Vrije ruimte op schijf %s is %.2f GB</string>
|
<string lang="nl" key="DISK_FREE_GB">Vrije ruimte op schijf %s is %.2f GB</string>
|
||||||
<string lang="nl" key="DISK_FREE_TB">Vrije ruimte op schijf %s is %.2f TB</string>
|
<string lang="nl" key="DISK_FREE_TB">Vrije ruimte op schijf %s is %.2f TB</string>
|
||||||
<string lang="nl" key="DISK_FREE_PB">Vrije ruimte op schijf %s is %.2f PB</string>
|
<string lang="nl" key="DISK_FREE_PB">Vrije ruimte op schijf %s is %.2f PB</string>
|
||||||
<string lang="nl" key="DRIVELETTERS">Kon geen beschikbare station letters verkrijgen.</string>
|
<string lang="nl" key="DRIVELETTERS">Kon geen beschikbare stationsletters verkrijgen.</string>
|
||||||
<string lang="nl" key="DRIVER_NOT_FOUND">Fout: VeraCrypt driver niet gevonden.\n\nKopieer a.u.b. de bestanden 'veracrypt.sys' en 'veracrypt-x64.sys' naar de map waar VeraCrypt (VeraCrypt.exe) is geïnstalleerd.</string>
|
<string lang="nl" key="DRIVER_NOT_FOUND">Fout: VeraCrypt driver niet gevonden.\n\nKopieer a.u.b. de bestanden 'veracrypt.sys' en 'veracrypt-x64.sys' naar de map waar VeraCrypt (VeraCrypt.exe) is geïnstalleerd.</string>
|
||||||
<string lang="en" key="DRIVER_VERSION">Error: An incompatible version of the VeraCrypt driver is currently running.\n\nIf you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already installed, you must uninstall it first (or upgrade it using the VeraCrypt installer). To uninstall it, follow these steps: On Windows Vista or later, select 'Startmenu' > Computer > 'Uninstall or change a program' > VeraCrypt > Uninstall; on Windows XP, select 'Startmenu' > Settings > 'Control Panel' > 'Add Or Remove Programs' > VeraCrypt > Remove.\n\nSimilarly, if you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already running in portable mode, you must restart the system first and then run only this new version.</string>
|
<string lang="en" key="DRIVER_VERSION">Error: An incompatible version of the VeraCrypt driver is currently running.\n\nIf you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already installed, you must uninstall it first (or upgrade it using the VeraCrypt installer). To uninstall it, follow these steps: On Windows Vista or later, select 'Startmenu' > Computer > 'Uninstall or change a program' > VeraCrypt > Uninstall; on Windows XP, select 'Startmenu' > Settings > 'Control Panel' > 'Add Or Remove Programs' > VeraCrypt > Remove.\n\nSimilarly, if you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already running in portable mode, you must restart the system first and then run only this new version.</string>
|
||||||
<string lang="nl" key="ERR_CIPHER_INIT_FAILURE">Error: Code initialisatie mislukt.</string>
|
<string lang="nl" key="ERR_CIPHER_INIT_FAILURE">Error: Code initialisatie mislukt.</string>
|
||||||
<string lang="nl" key="ERR_CIPHER_INIT_WEAK_KEY">Fout: Een zwakke of potentieel-zwakke sleutel is ontdekt. De sleutel zal worden verwijderd. Probeert u het a.u.b. opnieuw.</string>
|
<string lang="nl" key="ERR_CIPHER_INIT_WEAK_KEY">Fout: Een zwakke of potentieel-zwakke sleutel is ontdekt. De sleutel wordt verwijderd. Probeert u het a.u.b. opnieuw.</string>
|
||||||
<string lang="nl" key="EXCEPTION_REPORT">Een kritische fout is opgetreden in VeraCrypt waardoor dit beëindigd moet worden. Als dit veroorzaakt is door een fout in VeraCrypt willen we deze graag herstellen. Om ons te helpen kunt u ons een automatisch aangemaakt foutrapport sturen met de volgende informatie:\n\n- Programma versie\n- besturingssysteem versie\n- Type CPU\n- VeraCrypt component naam\n- Checksum van VeraCrypt executable\n- Symbolische naam van dialoog scherm\n- Fout categorie\n- Fout adres\n- VeraCrypt call stack\n\nAls u op 'Ja' drukt, zal de volgende URL (met daarin het hele foutrapport) worden geopend in uw standaard internet browser.\n\n%s\n\nWilt u ons dit rapport zenden?</string>
|
<string lang="nl" key="EXCEPTION_REPORT">Er is een kritische fout in VeraCrypt opgetreden waardoor dit moet worden beëindigd. Als dit veroorzaakt is door een fout in VeraCrypt willen we deze graag herstellen. Om ons te helpen kunt u ons een automatisch aangemaakt foutrapport sturen met de volgende informatie:\n\n- Programma versie\n- besturingssysteem versie\n- Type CPU\n- VeraCrypt component naam\n- Checksum van VeraCrypt executable\n- Symbolische naam van dialoog scherm\n- Fout categorie\n- Fout adres\n- VeraCrypt call stack\n\nAls u op 'Ja' drukt, zal de volgende URL (met daarin het hele foutrapport) worden geopend in uw standaard internet browser.\n\n%s\n\nWilt u ons dit rapport zenden?</string>
|
||||||
<string lang="nl" key="EXCEPTION_REPORT_EXT">Een kritische fout is opgetreden in uw systeem waardoor VeraCrypt moet worden beëindigd.\n\nMerk op dat deze fout NIET is veroorzaakt door VeraCrypt. (De VeraCrypt ontwikkelaars kunnen deze fout dus NIET oplossen). Controleer uw computer op mogelijke problemen (bijv. systeem configuratie, netwerkverbinding, defecte hardware componenten).</string>
|
<string lang="nl" key="EXCEPTION_REPORT_EXT">Er is een kritische fout in uw systeem opgetreden waardoor VeraCrypt moet worden beëindigd.\n\nMerk op dat deze fout NIET is veroorzaakt door VeraCrypt. (De VeraCrypt ontwikkelaars kunnen deze fout dus NIET oplossen). Controleer uw computer op mogelijke problemen (bijv. systeem configuratie, netwerkverbinding, defecte hardware componenten).</string>
|
||||||
<string lang="en" key="EXCEPTION_REPORT_EXT_FILESEL">A critical error has occurred in your system, which requires VeraCrypt to be terminated.\n\nIf this problem persists, you may want to try disabling or uninstalling applications that could potentially be causing this issue, such as antivirus or Internet security software, system "enhancers", "optimizers" or "tweakers", etc. If it does not help, you may want to try reinstalling your operating system (this problem may also be caused by malware).</string>
|
<string lang="en" key="EXCEPTION_REPORT_EXT_FILESEL">A critical error has occurred in your system, which requires VeraCrypt to be terminated.\n\nIf this problem persists, you may want to try disabling or uninstalling applications that could potentially be causing this issue, such as antivirus or Internet security software, system "enhancers", "optimizers" or "tweakers", etc. If it does not help, you may want to try reinstalling your operating system (this problem may also be caused by malware).</string>
|
||||||
<string lang="nl" key="EXCEPTION_REPORT_TITLE">VeraCrypt kritieke fout</string>
|
<string lang="nl" key="EXCEPTION_REPORT_TITLE">VeraCrypt kritieke fout</string>
|
||||||
<string lang="en" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt detected that the operating system recently crashed. There are many potential reasons why the system could have crashed (for example, a failing hardware component, a bug in a device driver, etc.)\n\nDo you want VeraCrypt to check whether a bug in VeraCrypt could have caused the system crash?</string>
|
<string lang="nl" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt constateert dat het besturingssysteem recent is gecrashed. Er zijn veel mogelijke redenen waardoor het systeem kan crashen (bijvoorbeeld, een defect hardwareonderdeel, een fout in een stuurprogramma, enz.)\n\nWilt u dat VeraCrypt controleert of er mogelijk een fout in VeraCrypt zit die de oorzaak van een systeemcrash kan zijn?</string>
|
||||||
<string lang="nl" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Wil je dat VeraCrypt systeemcrashes blijft controleren?</string>
|
<string lang="nl" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Wilt u dat VeraCrypt systeemcrashes blijft controleren?</string>
|
||||||
<string lang="nl" key="NO_MINIDUMP_FOUND">VeraCrypt heeft geen systeem crash dumpbestand gevonden.</string>
|
<string lang="nl" key="NO_MINIDUMP_FOUND">VeraCrypt heeft geen systeemcrash dumpbestand gevonden.</string>
|
||||||
<string lang="nl" key="ASK_DELETE_KERNEL_CRASH_DUMP">Wil je de Windows crash logbestanden verwijderen om schijfruimte vrij te maken?</string>
|
<string lang="nl" key="ASK_DELETE_KERNEL_CRASH_DUMP">Wilt u de Windows crash logbestanden verwijderen om schijfruimte vrij te maken?</string>
|
||||||
<string lang="en" key="ASK_DEBUGGER_INSTALL">In order to analyze the system crash, VeraCrypt needs to install Microsoft Debugging Tools for Windows first.\n\nAfter you click OK, the Windows installer will download the Microsoft Debugging Tools installation package (16 MB) from a Microsoft server and install it (the Windows installer will be forwarded to the Microsoft server URL from the veracrypt.org server, which ensures that this feature works even if Microsoft changes the location of the installation package).</string>
|
<string lang="en" key="ASK_DEBUGGER_INSTALL">In order to analyze the system crash, VeraCrypt needs to install Microsoft Debugging Tools for Windows first.\n\nAfter you click OK, the Windows installer will download the Microsoft Debugging Tools installation package (16 MB) from a Microsoft server and install it (the Windows installer will be forwarded to the Microsoft server URL from the veracrypt.org server, which ensures that this feature works even if Microsoft changes the location of the installation package).</string>
|
||||||
<string lang="nl" key="SYSTEM_CRASH_ANALYSIS_INFO">Wanneer je op OK klikt zal VeraCrypt de systeemcrash analyseren. Dit kan enkele minuten duren.</string>
|
<string lang="nl" key="SYSTEM_CRASH_ANALYSIS_INFO">Wanneer u op OK klikt zal VeraCrypt de systeemcrash analyseren. Dit kan enkele minuten duren.</string>
|
||||||
<string lang="nl" key="DEBUGGER_NOT_FOUND">Zorg ervoor dat de environment variabele 'PATH' ook een verwijzing naar 'kd.exe' (Kernel Debugger) bevat.</string>
|
<string lang="nl" key="DEBUGGER_NOT_FOUND">Zorg ervoor dat de environment variabele 'PATH' ook een verwijzing naar 'kd.exe' (Kernel Debugger) bevat.</string>
|
||||||
<string lang="nl" key="SYSTEM_CRASH_NO_VERACRYPT">Het lijkt erop dat VeraCrypt niet de oorzaak van de systeemcrash is. Er zijn veel mogelijkheden waardoor een systeem kan crashen (bijvoorbeeld, een defect hardware onderdeel, een fout in een stuurapparaat, enz.)</string>
|
<string lang="nl" key="SYSTEM_CRASH_NO_VERACRYPT">Het lijkt erop dat VeraCrypt niet de oorzaak van de systeemcrash is. Er zijn veel mogelijkheden waardoor een systeem kan crashen (bijvoorbeeld, een defect hardware onderdeel, een fout in een stuurapparaat, enz.)</string>
|
||||||
<string lang="nl" key="SYSTEM_CRASH_UPDATE_DRIVER">Uit de analyse blijkt dat updaten van het volgende stuurprogramma mogelijk het probleem oplost: </string>
|
<string lang="nl" key="SYSTEM_CRASH_UPDATE_DRIVER">Uit de analyse blijkt dat updaten van het volgende stuurprogramma mogelijk het probleem oplost: </string>
|
||||||
<string lang="en" key="SYSTEM_CRASH_REPORT">To help us determine whether there is a bug in VeraCrypt, you can send us an automatically generated error report containing the following items:\n- Program version\n- Operating system version\n- Type of CPU\n- Error category\n- Driver name and version\n- System call stack\n\nIf you select 'Yes', the following URL (which contains the entire error report) will be opened in your default Internet browser.</string>
|
<string lang="en" key="SYSTEM_CRASH_REPORT">To help us determine whether there is a bug in VeraCrypt, you can send us an automatically generated error report containing the following items:\n- Program version\n- Operating system version\n- Type of CPU\n- Error category\n- Driver name and version\n- System call stack\n\nIf you select 'Yes', the following URL (which contains the entire error report) will be opened in your default Internet browser.</string>
|
||||||
<string lang="nl" key="ASK_SEND_ERROR_REPORT">Wil je ons het bovengenoemde foutenrapport sturen?</string>
|
<string lang="nl" key="ASK_SEND_ERROR_REPORT">Wilt u ons het bovengenoemde foutenrapport sturen?</string>
|
||||||
<string lang="nl" key="ENCRYPT">&Coderen</string>
|
<string lang="nl" key="ENCRYPT">&Coderen</string>
|
||||||
<string lang="nl" key="DECRYPT">&Decoderen</string>
|
<string lang="nl" key="DECRYPT">&Decoderen</string>
|
||||||
<string lang="nl" key="PERMANENTLY_DECRYPT">&Permanent decoderen</string>
|
<string lang="nl" key="PERMANENTLY_DECRYPT">&Permanent decoderen</string>
|
||||||
@@ -503,7 +503,7 @@
|
|||||||
<string lang="nl" key="WIPE_FINISHED">De inhoud van de partitie/apparaat is succesvol gewist.</string>
|
<string lang="nl" key="WIPE_FINISHED">De inhoud van de partitie/apparaat is succesvol gewist.</string>
|
||||||
<string lang="nl" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">De inhoud van de partitie waar het oorspronkelijke systeem aanwezig was is succesvol gewist.</string>
|
<string lang="nl" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">De inhoud van de partitie waar het oorspronkelijke systeem aanwezig was is succesvol gewist.</string>
|
||||||
<string lang="en" key="DECOY_OS_VERSION_WARNING">Please make sure the version of Windows you are going to install (on the wiped partition) is the same as the version of Windows you are currently running. This is required due to the fact that both systems will share a common boot partition.</string>
|
<string lang="en" key="DECOY_OS_VERSION_WARNING">Please make sure the version of Windows you are going to install (on the wiped partition) is the same as the version of Windows you are currently running. This is required due to the fact that both systems will share a common boot partition.</string>
|
||||||
<string lang="nl" key="SYSTEM_ENCRYPTION_FINISHED">De systeempartitie/-schijf is succesvol gecodeerd.\n\nNote: Als er niet-systeem Veracrypt volumes zijn die je automatisch wilt koppelen wanneer Windows start, dan kan je dat instellen door ze te koppelen en daarna 'favorieten' te selecteren > 'Gekoppelde volume aan systeemfavorieten toevoegen').</string>
|
<string lang="nl" key="SYSTEM_ENCRYPTION_FINISHED">De systeempartitie/-schijf is succesvol gecodeerd.\n\nNote: Als er niet-systeem Veracrypt volumes zijn die u automatisch wilt koppelen wanneer Windows start, dan kunt u dat instellen door ze te koppelen en daarna 'favorieten' te selecteren > 'Gekoppelde volume aan systeemfavorieten toevoegen').</string>
|
||||||
<string lang="nl" key="SYSTEM_DECRYPTION_FINISHED">De systeem partitie/schijf is succesvol gedecodeerd.</string>
|
<string lang="nl" key="SYSTEM_DECRYPTION_FINISHED">De systeem partitie/schijf is succesvol gedecodeerd.</string>
|
||||||
<string lang="nl" key="FORMAT_FINISHED_HELP">\n\nHet VeraCrypt volume is succesvol aangemaakt en is klaar voor gebruik. Als u nog een VeraCrypt volume wilt aanmaken, klik dan op Volgende. Anders op Sluiten klikken.</string>
|
<string lang="nl" key="FORMAT_FINISHED_HELP">\n\nHet VeraCrypt volume is succesvol aangemaakt en is klaar voor gebruik. Als u nog een VeraCrypt volume wilt aanmaken, klik dan op Volgende. Anders op Sluiten klikken.</string>
|
||||||
<string lang="nl" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nHet Verborgen VeraCrypt volume is aangemaakt (het verborgen besturingssysteem zal zich in dit verborgen volume bevinden).\n\nKlik op Volgende om door te gaan.</string>
|
<string lang="nl" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nHet Verborgen VeraCrypt volume is aangemaakt (het verborgen besturingssysteem zal zich in dit verborgen volume bevinden).\n\nKlik op Volgende om door te gaan.</string>
|
||||||
@@ -540,7 +540,7 @@
|
|||||||
<string lang="nl" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Het verborgen volume is nu beveiligd tegen schade totdat het buiten volume is ontkoppeld.\n\nWAARSCHUWING: Als data wordt geprobeerd te schrijven naar het verborgen volume, zal VeraCrypt schrijf-bescherming instellen voor het gehele volume (zowel het buiten als het verborgen deel) todat het is ontkoppeld. Dit kan beschadiging van gegevens in het buiten volume tot gevolg hebben, wat (indien herhaald) de aannemelijke ontkenbaarheid van het verborgen volume kan aantasten. Gelieve daarom te voorkomen dat er nu geschreven wordt in het verborgen volume gedeelte. Alle gegevens weggeschreven naar het verborgen volume zullen verloren gaan. Windows kan dit rapporteren als een schrijffout ("Uitgestelde schrijfactie mislukt" of "Verkeerde parameter").</string>
|
<string lang="nl" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Het verborgen volume is nu beveiligd tegen schade totdat het buiten volume is ontkoppeld.\n\nWAARSCHUWING: Als data wordt geprobeerd te schrijven naar het verborgen volume, zal VeraCrypt schrijf-bescherming instellen voor het gehele volume (zowel het buiten als het verborgen deel) todat het is ontkoppeld. Dit kan beschadiging van gegevens in het buiten volume tot gevolg hebben, wat (indien herhaald) de aannemelijke ontkenbaarheid van het verborgen volume kan aantasten. Gelieve daarom te voorkomen dat er nu geschreven wordt in het verborgen volume gedeelte. Alle gegevens weggeschreven naar het verborgen volume zullen verloren gaan. Windows kan dit rapporteren als een schrijffout ("Uitgestelde schrijfactie mislukt" of "Verkeerde parameter").</string>
|
||||||
<string lang="nl" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Ieder van de verborgen volumes binnen de nieuw gekoppelde volumes is nu beschermd tegen schade tot het moment van ontkoppeling.\n\nWAARSCHUWING: Als data wordt geprobeerd te schrijven naar het verborgen volume van ieder van deze volumes, zal VeraCrypt schrijf-bescherming instellen voor het gehele volume (zowel het buiten als het verborgen deel) totdat het is ontkoppeld. Dit kan beschadiging van gegevens in het buiten volume tot gevolg hebben, wat (indien herhaald) de aannemelijke ontkenbaarheid van het verborgen volume kan aantasten. Gelieve daarom te voorkomen dat er nu geschreven wordt in het verborgen volume gedeelte. Alle gegevens weggeschreven naar het verborgen volume zullen verloren gaan. Windows kan dit rapporteren als een schrijffout ("Uitgestelde schrijfactie mislukt" of "Verkeerde parameter").</string>
|
<string lang="nl" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Ieder van de verborgen volumes binnen de nieuw gekoppelde volumes is nu beschermd tegen schade tot het moment van ontkoppeling.\n\nWAARSCHUWING: Als data wordt geprobeerd te schrijven naar het verborgen volume van ieder van deze volumes, zal VeraCrypt schrijf-bescherming instellen voor het gehele volume (zowel het buiten als het verborgen deel) totdat het is ontkoppeld. Dit kan beschadiging van gegevens in het buiten volume tot gevolg hebben, wat (indien herhaald) de aannemelijke ontkenbaarheid van het verborgen volume kan aantasten. Gelieve daarom te voorkomen dat er nu geschreven wordt in het verborgen volume gedeelte. Alle gegevens weggeschreven naar het verborgen volume zullen verloren gaan. Windows kan dit rapporteren als een schrijffout ("Uitgestelde schrijfactie mislukt" of "Verkeerde parameter").</string>
|
||||||
<string lang="nl" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">WAARSCHUWING: Er is geprobeerd data te schrijven in het verborgen volume gedeelte van het volume dat is gekoppeld als %c:! Om het verborgen volume te beschermen voorkwam VeraCrypt dat deze data werden opgeslagen. Dit kan beschadiging van gegevens tot gevolg hebben in het buiten volume. Windows kan een schrijffout gerapporteerd hebben ("uitgestelde Schrijfactie mislukt" of "Verkeerde parameter"). Het gehele volume (zowel het Buiten als het Verborgen gedeelte) zullen nu tegen schrijven beschermd zijn tot het ontkoppelen. Als VeraCrypt al eerder voorkomen heeft dat data geschreven werden naar het verborgen volume gedeelte van dit volume, kan de aannemelijke ontkenbaarheid van dit verborgen volume aangetast zijn (als gevolg van mogelijke ongebruikelijke gerelateerde inconstitenties binnen het bestandssyteem van het buiten volume). Neem daarom in overweging een nieuw VeraCrypt volume aan te maken (met Snelformatteren uitgeschakeld) en de bestanden van dit volume naar het nieuwe volume te verplaatsen; dit volume moet beveiligd gewist worden (zowel het Buiten als het Verborgen gedeelte). We raden u sterk aan de computer nu opnieuw op te starten.</string>
|
<string lang="nl" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">WAARSCHUWING: Er is geprobeerd data te schrijven in het verborgen volume gedeelte van het volume dat is gekoppeld als %c:! Om het verborgen volume te beschermen voorkwam VeraCrypt dat deze data werden opgeslagen. Dit kan beschadiging van gegevens tot gevolg hebben in het buiten volume. Windows kan een schrijffout gerapporteerd hebben ("uitgestelde Schrijfactie mislukt" of "Verkeerde parameter"). Het gehele volume (zowel het Buiten als het Verborgen gedeelte) zullen nu tegen schrijven beschermd zijn tot het ontkoppelen. Als VeraCrypt al eerder voorkomen heeft dat data geschreven werden naar het verborgen volume gedeelte van dit volume, kan de aannemelijke ontkenbaarheid van dit verborgen volume aangetast zijn (als gevolg van mogelijke ongebruikelijke gerelateerde inconstitenties binnen het bestandssyteem van het buiten volume). Neem daarom in overweging een nieuw VeraCrypt volume aan te maken (met Snelformatteren uitgeschakeld) en de bestanden van dit volume naar het nieuwe volume te verplaatsen; dit volume moet beveiligd gewist worden (zowel het Buiten als het Verborgen gedeelte). We raden u sterk aan de computer nu opnieuw op te starten.</string>
|
||||||
<string lang="nl" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Je geeft aan dat je bestanden groter dan 4 Gb op dit volume wilt opslaan. Daarvoor moet het volume als NTFS geformatteerd zijn, dit is echter NIET mogelijk.</string>
|
<string lang="nl" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">U geeft aan dat u bestanden groter dan 4 Gb op dit volume wilt opslaan. Daarvoor moet het volume als NTFS geformatteerd zijn, dit is echter NIET mogelijk.</string>
|
||||||
<string lang="en" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Please note that when a hidden operating system is running, non-hidden VeraCrypt volumes cannot be formatted as NTFS. The reason is that the volume would need to be temporarily mounted without write protection in order to allow the operating system to format it as NTFS (whereas formatting as FAT is performed by VeraCrypt, not by the operating system, and without mounting the volume). For further technical details, see below. You can create a non-hidden NTFS volume from within the decoy operating system.</string>
|
<string lang="en" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Please note that when a hidden operating system is running, non-hidden VeraCrypt volumes cannot be formatted as NTFS. The reason is that the volume would need to be temporarily mounted without write protection in order to allow the operating system to format it as NTFS (whereas formatting as FAT is performed by VeraCrypt, not by the operating system, and without mounting the volume). For further technical details, see below. You can create a non-hidden NTFS volume from within the decoy operating system.</string>
|
||||||
<string lang="en" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">For security reasons, when a hidden operating system is running, hidden volumes can be created only in the 'direct' mode (because outer volumes must always be mounted as read-only). To create a hidden volume securely, follow these steps:\n\n1) Boot the decoy system.\n\n2) Create a normal VeraCrypt volume and, to this volume, copy some sensitive-looking files that you actually do NOT want to hide (the volume will become the outer volume).\n\n3) Boot the hidden system and start the VeraCrypt Volume Creation Wizard. If the volume is file-hosted, move it to the system partition or to another hidden volume (otherwise, the newly created hidden volume would be mounted as read-only and could not be formatted). Follow the instructions in the wizard so as to select the 'direct' hidden volume creation mode.\n\n4) In the wizard, select the volume you created in step 2 and then follow the instructions to create a hidden volume within it.</string>
|
<string lang="en" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">For security reasons, when a hidden operating system is running, hidden volumes can be created only in the 'direct' mode (because outer volumes must always be mounted as read-only). To create a hidden volume securely, follow these steps:\n\n1) Boot the decoy system.\n\n2) Create a normal VeraCrypt volume and, to this volume, copy some sensitive-looking files that you actually do NOT want to hide (the volume will become the outer volume).\n\n3) Boot the hidden system and start the VeraCrypt Volume Creation Wizard. If the volume is file-hosted, move it to the system partition or to another hidden volume (otherwise, the newly created hidden volume would be mounted as read-only and could not be formatted). Follow the instructions in the wizard so as to select the 'direct' hidden volume creation mode.\n\n4) In the wizard, select the volume you created in step 2 and then follow the instructions to create a hidden volume within it.</string>
|
||||||
<string lang="nl" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Wanneer een verborgen operating system draait kunnen locale ongecodeerde bestandssystemen en niet-verborgen VeraCrypt volumes alleen als read-only worden gekoppeld (data schrijven onmogelijk).\n\nData kunnen dan slechts worden geschreven naar bestanden in een verborgen VeraCrypt volume (indien dit verborgen volume NIET is geplaatst in een container in een ongecodeerd bestandssysteem of een read-only bestandssysteem).</string>
|
<string lang="nl" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Wanneer een verborgen operating system draait kunnen locale ongecodeerde bestandssystemen en niet-verborgen VeraCrypt volumes alleen als read-only worden gekoppeld (data schrijven onmogelijk).\n\nData kunnen dan slechts worden geschreven naar bestanden in een verborgen VeraCrypt volume (indien dit verborgen volume NIET is geplaatst in een container in een ongecodeerd bestandssysteem of een read-only bestandssysteem).</string>
|
||||||
@@ -557,9 +557,9 @@
|
|||||||
<string lang="nl" key="ERR_CONTAINER_SIZE_TOO_BIG">De in de opdrachtregel opgegeven grootte van de bestandscontainer is groter dan de beschikbare vrije ruimte. Het volume kan niet worden aangemaakt.</string>
|
<string lang="nl" key="ERR_CONTAINER_SIZE_TOO_BIG">De in de opdrachtregel opgegeven grootte van de bestandscontainer is groter dan de beschikbare vrije ruimte. Het volume kan niet worden aangemaakt.</string>
|
||||||
<string lang="nl" key="ERR_VOLUME_SIZE_TOO_SMALL">De in de opdrachtregel opgegeven volumegrootte is te klein. Het volume kan niet worden aangemaakt.</string>
|
<string lang="nl" key="ERR_VOLUME_SIZE_TOO_SMALL">De in de opdrachtregel opgegeven volumegrootte is te klein. Het volume kan niet worden aangemaakt.</string>
|
||||||
<string lang="nl" key="ERR_VOLUME_SIZE_TOO_BIG">De in de opdrachtregel opgegeven volumegrootte is te groot. Het volume kan niet worden aangemaakt.</string>
|
<string lang="nl" key="ERR_VOLUME_SIZE_TOO_BIG">De in de opdrachtregel opgegeven volumegrootte is te groot. Het volume kan niet worden aangemaakt.</string>
|
||||||
<string lang="nl" key="INIT_SYS_ENC">Applicatie componenten voor systeem codering kunnen niet geïnitialiseerd worden.</string>
|
<string lang="nl" key="INIT_SYS_ENC">Applicatie componenten voor systeemcodering kunnen niet geïnitialiseerd worden.</string>
|
||||||
<string lang="nl" key="INIT_RAND">Het programma heeft de initialisatie van de random nummer generator niet kunnen voltooien!</string>
|
<string lang="nl" key="INIT_RAND">Het programma heeft de initialisatie van de random nummer generator niet kunnen voltooien!</string>
|
||||||
<string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
|
<string lang="nl" key="CAPI_RAND">Windows Crypto API mislukt!\n\n\n(Als u hierover een bug rapporteert, wilt u dan ook de volgende technische informatie in het bugrapport vermelden:\n%hs, Last Error = 0x%.8X)</string>
|
||||||
<string lang="nl" key="INIT_REGISTER">Het programma heeft de initialisatie niet kunnen voltooien. Het registreren van de 'Dialog Class' is mislukt.</string>
|
<string lang="nl" key="INIT_REGISTER">Het programma heeft de initialisatie niet kunnen voltooien. Het registreren van de 'Dialog Class' is mislukt.</string>
|
||||||
<string lang="nl" key="INIT_RICHEDIT">Fout: Laden van Rich Edit systeem library mislukt.</string>
|
<string lang="nl" key="INIT_RICHEDIT">Fout: Laden van Rich Edit systeem library mislukt.</string>
|
||||||
<string lang="nl" key="INTRO_TITLE">VeraCrypt volume aanmaak wizard</string>
|
<string lang="nl" key="INTRO_TITLE">VeraCrypt volume aanmaak wizard</string>
|
||||||
@@ -580,12 +580,12 @@
|
|||||||
<string lang="nl" key="EXTRACT">U&itpakken</string>
|
<string lang="nl" key="EXTRACT">U&itpakken</string>
|
||||||
<string lang="nl" key="NODRIVER">Kan geen verbinding maken met het VeraCrypt apparaat stuurprogramma. VeraCrypt kan niet werken als dit stuurprogramma niet gestart is.\n\nDoor de eigenschappen van Windows kan het nodig zijn uit te loggen of het systeem te herstarten voordat het apparaatstuurprogramma kan worden geladen.</string>
|
<string lang="nl" key="NODRIVER">Kan geen verbinding maken met het VeraCrypt apparaat stuurprogramma. VeraCrypt kan niet werken als dit stuurprogramma niet gestart is.\n\nDoor de eigenschappen van Windows kan het nodig zijn uit te loggen of het systeem te herstarten voordat het apparaatstuurprogramma kan worden geladen.</string>
|
||||||
<string lang="nl" key="NOFONT">Error ontstaan tijdens laden/voorbereiden lettertypes.</string>
|
<string lang="nl" key="NOFONT">Error ontstaan tijdens laden/voorbereiden lettertypes.</string>
|
||||||
<string lang="nl" key="NOT_FOUND">De stations letter is niet gevonden of er is geen stations letter opgegeven.</string>
|
<string lang="nl" key="NOT_FOUND">De stationsletter is niet gevonden of er is geen stationsletter opgegeven.</string>
|
||||||
<string lang="en" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">Error: Cannot assign drive letter.\n\nUntil a drive letter is assigned to the decrypted volume, you will not be able to access data stored on the volume.\n\nRetry?</string>
|
<string lang="nl" key="ERR_CANNOT_ASSIGN_DRIVE_LETTER_NONSYS_DEC">FOUT: Kan geen stationsletter toewijzen.\n\nZolang als er géén stationsletter is toegewezen kunt u de opgeslagen data niet benaderen.\n\nOpnieuw proberen?</string>
|
||||||
<string lang="nl" key="DRIVE_LETTER_UNAVAILABLE">Geen stations letter beschikbaar.</string>
|
<string lang="nl" key="DRIVE_LETTER_UNAVAILABLE">Geen stationsletter beschikbaar.</string>
|
||||||
<string lang="nl" key="NO_FILE_SELECTED">Geen bestand geselecteerd!</string>
|
<string lang="nl" key="NO_FILE_SELECTED">Geen bestand geselecteerd!</string>
|
||||||
<string lang="nl" key="NO_FREE_DRIVES">Geen Stations letters beschikbaar.</string>
|
<string lang="nl" key="NO_FREE_DRIVES">Geen stationsletters beschikbaar.</string>
|
||||||
<string lang="nl" key="NO_FREE_DRIVE_FOR_OUTER_VOL">Geen vrije stations letter gevonden voor het buiten volume! Aanmaak volume kan niet doorgaan.</string>
|
<string lang="nl" key="NO_FREE_DRIVE_FOR_OUTER_VOL">Geen vrije stationsletter gevonden voor het buiten volume! Aanmaak volume kan niet doorgaan.</string>
|
||||||
<string lang="nl" key="NO_OS_VER">Het was niet mogelijk de versie van uw besturingssysteem te herkennen. Het kan mogelijk zijn dat u een niet-ondersteund besturingssysteem gebruikt.</string>
|
<string lang="nl" key="NO_OS_VER">Het was niet mogelijk de versie van uw besturingssysteem te herkennen. Het kan mogelijk zijn dat u een niet-ondersteund besturingssysteem gebruikt.</string>
|
||||||
<string lang="nl" key="NO_PATH_SELECTED">Geen pad geselecteerd!</string>
|
<string lang="nl" key="NO_PATH_SELECTED">Geen pad geselecteerd!</string>
|
||||||
<string lang="nl" key="NO_SPACE_FOR_HIDDEN_VOL">Niet genoeg ruimte om volume aan te maken! Aanmaken van volume kan niet worden voortgezet.</string>
|
<string lang="nl" key="NO_SPACE_FOR_HIDDEN_VOL">Niet genoeg ruimte om volume aan te maken! Aanmaken van volume kan niet worden voortgezet.</string>
|
||||||
@@ -601,7 +601,7 @@
|
|||||||
<string lang="nl" key="OVERWRITEPROMPT">WAARSCHUWING: Het bestand '%s' bestaat reeds!\n\nBELANGRIJK: VERACRYPT ZAL DIT BESTAND NIET CODEREN MAAR VERWIJDEREN. Bent u er zeker van dat u het bestand wilt verwijderen en vervangen door een nieuwe VeraCrypt bestandscontainer?</string>
|
<string lang="nl" key="OVERWRITEPROMPT">WAARSCHUWING: Het bestand '%s' bestaat reeds!\n\nBELANGRIJK: VERACRYPT ZAL DIT BESTAND NIET CODEREN MAAR VERWIJDEREN. Bent u er zeker van dat u het bestand wilt verwijderen en vervangen door een nieuwe VeraCrypt bestandscontainer?</string>
|
||||||
<string lang="nl" key="OVERWRITEPROMPT_DEVICE">VOORZICHTIG: ALLE BESTANDEN DIE MOMENTEEL AANWEZIG ZIJN OP DE GESELECTEERDE %s '%s'%s ZULLEN WORDEN GEWIST EN ZIJN VERLOREN (ZIJ ZULLEN NIET GECODEERD WORDEN)!\n\nBent u er zeker van dat u door wilt gaan met formatteren?</string>
|
<string lang="nl" key="OVERWRITEPROMPT_DEVICE">VOORZICHTIG: ALLE BESTANDEN DIE MOMENTEEL AANWEZIG ZIJN OP DE GESELECTEERDE %s '%s'%s ZULLEN WORDEN GEWIST EN ZIJN VERLOREN (ZIJ ZULLEN NIET GECODEERD WORDEN)!\n\nBent u er zeker van dat u door wilt gaan met formatteren?</string>
|
||||||
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM">LET OP: U kunt het volume niet koppelen en hebt dus geen toegang tot de bestanden totdat het coderen klaar is.\n\nWilt u starten met coderen van het geslecteerde %s '%s'%s?</string>
|
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM">LET OP: U kunt het volume niet koppelen en hebt dus geen toegang tot de bestanden totdat het coderen klaar is.\n\nWilt u starten met coderen van het geslecteerde %s '%s'%s?</string>
|
||||||
<string lang="en" key="NONSYS_INPLACE_DEC_CONFIRM">WARNING: You will not be able to mount the volume or access any files stored on it until it has been fully decrypted.\n\nAre you sure you want to start decrypting the selected %s '%s'%s?</string>
|
<string lang="nl" key="NONSYS_INPLACE_DEC_CONFIRM">Waarschuwing: U kunt het volume niet koppelen en geen bestanden die zijn opgeslagen benaderen totdat het systeem is gedecodeerd.\n\nWeet u zeker dat u wilt starten met het decoderen van de geselecteerde %s '%s'%s?</string>
|
||||||
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">LET OP: Indien de spanning onderbroken wordt, of het besturingssysteem loopt onverhoopt vast door een soft/hardware fout tijdens de Op-De-Plaats Codering, dan kan hierdoor data verminkt raken of verloren gaan! Wij raden u daarom aan alvorens het coderen te starten, een deugdelijke back-up van de te coderen data te maken.\n\nHeeft u een back-up gemaakt?</string>
|
<string lang="nl" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">LET OP: Indien de spanning onderbroken wordt, of het besturingssysteem loopt onverhoopt vast door een soft/hardware fout tijdens de Op-De-Plaats Codering, dan kan hierdoor data verminkt raken of verloren gaan! Wij raden u daarom aan alvorens het coderen te starten, een deugdelijke back-up van de te coderen data te maken.\n\nHeeft u een back-up gemaakt?</string>
|
||||||
<string lang="nl" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">VOORZICHTIG: ALLE BESTANDEN OP DE PARTITIE '%s'%s (DE EERSTE PARTITIE ACHTER DE SYSTEEM PARTITIE) WORDEN GEWIST (ZE WORDEN NIET GECODEERD)!\n\nBent u er zeker van dat u wilt formatteren?</string>
|
<string lang="nl" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">VOORZICHTIG: ALLE BESTANDEN OP DE PARTITIE '%s'%s (DE EERSTE PARTITIE ACHTER DE SYSTEEM PARTITIE) WORDEN GEWIST (ZE WORDEN NIET GECODEERD)!\n\nBent u er zeker van dat u wilt formatteren?</string>
|
||||||
<string lang="nl" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">WAARSCHUWING! DE GESELECTEERDE PARTITIE BEVAT VEEL DATA! Alle bestanden op deze partitie zullen worden gewist (ze worden NIET gecodeerd)!</string>
|
<string lang="nl" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">WAARSCHUWING! DE GESELECTEERDE PARTITIE BEVAT VEEL DATA! Alle bestanden op deze partitie zullen worden gewist (ze worden NIET gecodeerd)!</string>
|
||||||
@@ -621,7 +621,7 @@
|
|||||||
<string lang="nl" key="PKCS5_PRF_CHANGED">Header Key afleidingsalgoritme succesvol gecreëerd.</string>
|
<string lang="nl" key="PKCS5_PRF_CHANGED">Header Key afleidingsalgoritme succesvol gecreëerd.</string>
|
||||||
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Geef a.u.b. wachtwoord en/of sleutelbestand(en) voor het niet-systeem volume waarvan u de Op-De-Plaats coderings wilt hervatten.\n\nNadat u op Volgende heeft gedrukt, zal VeraCrypt proberen alle niet-systeemvolumes te vinden waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of de sleutelbestand(en) van toepassing zijn. Indien meer dan één zo’n volume wordt gevonden, dient u het juiste in de volgende stap te selecteren.</string>
|
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Geef a.u.b. wachtwoord en/of sleutelbestand(en) voor het niet-systeem volume waarvan u de Op-De-Plaats coderings wilt hervatten.\n\nNadat u op Volgende heeft gedrukt, zal VeraCrypt proberen alle niet-systeemvolumes te vinden waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of de sleutelbestand(en) van toepassing zijn. Indien meer dan één zo’n volume wordt gevonden, dient u het juiste in de volgende stap te selecteren.</string>
|
||||||
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Selecteer a.u.b. een van de getoonde volumes. De lijst bevat ieder toegankelijk niet-syteem volume waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestand(en) van toepassing zijn.</string>
|
<string lang="nl" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Selecteer a.u.b. een van de getoonde volumes. De lijst bevat ieder toegankelijk niet-syteem volume waarvan de codering is onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestand(en) van toepassing zijn.</string>
|
||||||
<string lang="en" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Please enter the password and/or keyfile(s) for the non-system VeraCrypt volume that you want to decrypt.</string>
|
<string lang="nl" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Voer het wachtwoord en/of sleutelbestand(en) in voor het VerCrypt niet-systeem volume die u wilt decoderen.</string>
|
||||||
<string lang="nl" key="PASSWORD_HELP">Het is erg belangrijk dat u een goed wachtwoord kiest. U dient een wachtwoord te vermijden dat bestaat uit een of meerdere woorden die kunnen worden teruggevonden in een woordenboek. Ook moeten eigennamen en geboortedata vermeden worden, evenmin mag het makkelijk te raden zijn. We raden u dringend een willekeurige combinatie van hoofd- en kleine letters, nummers en speciale karakters (zoals @ ^ = $ * +) aan. Het is heel belangrijk dat het meer dan 20 karakters telt (hoe langer hoe beter). The maximaal mogelijke lengte is 64 karakters.</string>
|
<string lang="nl" key="PASSWORD_HELP">Het is erg belangrijk dat u een goed wachtwoord kiest. U dient een wachtwoord te vermijden dat bestaat uit een of meerdere woorden die kunnen worden teruggevonden in een woordenboek. Ook moeten eigennamen en geboortedata vermeden worden, evenmin mag het makkelijk te raden zijn. We raden u dringend een willekeurige combinatie van hoofd- en kleine letters, nummers en speciale karakters (zoals @ ^ = $ * +) aan. Het is heel belangrijk dat het meer dan 20 karakters telt (hoe langer hoe beter). The maximaal mogelijke lengte is 64 karakters.</string>
|
||||||
<string lang="nl" key="PASSWORD_HIDDENVOL_HELP">Kies een wachtwoord voor het verborgen volume. </string>
|
<string lang="nl" key="PASSWORD_HIDDENVOL_HELP">Kies een wachtwoord voor het verborgen volume. </string>
|
||||||
<string lang="nl" key="PASSWORD_HIDDEN_OS_HELP">Kies een wachtwoord voor het verborgen besturingssysteem (d.w.z. verborgen volume). </string>
|
<string lang="nl" key="PASSWORD_HIDDEN_OS_HELP">Kies een wachtwoord voor het verborgen besturingssysteem (d.w.z. verborgen volume). </string>
|
||||||
@@ -648,14 +648,14 @@
|
|||||||
<string lang="en" key="PIM_HELP">PIM (Personal Iterations Multiplier) is a value that controls the number of iterations used by the header key derivation as follows:\n Iterations = 15000 + (PIM x 1000).\n\nWhen left empty or set to 0, VeraCrypt will use a default value (485) that ensures a high security.\n\nWhen the password is less than 20 characters, PIM can't be smaller than 485 in order to maintain a minimal security level.\nWhen the password is 20 characters or more, PIM can be set to any value.\n\nA PIM value larger than 485 will lead to slower mount. A small PIM value (less than 485) will lead to a quicker mount but it can reduce security if the password is not strong enough.</string>
|
<string lang="en" key="PIM_HELP">PIM (Personal Iterations Multiplier) is a value that controls the number of iterations used by the header key derivation as follows:\n Iterations = 15000 + (PIM x 1000).\n\nWhen left empty or set to 0, VeraCrypt will use a default value (485) that ensures a high security.\n\nWhen the password is less than 20 characters, PIM can't be smaller than 485 in order to maintain a minimal security level.\nWhen the password is 20 characters or more, PIM can be set to any value.\n\nA PIM value larger than 485 will lead to slower mount. A small PIM value (less than 485) will lead to a quicker mount but it can reduce security if the password is not strong enough.</string>
|
||||||
<string lang="en" key="PIM_SYSENC_HELP">PIM (Personal Iterations Multiplier) is a value that controls the number of iterations used by the header key derivation as follows:\n Iterations = PIM x 2048.\n\nWhen left empty or set to 0, VeraCrypt will use a default value that ensures a high security.\n\nWhen the password is less than 20 characters, PIM can't be smaller than 98 in order to maintain a minimal security level.\nWhen the password is 20 characters or more, PIM can be set to any value.\n\nA PIM value larger than 98 will lead to slower boot. A small PIM value (less than 98) will lead to a quicker boot but it can reduce security if the password is not strong enough.</string>
|
<string lang="en" key="PIM_SYSENC_HELP">PIM (Personal Iterations Multiplier) is a value that controls the number of iterations used by the header key derivation as follows:\n Iterations = PIM x 2048.\n\nWhen left empty or set to 0, VeraCrypt will use a default value that ensures a high security.\n\nWhen the password is less than 20 characters, PIM can't be smaller than 98 in order to maintain a minimal security level.\nWhen the password is 20 characters or more, PIM can be set to any value.\n\nA PIM value larger than 98 will lead to slower boot. A small PIM value (less than 98) will lead to a quicker boot but it can reduce security if the password is not strong enough.</string>
|
||||||
<string lang="nl" key="PIM_SYSENC_CHANGE_WARNING">Onthoudt het nummer om het systeem te starten</string>
|
<string lang="nl" key="PIM_SYSENC_CHANGE_WARNING">Onthoudt het nummer om het systeem te starten</string>
|
||||||
<string lang="nl" key="PIM_LARGE_WARNING">Je hebt een PIM waarde gekozen die groter is dan de VeraCrypt standaard waarde.\nLet op dat het koppelen/opstarten hierdoor trager verloopt.</string>
|
<string lang="nl" key="PIM_LARGE_WARNING">U hebt een PIM-waarde gekozen die groter is dan de VeraCrypt standaard waarde.\nLet op dat het koppelen/opstarten hierdoor trager verloopt.</string>
|
||||||
<string lang="en" key="PIM_SMALL_WARNING">You have chosen a Personal Iterations Multiplier (PIM) that is smaller than the default VeraCrypt value. Please note that if your password is not strong enough, this could lead to a weaker security.\n\nDo you confirm that you are using a strong password?</string>
|
<string lang="nl" key="PIM_SMALL_WARNING">U heeft een Persoonlijke Iteraties Multiplier (PIM) gekozen die kleiner is dan de standaard VeraCrypt waarde. Houd er rekening mee dat uw wachtwoord niet sterk genoeg is, dit heeft een zwakkere beveiliging tot gevolg.\n\nBevestigt u dat u uw wachtwoord als sterk en veilig beschouwd?</string>
|
||||||
<string lang="nl" key="PIM_SYSENC_TOO_BIG">Persoonlijke iteraties multiplier (PIM) maximale waarde voor systeem codering is 65535.</string>
|
<string lang="nl" key="PIM_SYSENC_TOO_BIG">Persoonlijke iteraties multiplier (PIM) maximale waarde voor systeemcodering is 65535.</string>
|
||||||
<string lang="nl" key="PIM_TITLE">PIM volume</string>
|
<string lang="nl" key="PIM_TITLE">PIM volume</string>
|
||||||
<string lang="en" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nWARNING: Hidden file(s) have been found in a keyfile search path. Such hidden files cannot be used as keyfiles. If you need to use them as keyfiles, remove their 'Hidden' attribute (right-click each of them, select 'Properties', uncheck 'Hidden' and click OK). Note: Hidden files are visible only if the corresponding option is enabled (Computer > Organize > 'Folder and search options' > View).</string>
|
<string lang="en" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nWARNING: Hidden file(s) have been found in a keyfile search path. Such hidden files cannot be used as keyfiles. If you need to use them as keyfiles, remove their 'Hidden' attribute (right-click each of them, select 'Properties', uncheck 'Hidden' and click OK). Note: Hidden files are visible only if the corresponding option is enabled (Computer > Organize > 'Folder and search options' > View).</string>
|
||||||
<string lang="nl" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">Indien u de bescherming instelt voor een verborgen volume met daarin een verborgen system, gebruik dan de standaard US toetsenbord layout bij het typen van het wachtwoord voor het verborgen volume. Dit is noodzakelijk omdat het wachtwoord in de pre boot omgeving (voordat Windows start) moet worden ingegeven waar niet-US toetsenbord layouts NIET beschikbaar zijn.</string>
|
<string lang="nl" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">Indien u de bescherming instelt voor een verborgen volume met daarin een verborgen system, gebruik dan de standaard US toetsenbord layout bij het typen van het wachtwoord voor het verborgen volume. Dit is noodzakelijk omdat het wachtwoord in de pre boot omgeving (voordat Windows start) moet worden ingegeven waar niet-US toetsenbord layouts NIET beschikbaar zijn.</string>
|
||||||
<string lang="nl" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt vond geen volume waarop niet-systeem codering werd onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestanden(en) van toepassing zijn.\n\nControleer of het ingegeven wachtwoord en/of sleutelbestand(en) juist zijn en of de partitie/volume niet gebruikt wordt door het systeem of programma’s (bijv. een antivirus programma).</string>
|
<string lang="nl" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt vond geen volume waarop niet-systeemcodering werd onderbroken en waarop het verstrekte wachtwoord en/of sleutelbestanden(en) van toepassing zijn.\n\nControleer of het ingegeven wachtwoord en/of sleutelbestand(en) juist zijn en of de partitie/volume niet gebruikt wordt door het systeem of programma’s (bijv. een antivirus programma).</string>
|
||||||
<string lang="nl" key="SELECTED_PARTITION_ALREADY_INPLACE_ENC">De geselecteerde partitie/apparaat is al volledig versleuteld.\nHeader vlag = 0x%.8X</string>
|
<string lang="nl" key="SELECTED_PARTITION_ALREADY_INPLACE_ENC">De geselecteerde partitie/apparaat is al volledig gecodeerd.\nHeader vlag = 0x%.8X</string>
|
||||||
<string lang="en" key="SELECTED_PARTITION_NOT_INPLACE_ENC">The selected partition/device is not using in-place encryption.\nHeader Flags = 0x%.8X</string>
|
<string lang="en" key="SELECTED_PARTITION_NOT_INPLACE_ENC">The selected partition/device is not using in-place encryption.\nHeader Flags = 0x%.8X</string>
|
||||||
<string lang="nl" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNoot: Als u probeert een partitie te koppelen die is gelegen op een systeem schijf zonder pre-boot authenticatie of probeert de gecodeerde system partitie te koppelen van een besturingssysteem dat niet draait, dan doet u dit door te selecteren 'Systeem' > 'Koppel Zonder Pre-Boot Authenticatie'.</string>
|
<string lang="nl" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNoot: Als u probeert een partitie te koppelen die is gelegen op een systeem schijf zonder pre-boot authenticatie of probeert de gecodeerde system partitie te koppelen van een besturingssysteem dat niet draait, dan doet u dit door te selecteren 'Systeem' > 'Koppel Zonder Pre-Boot Authenticatie'.</string>
|
||||||
<string lang="nl" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">In deze modus kunt u geen partitie koppelen die aanwezig is op een schijf die momenteel actief gecodeerd wordt.\n\nVoordat u deze partitie kunt koppelen in deze modus, dient u op te starten met een besturingssysteem vanaf een andere schijf (gecodeerd of ongecodeerd) òf op te starten met een ongecodeerd besturingssysteem.</string>
|
<string lang="nl" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">In deze modus kunt u geen partitie koppelen die aanwezig is op een schijf die momenteel actief gecodeerd wordt.\n\nVoordat u deze partitie kunt koppelen in deze modus, dient u op te starten met een besturingssysteem vanaf een andere schijf (gecodeerd of ongecodeerd) òf op te starten met een ongecodeerd besturingssysteem.</string>
|
||||||
@@ -669,7 +669,7 @@
|
|||||||
<string lang="nl" key="SELECT_KEYFILE_PATH">Selecteer een sleutelbestand zoekpad. WAARSCHUWING: Alleen het pad wordt onthouden, niet de bestandsnamen!</string>
|
<string lang="nl" key="SELECT_KEYFILE_PATH">Selecteer een sleutelbestand zoekpad. WAARSCHUWING: Alleen het pad wordt onthouden, niet de bestandsnamen!</string>
|
||||||
<string lang="nl" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Selecteer een map om de sleutelbestanden op te slaan.</string>
|
<string lang="nl" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Selecteer een map om de sleutelbestanden op te slaan.</string>
|
||||||
<string lang="nl" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">De huidige bestandscontainer is geselecteerd als sleutelbestand. Het wordt overgeslagen.</string>
|
<string lang="nl" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">De huidige bestandscontainer is geselecteerd als sleutelbestand. Het wordt overgeslagen.</string>
|
||||||
<string lang="nl" key="SERPENT_HELP">Ontworpen door Ross Anderson, Eli Biham, en Lars Knudsen. Gepubliceerd in 1998. 256-bit sleutel, 128-bit blok. Operatiemodus is XTS. Serpent was een van de AES finalisten.</string>
|
<string lang="nl" key="SERPENT_HELP">Ontworpen door Ross Anderson, Eli Biham, en Lars Knudsen. Gepubliceerd in 1998. 256-bit sleutel, 128-bit blok. Bewerkingsmodus is XTS. Serpent was een van de AES finalisten.</string>
|
||||||
<string lang="en" key="SIZE_HELP">Please specify the size of the container you want to create.\n\nIf you create a dynamic (sparse-file) container, this parameter will specify its maximum possible size.\n\nNote that the minimum possible size of a FAT volume is 292 KB. The minimum possible size of an NTFS volume is 3792 KB.</string>
|
<string lang="en" key="SIZE_HELP">Please specify the size of the container you want to create.\n\nIf you create a dynamic (sparse-file) container, this parameter will specify its maximum possible size.\n\nNote that the minimum possible size of a FAT volume is 292 KB. The minimum possible size of an NTFS volume is 3792 KB.</string>
|
||||||
<string lang="en" key="SIZE_HELP_HIDDEN_HOST_VOL">Please specify the size of the outer volume to be created (you will first create the outer volume and then a hidden volume within it). The minimum possible size of a volume within which a hidden volume is intended to be created is 340 KB.</string>
|
<string lang="en" key="SIZE_HELP_HIDDEN_HOST_VOL">Please specify the size of the outer volume to be created (you will first create the outer volume and then a hidden volume within it). The minimum possible size of a volume within which a hidden volume is intended to be created is 340 KB.</string>
|
||||||
<string lang="en" key="SIZE_HELP_HIDDEN_VOL">Please specify the size of the hidden volume to create. The minimum possible size of a hidden volume is 40 KB (or 3664 KB if it is formatted as NTFS). The maximum possible size you can specify for the hidden volume is displayed above.</string>
|
<string lang="en" key="SIZE_HELP_HIDDEN_VOL">Please specify the size of the hidden volume to create. The minimum possible size of a hidden volume is 40 KB (or 3664 KB if it is formatted as NTFS). The maximum possible size you can specify for the hidden volume is displayed above.</string>
|
||||||
@@ -692,7 +692,7 @@
|
|||||||
<string lang="nl" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Afhankelijk van de besturingssysteem instellingen, kunnen auto-run en auto-koppel mogelijk alleen werken als de traveler disk bestanden zijn aangemaakt op een niet beschrijfbaar CD/DVD-ahtig medium. Dit is geen fout in VeraCrypt maar een beperking in Windows.</string>
|
<string lang="nl" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Afhankelijk van de besturingssysteem instellingen, kunnen auto-run en auto-koppel mogelijk alleen werken als de traveler disk bestanden zijn aangemaakt op een niet beschrijfbaar CD/DVD-ahtig medium. Dit is geen fout in VeraCrypt maar een beperking in Windows.</string>
|
||||||
<string lang="en" key="TRAVELER_DISK_CREATED">VeraCrypt traveler disk has been successfully created.\n\nNote that you need administrator privileges to run VeraCrypt in portable mode. Also note that, after examining the registry file, it may be possible to tell that VeraCrypt was run on a Windows system even if it is run in portable mode.</string>
|
<string lang="en" key="TRAVELER_DISK_CREATED">VeraCrypt traveler disk has been successfully created.\n\nNote that you need administrator privileges to run VeraCrypt in portable mode. Also note that, after examining the registry file, it may be possible to tell that VeraCrypt was run on a Windows system even if it is run in portable mode.</string>
|
||||||
<string lang="nl" key="TC_TRAVELER_DISK">VeraCrypt Traveler Disk</string>
|
<string lang="nl" key="TC_TRAVELER_DISK">VeraCrypt Traveler Disk</string>
|
||||||
<string lang="nl" key="TWOFISH_HELP">Ontworpen door Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, en Niels Ferguson. Gepubliceerd in 1998. 256-bit sleutel, 128-bit blok. Operatiemodus is XTS. Twofish was een van de AES finalisten.</string>
|
<string lang="nl" key="TWOFISH_HELP">Ontworpen door Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, en Niels Ferguson. Gepubliceerd in 1998. 256-bit sleutel, 128-bit blok. Bewerkingsmodus is XTS. Twofish was een van de AES finalisten.</string>
|
||||||
<string lang="nl" key="MORE_INFO_ABOUT">Meer informatie over %s</string>
|
<string lang="nl" key="MORE_INFO_ABOUT">Meer informatie over %s</string>
|
||||||
<string lang="nl" key="UNKNOWN">Onbekend</string>
|
<string lang="nl" key="UNKNOWN">Onbekend</string>
|
||||||
<string lang="nl" key="ERR_UNKNOWN">Een niet gespecificeerde of onbekende fout is opgetreden (%d).</string>
|
<string lang="nl" key="ERR_UNKNOWN">Een niet gespecificeerde of onbekende fout is opgetreden (%d).</string>
|
||||||
@@ -709,16 +709,16 @@
|
|||||||
<string lang="nl" key="CONFIRM_SPARSE_FILE">Een dynamische container is een pre-gealloceerde NTFS sparse file waarvan de fysieke grootte (feitelijke gebruikte diskruimte) groeit naarmate data worden toegevoegd.\n\nWAARSCHUWING:De performance van volumes, ondergebracht in sparse-files is beduidend slechter dan van normale volumes. Daarnaast zijn ze ook minder veilig omdat na te gaan is welke sectoren van het volume ongebruikt zijn. Daarnaast kunnen ze geen aannemelijke ontkenbaarheid verschaffen. Ook kan het gecodeerde bestandssysteem corrupt raken wanneer er data geschreven worden naar een sparse-file container en er geen ruimte beschikbaar is in het huisvestende bestandssysteem.\n\nWeet u zeker dat u een volume wilt aanmaken dat ondergebracht is in een sparse-file?</string>
|
<string lang="nl" key="CONFIRM_SPARSE_FILE">Een dynamische container is een pre-gealloceerde NTFS sparse file waarvan de fysieke grootte (feitelijke gebruikte diskruimte) groeit naarmate data worden toegevoegd.\n\nWAARSCHUWING:De performance van volumes, ondergebracht in sparse-files is beduidend slechter dan van normale volumes. Daarnaast zijn ze ook minder veilig omdat na te gaan is welke sectoren van het volume ongebruikt zijn. Daarnaast kunnen ze geen aannemelijke ontkenbaarheid verschaffen. Ook kan het gecodeerde bestandssysteem corrupt raken wanneer er data geschreven worden naar een sparse-file container en er geen ruimte beschikbaar is in het huisvestende bestandssysteem.\n\nWeet u zeker dat u een volume wilt aanmaken dat ondergebracht is in een sparse-file?</string>
|
||||||
<string lang="en" key="SPARSE_FILE_SIZE_NOTE">Note that the size of the dynamic container reported by Windows and by VeraCrypt will always be equal to its maximum size. To find out current physical size of the container (actual disk space it uses), right-click the container file (in a Windows Explorer window, not in VeraCrypt), then select 'Properties' and see the 'Size on disk' value.\n\nAlso note that if you move a dynamic container to another volume or drive, the physical size of the container will be extended to the maximum. (You can prevent that by creating a new dynamic container in the destination location, mounting it and then moving the files from the old container to the new one.)</string>
|
<string lang="en" key="SPARSE_FILE_SIZE_NOTE">Note that the size of the dynamic container reported by Windows and by VeraCrypt will always be equal to its maximum size. To find out current physical size of the container (actual disk space it uses), right-click the container file (in a Windows Explorer window, not in VeraCrypt), then select 'Properties' and see the 'Size on disk' value.\n\nAlso note that if you move a dynamic container to another volume or drive, the physical size of the container will be extended to the maximum. (You can prevent that by creating a new dynamic container in the destination location, mounting it and then moving the files from the old container to the new one.)</string>
|
||||||
<string lang="nl" key="PASSWORD_CACHE_WIPED_SHORT">Wachtwoordcache gewist</string>
|
<string lang="nl" key="PASSWORD_CACHE_WIPED_SHORT">Wachtwoordcache gewist</string>
|
||||||
<string lang="en" key="PASSWORD_CACHE_WIPED">Passwords (and/or processed keyfile contents) stored in the VeraCrypt driver cache have been wiped.</string>
|
<string lang="nl" key="PASSWORD_CACHE_WIPED">Wachtwoorden (en/of inhoud van het verwerkte sleutelbestand) in het VeraCrypt stuurprogramma cache zijn gewist.</string>
|
||||||
<string lang="nl" key="WRONG_VOL_TYPE">VeraCrypt kan het wachtwoord van een vreemd volume niet veranderen.</string>
|
<string lang="nl" key="WRONG_VOL_TYPE">VeraCrypt kan het wachtwoord van een vreemd volume niet veranderen.</string>
|
||||||
<string lang="nl" key="SELECT_FREE_DRIVE">Selecteer a.u.b. een vrije stationsletter uit de lijst.</string>
|
<string lang="nl" key="SELECT_FREE_DRIVE">Selecteer a.u.b. een vrije stationsletter uit de lijst.</string>
|
||||||
<string lang="nl" key="SELECT_A_MOUNTED_VOLUME">Selecteer a.u.b. een gekoppeld volume uit de lijst met stationsletters.</string>
|
<string lang="nl" key="SELECT_A_MOUNTED_VOLUME">Selecteer a.u.b. een gekoppeld volume uit de lijst met stationsletters.</string>
|
||||||
<string lang="en" key="AMBIGUOUS_VOL_SELECTION">Warning: Two different volumes/devices are currently selected (the first is selected in the drive letter list and the second is selected in the input field below the drive letter list).\n\nPlease confirm your choice:</string>
|
<string lang="nl" key="AMBIGUOUS_VOL_SELECTION">Waarschuwing: Er zijn twee verschillende volumes/apparaten geselecteerd (de eerste is geselecteerd in de schijfstationlijst en de tweede is geselecteerd in het invoerveld onder de schijfstationlijst).\n\nWilt u uw keuze bevestigen:</string>
|
||||||
<string lang="nl" key="CANT_CREATE_AUTORUN">Fout: kan autorun.inf niet maken</string>
|
<string lang="nl" key="CANT_CREATE_AUTORUN">Fout: kan autorun.inf niet maken</string>
|
||||||
<string lang="nl" key="ERR_PROCESS_KEYFILE">Fout bij het verwerken van het sleutelbestand!</string>
|
<string lang="nl" key="ERR_PROCESS_KEYFILE">Fout bij het verwerken van het sleutelbestand!</string>
|
||||||
<string lang="nl" key="ERR_PROCESS_KEYFILE_PATH">Fout bij het verwerken van het pad van sleutelbestanden!</string>
|
<string lang="nl" key="ERR_PROCESS_KEYFILE_PATH">Fout bij het verwerken van het pad van sleutelbestanden!</string>
|
||||||
<string lang="en" key="ERR_KEYFILE_PATH_EMPTY">The keyfile path contains no files.\n\nPlease note that folders (and files they contain) found in keyfile search paths are ignored.</string>
|
<string lang="nl" key="ERR_KEYFILE_PATH_EMPTY">Het sleutelbestandpad bevat geen bestanden.\n\nHoud er rekening mee dat mappen (en de bestanden daarin) die in het sleutelbestandpad staan worden genegeerd.</string>
|
||||||
<string lang="nl" key="UNSUPPORTED_OS">VeraCrypt ondersteund dit besturingssysteem niet.</string>
|
<string lang="nl" key="UNSUPPORTED_OS">VeraCrypt ondersteunt dit besturingssysteem niet.</string>
|
||||||
<string lang="nl" key="UNSUPPORTED_BETA_OS">FOUT: VeraCrypt ondersteunt alleen definitieve versies van dit besturingssysteem (Géén Beta/RC versies).</string>
|
<string lang="nl" key="UNSUPPORTED_BETA_OS">FOUT: VeraCrypt ondersteunt alleen definitieve versies van dit besturingssysteem (Géén Beta/RC versies).</string>
|
||||||
<string lang="nl" key="ERR_MEM_ALLOC">Fout: Kan geheugen niet toewijzen.</string>
|
<string lang="nl" key="ERR_MEM_ALLOC">Fout: Kan geheugen niet toewijzen.</string>
|
||||||
<string lang="nl" key="ERR_PERF_COUNTER">Fout: Kon de waarde van de prestatieteller niet achterhalen.</string>
|
<string lang="nl" key="ERR_PERF_COUNTER">Fout: Kon de waarde van de prestatieteller niet achterhalen.</string>
|
||||||
@@ -744,7 +744,7 @@
|
|||||||
<string lang="nl" key="VOLUME_LOWER_CASE">volume</string>
|
<string lang="nl" key="VOLUME_LOWER_CASE">volume</string>
|
||||||
<string lang="nl" key="VOLUME_UPPER_CASE">VOLUME</string>
|
<string lang="nl" key="VOLUME_UPPER_CASE">VOLUME</string>
|
||||||
<string lang="nl" key="LABEL">Label</string>
|
<string lang="nl" key="LABEL">Label</string>
|
||||||
<string lang="nl" key="CLUSTER_TOO_SMALL">De geselecteerde clustergrootte is te klein gezien de grootte van dit volume. Een grotere cluster-grootte zal worden gebruikt.</string>
|
<string lang="nl" key="CLUSTER_TOO_SMALL">De geselecteerde clustergrootte is te klein gezien de grootte van dit volume. Een grotere cluster-grootte wordt gebruikt.</string>
|
||||||
<string lang="nl" key="CANT_GET_VOLSIZE">Fout: Kan de volumegrootte niet lezen!\n\nOvertuig u ervan dat het geselecteerde volume niet wordt gebruikt door het systeem of een programma.</string>
|
<string lang="nl" key="CANT_GET_VOLSIZE">Fout: Kan de volumegrootte niet lezen!\n\nOvertuig u ervan dat het geselecteerde volume niet wordt gebruikt door het systeem of een programma.</string>
|
||||||
<string lang="en" key="HIDDEN_VOL_HOST_SPARSE">Hidden volumes must not be created within dynamic (sparse file) containers. To achieve plausible deniability, the hidden volume needs to be created within a non-dynamic container.</string>
|
<string lang="en" key="HIDDEN_VOL_HOST_SPARSE">Hidden volumes must not be created within dynamic (sparse file) containers. To achieve plausible deniability, the hidden volume needs to be created within a non-dynamic container.</string>
|
||||||
<string lang="nl" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">De VeraCrypt volume aanmaak wizard kan een verborgen volume alleen aanmaken binnen een FAT of NTFS volume.</string>
|
<string lang="nl" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">De VeraCrypt volume aanmaak wizard kan een verborgen volume alleen aanmaken binnen een FAT of NTFS volume.</string>
|
||||||
@@ -752,14 +752,14 @@
|
|||||||
<string lang="nl" key="HIDDEN_VOL_HOST_NTFS">Noot: Het FAT bestandssysteem is meer geschikt voor buitenvolumes dan het NTFS bestandssysteem. (De maximum grootte van het verborgen volume zal bijv. veel groter zijn als het buitenvolume geformatteerd is onder FAT).</string>
|
<string lang="nl" key="HIDDEN_VOL_HOST_NTFS">Noot: Het FAT bestandssysteem is meer geschikt voor buitenvolumes dan het NTFS bestandssysteem. (De maximum grootte van het verborgen volume zal bijv. veel groter zijn als het buitenvolume geformatteerd is onder FAT).</string>
|
||||||
<string lang="nl" key="HIDDEN_VOL_HOST_NTFS_ASK">Merk op dat het FAT bestandssysteem geschikter is voor buitenvolumes dan het NTFS systeem. De maximum grootte van het verborgen volume zal waarschijnlijk veel groter zijn als het buitenvolume geformatteerd is onder FAT. De reden hiervoor is dat het NTFS systeem zijn meta-data altijd opslaat in het midden van het volume en dat daarom het verborgen volume alleen hierachter kan worden aan gemaakt.\n\nBent u er zeker van dat u het buitenvolume wilt formatteren als NTFS?</string>
|
<string lang="nl" key="HIDDEN_VOL_HOST_NTFS_ASK">Merk op dat het FAT bestandssysteem geschikter is voor buitenvolumes dan het NTFS systeem. De maximum grootte van het verborgen volume zal waarschijnlijk veel groter zijn als het buitenvolume geformatteerd is onder FAT. De reden hiervoor is dat het NTFS systeem zijn meta-data altijd opslaat in het midden van het volume en dat daarom het verborgen volume alleen hierachter kan worden aan gemaakt.\n\nBent u er zeker van dat u het buitenvolume wilt formatteren als NTFS?</string>
|
||||||
<string lang="nl" key="OFFER_FAT_FORMAT_ALTERNATIVE">Wilt u het volume formatteren als FAT?</string>
|
<string lang="nl" key="OFFER_FAT_FORMAT_ALTERNATIVE">Wilt u het volume formatteren als FAT?</string>
|
||||||
<string lang="en" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Note: This volume cannot be formatted as FAT, because it exceeds the maximum volume size supported by the FAT32 filesystem for the applicable sector size (2 TB for 512-byte sectors and 16 TB for 4096-byte sectors).</string>
|
<string lang="nl" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Let op: Dit volume kunt u niet formatteren als FAT, want het is groter dan de maximum volumegrootte welke het FAT32 bestandssysteem ondersteunt. Toegestane sectorgrootten (2 TB voor 512-byte sectoren en 16 TB voor 4096-byte sectoren).</string>
|
||||||
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Fout: De partitie voor het verborgen besturingssysteem (OS) (dit is de eerste partitie achter de systeempartitie) moet minstens 5% groter zijn dan de systeempartitie (dit is de partitie waarop het nu actieve OS staat).</string>
|
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">Fout: De partitie voor het verborgen besturingssysteem (OS) (dit is de eerste partitie achter de systeempartitie) moet minstens 5% groter zijn dan de systeempartitie (dit is de partitie waarop het nu actieve OS staat).</string>
|
||||||
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: De partitie voor het verborgen besturingssysteem (dit is de eerste partitie achter de system partitie) moet minstens 110% (2.1 maal) groter zijn dan de systeem partitie (dit is de partitie waarop het besturingssysteem staat dat nu draait). De reden is dat het NTFS bestandssysteem haar meta-data altijd precies in het midden van het volume opslaat en dat daardoor het verborgen volume, dat een kloon is van de systeempartitie, alleen maar een plekje kan vinden in de tweede helft van de partitie).</string>
|
<string lang="nl" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: De partitie voor het verborgen besturingssysteem (dit is de eerste partitie achter de system partitie) moet minstens 110% (2.1 maal) groter zijn dan de systeem partitie (dit is de partitie waarop het besturingssysteem staat dat nu draait). De reden is dat het NTFS bestandssysteem haar meta-data altijd precies in het midden van het volume opslaat en dat daardoor het verborgen volume, dat een kloon is van de systeempartitie, alleen maar een plekje kan vinden in de tweede helft van de partitie).</string>
|
||||||
<string lang="nl" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: als het buiten volume is geformatteerd als NTFS, moet het minstens 110% (2.1 maal) groter zijn dan de systeem partitie. De reden is dat het NTFS systeem haar meta- data precies in het midden van het volume opslaat en dat daardoor het verborgen volume (waarin een kloon van de systeem partitie moet passen) slechts op de tweede helft van het buitenvolume kan staan.\n\nNoot: Het buitenvolume dient op dezelfde partitie te staan als het verborgen besturingssysteem (de eerste partitie na de systeem partitie).</string>
|
<string lang="nl" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Fout: als het buiten volume is geformatteerd als NTFS, moet het minstens 110% (2.1 maal) groter zijn dan de systeem partitie. De reden is dat het NTFS systeem haar meta- data precies in het midden van het volume opslaat en dat daardoor het verborgen volume (waarin een kloon van de systeem partitie moet passen) slechts op de tweede helft van het buitenvolume kan staan.\n\nNoot: Het buitenvolume dient op dezelfde partitie te staan als het verborgen besturingssysteem (de eerste partitie na de systeem partitie).</string>
|
||||||
<string lang="nl" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Fout: Er bevindt zich geen partitie na de systeem partitie.\n\nMerk op dat u, voor de aanmaak van het verborgen besturingssysteem, eerst een partitie op de systeemschijf dient aan te maken. Deze partitie moet de éérste partitie zijn na de systeem partitie en moet minstens 5% groter zijn dan de systeem partitie (dit is de partitie waar het besturingssysteem staat dat nu draait). Echter, als het buitenvolume (niet te verwarren met de systeem partitie) als NTFS wordt geformatteerd, moet de partitie voor het verborgen besturingssysteem minstens (let op!) 110% (2.1 maal) groter zijn dan de systeem partitie (de reden hiervoor is dat het NTFS bestands systeem haar meta-data altijd opslaat precies in het midden van het volume, hierdoor kan het verborgen volume, waarin een kloon van de systeem partitie moet passen, slechts op de tweede helft van de partitie staan).</string>
|
<string lang="nl" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Fout: Er bevindt zich geen partitie na de systeem partitie.\n\nMerk op dat u, voor de aanmaak van het verborgen besturingssysteem, eerst een partitie op de systeemschijf dient aan te maken. Deze partitie moet de éérste partitie zijn na de systeem partitie en moet minstens 5% groter zijn dan de systeem partitie (dit is de partitie waar het besturingssysteem staat dat nu draait). Echter, als het buitenvolume (niet te verwarren met de systeem partitie) als NTFS wordt geformatteerd, moet de partitie voor het verborgen besturingssysteem minstens (let op!) 110% (2.1 maal) groter zijn dan de systeem partitie (de reden hiervoor is dat het NTFS bestands systeem haar meta-data altijd opslaat precies in het midden van het volume, hierdoor kan het verborgen volume, waarin een kloon van de systeem partitie moet passen, slechts op de tweede helft van de partitie staan).</string>
|
||||||
<string lang="nl" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Opmerking: Het is niet praktisch (dus niet ondersteund) besturingssystemen te installeren in twee TryeCrypt volumes binnen één partitie, omdat het gebruik van het buitenste systeem vaak data schrijven tot gevolg heeft in het gebied van het verborgen besturingssysteem. Als zulke schrijfacties worden gestopt door het gebruik van verborgen volume bescherming, zou dit zeker een crash tot gevolg hebben (een Blauw Scherm).</string>
|
<string lang="nl" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Opmerking: Het is niet praktisch (wordt niet ondersteunt) besturingssystemen te installeren in twee TryeCrypt volumes binnen één partitie, omdat het gebruik van het buitenste systeem vaak data schrijven tot gevolg heeft in het gebied van het verborgen besturingssysteem. Als zulke schrijfacties worden gestopt door het gebruik van verborgen volume bescherming, zou dit zeker een crash tot gevolg hebben (een Blauw Scherm).</string>
|
||||||
<string lang="nl" key="FOR_MORE_INFO_ON_PARTITIONS">Voor informatie over het maken en beheren van een partitie kunt u zich wenden tot de documentatie bij uw besturingssysteem of neem contact op met de technische helpdesk van uw computerverkoper.</string>
|
<string lang="nl" key="FOR_MORE_INFO_ON_PARTITIONS">Voor informatie over het maken en beheren van een partitie kunt u zich wenden tot de documentatie bij uw besturingssysteem of neem contact op met de technische helpdesk van uw computerverkoper.</string>
|
||||||
<string lang="nl" key="SYSTEM_PARTITION_NOT_ACTIVE">Fout: Het nu actieve besturingssysteem staat niet op de boot partitie (eerste Actieve partitie). Dit wordt niet ondersteund.</string>
|
<string lang="nl" key="SYSTEM_PARTITION_NOT_ACTIVE">Fout: Het nu actieve besturingssysteem staat niet op de boot partitie (eerste Actieve partitie). Dit wordt niet ondersteunt.</string>
|
||||||
<string lang="en" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">You indicated that you intend to store files larger than 4 GB in this VeraCrypt volume. However, you chose the FAT file system, on which files larger than 4 GB cannot be stored.\n\nAre you sure you want to format the volume as FAT?</string>
|
<string lang="en" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">You indicated that you intend to store files larger than 4 GB in this VeraCrypt volume. However, you chose the FAT file system, on which files larger than 4 GB cannot be stored.\n\nAre you sure you want to format the volume as FAT?</string>
|
||||||
<string lang="en" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Error: VeraCrypt does not support in-place decryption of legacy non-system volumes created by VeraCrypt 1.0b or earlier.\n\nNote: You can still decrypt files stored on the volume by copying/moving them to any unencrypted volume.</string>
|
<string lang="en" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Error: VeraCrypt does not support in-place decryption of legacy non-system volumes created by VeraCrypt 1.0b or earlier.\n\nNote: You can still decrypt files stored on the volume by copying/moving them to any unencrypted volume.</string>
|
||||||
<string lang="en" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Error: VeraCrypt cannot in-place decrypt a hidden VeraCrypt volume.\n\nNote: You can still decrypt files stored on the volume by copying/moving them to any unencrypted volume.</string>
|
<string lang="en" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Error: VeraCrypt cannot in-place decrypt a hidden VeraCrypt volume.\n\nNote: You can still decrypt files stored on the volume by copying/moving them to any unencrypted volume.</string>
|
||||||
@@ -772,7 +772,7 @@
|
|||||||
<string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma’s, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.\n\nIndien dit probleem blijft bestaan, volg evt. de volgende stappen.</string>
|
<string lang="nl" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Fout: Het is onmogelijk toegang tot het volume te krijgen of er informatie over te verkrijgen.\n\nOvertuig u ervan dat dit volume bestaat, dat het niet wordt gebruikt door het systeem of programma’s, dat u lees/schrijf toegang ertoe hebt en dat het niet schrijf beveiligd is.\n\nIndien dit probleem blijft bestaan, volg evt. de volgende stappen.</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">Een fout verhinderde VeraCrypt de partitie te coderen. Los evt. eerder gerapporteerde fouten op en probeer het dan opnieuw. Als het probleem blijft bestaan probeer dan de volgende stappen.</string>
|
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">Een fout verhinderde VeraCrypt de partitie te coderen. Los evt. eerder gerapporteerde fouten op en probeer het dan opnieuw. Als het probleem blijft bestaan probeer dan de volgende stappen.</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_RESUME">Een fout verhinderde VeraCrypt het codering proces van de partitie te hervatten.\n\nLos evt. eerder gerapporteerde fouten op en probeer het proces dan te hervatten. Noot: het volume kan niet gekoppeld worden tenzij het volledig gecodeerd is.</string>
|
<string lang="nl" key="INPLACE_ENC_GENERIC_ERR_RESUME">Een fout verhinderde VeraCrypt het codering proces van de partitie te hervatten.\n\nLos evt. eerder gerapporteerde fouten op en probeer het proces dan te hervatten. Noot: het volume kan niet gekoppeld worden tenzij het volledig gecodeerd is.</string>
|
||||||
<string lang="en" key="INPLACE_DEC_GENERIC_ERR">An error prevented VeraCrypt from decrypting the volume. Please try fixing any previously reported problems and then try again if possible.</string>
|
<string lang="nl" key="INPLACE_DEC_GENERIC_ERR">Een fout verhinderde VeraCrypt om het volume te decoderen. Probeer eerder gemelde problemen te verhelpen en (indien mogelijk) probeer het dan opnieuw.</string>
|
||||||
<string lang="nl" key="CANT_DISMOUNT_OUTER_VOL">Fout: Het buiten volume kan niet ontkoppeld worden!\n\nEen volume kan niet ontkoppeld worden als het bestanden of mappen bevat die worden gebruikt door een programma of het systeem.\n\nSluit u alstublieft ieder programma dat bestanden of mappen zou kunnen gebruiken op het volume en klik op Opnieuw.</string>
|
<string lang="nl" key="CANT_DISMOUNT_OUTER_VOL">Fout: Het buiten volume kan niet ontkoppeld worden!\n\nEen volume kan niet ontkoppeld worden als het bestanden of mappen bevat die worden gebruikt door een programma of het systeem.\n\nSluit u alstublieft ieder programma dat bestanden of mappen zou kunnen gebruiken op het volume en klik op Opnieuw.</string>
|
||||||
<string lang="nl" key="CANT_GET_OUTER_VOL_INFO">Fout: Kan geen informatie verkrijgen over het buiten volume! Volume aanmaak kan niet doorgaan.</string>
|
<string lang="nl" key="CANT_GET_OUTER_VOL_INFO">Fout: Kan geen informatie verkrijgen over het buiten volume! Volume aanmaak kan niet doorgaan.</string>
|
||||||
<string lang="nl" key="CANT_ACCESS_OUTER_VOL">Fout: Het buiten bolume kan niet bereikt worden! Volume aanmaak kan geen doorgang vinden.</string>
|
<string lang="nl" key="CANT_ACCESS_OUTER_VOL">Fout: Het buiten bolume kan niet bereikt worden! Volume aanmaak kan geen doorgang vinden.</string>
|
||||||
@@ -830,7 +830,7 @@
|
|||||||
<string lang="nl" key="AUTODETECTION">Autodetectie</string>
|
<string lang="nl" key="AUTODETECTION">Autodetectie</string>
|
||||||
<string lang="nl" key="SETUP_MODE_TITLE">Wizard Modus</string>
|
<string lang="nl" key="SETUP_MODE_TITLE">Wizard Modus</string>
|
||||||
<string lang="nl" key="SETUP_MODE_INFO">Selecteer een van de modi. Als u niet zeker bent welke te kiezen, neem de standaard modus.</string>
|
<string lang="nl" key="SETUP_MODE_INFO">Selecteer een van de modi. Als u niet zeker bent welke te kiezen, neem de standaard modus.</string>
|
||||||
<string lang="nl" key="SETUP_MODE_HELP_INSTALL">Selecteer deze optie als je VeraCrypt op dit systeem wilt installeren.</string>
|
<string lang="nl" key="SETUP_MODE_HELP_INSTALL">Selecteer deze optie als u VeraCrypt op dit systeem wilt installeren.</string>
|
||||||
<string lang="en" key="SETUP_MODE_HELP_UPGRADE">Note: You can upgrade without decrypting even if the system partition/drive is encrypted or you use a hidden operating system.</string>
|
<string lang="en" key="SETUP_MODE_HELP_UPGRADE">Note: You can upgrade without decrypting even if the system partition/drive is encrypted or you use a hidden operating system.</string>
|
||||||
<string lang="en" key="SETUP_MODE_HELP_EXTRACT">If you select this option, all files will be extracted from this package but nothing will be installed on the system. Do not select it if you intend to encrypt the system partition or system drive. Selecting this option can be useful, for example, if you want to run VeraCrypt in so-called portable mode. VeraCrypt does not have to be installed on the operating system under which it is run. After all files are extracted, you can directly run the extracted file 'VeraCrypt.exe' (then VeraCrypt will run in portable mode).</string>
|
<string lang="en" key="SETUP_MODE_HELP_EXTRACT">If you select this option, all files will be extracted from this package but nothing will be installed on the system. Do not select it if you intend to encrypt the system partition or system drive. Selecting this option can be useful, for example, if you want to run VeraCrypt in so-called portable mode. VeraCrypt does not have to be installed on the operating system under which it is run. After all files are extracted, you can directly run the extracted file 'VeraCrypt.exe' (then VeraCrypt will run in portable mode).</string>
|
||||||
<string lang="nl" key="SETUP_OPTIONS_TITLE">Setup Opties</string>
|
<string lang="nl" key="SETUP_OPTIONS_TITLE">Setup Opties</string>
|
||||||
@@ -839,7 +839,7 @@
|
|||||||
<string lang="nl" key="SETUP_PROGRESS_INFO">A.u.b. wachten terwijl VeraCrypt wordt geïnstalleerd.</string>
|
<string lang="nl" key="SETUP_PROGRESS_INFO">A.u.b. wachten terwijl VeraCrypt wordt geïnstalleerd.</string>
|
||||||
<string lang="nl" key="SETUP_FINISHED_TITLE_DON">VeraCrypt is succesvol geïnstalleerd</string>
|
<string lang="nl" key="SETUP_FINISHED_TITLE_DON">VeraCrypt is succesvol geïnstalleerd</string>
|
||||||
<string lang="nl" key="SETUP_FINISHED_UPGRADE_TITLE_DON">VeraCrypt is succesvol geupgraded</string>
|
<string lang="nl" key="SETUP_FINISHED_UPGRADE_TITLE_DON">VeraCrypt is succesvol geupgraded</string>
|
||||||
<string lang="nl" key="SETUP_FINISHED_INFO_DON">Overweeg a.u.b. om een donatie over te maken. Je kan wanneer je wilt op EINDE klikken om het installatiescherm te sluiten.</string>
|
<string lang="nl" key="SETUP_FINISHED_INFO_DON">Overweeg a.u.b. om een donatie over te maken. U kunt wanneer u wilt op EINDE klikken om het installatiescherm te sluiten.</string>
|
||||||
<string lang="nl" key="EXTRACTION_OPTIONS_TITLE">Uitpak Opties</string>
|
<string lang="nl" key="EXTRACTION_OPTIONS_TITLE">Uitpak Opties</string>
|
||||||
<string lang="nl" key="EXTRACTION_OPTIONS_INFO">Hier kunt u opties kiezen om het uitpakproces te controleren.</string>
|
<string lang="nl" key="EXTRACTION_OPTIONS_INFO">Hier kunt u opties kiezen om het uitpakproces te controleren.</string>
|
||||||
<string lang="nl" key="EXTRACTION_PROGRESS_INFO">Wacht a.u.b. terwijl de bestanden worden uitgepakt.</string>
|
<string lang="nl" key="EXTRACTION_PROGRESS_INFO">Wacht a.u.b. terwijl de bestanden worden uitgepakt.</string>
|
||||||
@@ -866,7 +866,7 @@
|
|||||||
<string lang="nl" key="ROLLBACK">De installatie heeft een roll-back ondergaan.</string>
|
<string lang="nl" key="ROLLBACK">De installatie heeft een roll-back ondergaan.</string>
|
||||||
<string lang="nl" key="INSTALL_OK">VeraCrypt is succesvol geïnstalleerd.</string>
|
<string lang="nl" key="INSTALL_OK">VeraCrypt is succesvol geïnstalleerd.</string>
|
||||||
<string lang="nl" key="SETUP_UPDATE_OK">Update van VeraCrypt was succesvol.</string>
|
<string lang="nl" key="SETUP_UPDATE_OK">Update van VeraCrypt was succesvol.</string>
|
||||||
<string lang="en" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt has been successfully upgraded. However, before you can start using it, the computer must be restarted.\n\nDo you want to restart it now?</string>
|
<string lang="nl" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt is succesvol geüpgradet. Echter, voor u het kunt gebruiken, moet u de computer herstarten.\n\nWilt u de computer nu herstarten?</string>
|
||||||
<string lang="en" key="SYS_ENC_UPGRADE_FAILED">Failed to upgrade VeraCrypt!\n\nIMPORTANT: Before you shut down or restart the system, we strongly recommend that you use System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) to restore your system to the restore point named 'VeraCrypt installation'. If System Restore is not available, you should try installing the original or the new version of VeraCrypt again before you shut down or restart the system.</string>
|
<string lang="en" key="SYS_ENC_UPGRADE_FAILED">Failed to upgrade VeraCrypt!\n\nIMPORTANT: Before you shut down or restart the system, we strongly recommend that you use System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) to restore your system to the restore point named 'VeraCrypt installation'. If System Restore is not available, you should try installing the original or the new version of VeraCrypt again before you shut down or restart the system.</string>
|
||||||
<string lang="nl" key="UNINSTALL_OK">VeraCrypt is succesvol gedeinstalleerd.\n\nKlik 'Sluiten' om de VeraCrypt installer en de map te verwijderen %s. Merk op dat de map niet wordt verwijderd indien er zich bestanden in bevinden die niet door de VeraCrypt installer zijn aangebracht, of die niet zijn aangemaakt door VeraCrypt.</string>
|
<string lang="nl" key="UNINSTALL_OK">VeraCrypt is succesvol gedeinstalleerd.\n\nKlik 'Sluiten' om de VeraCrypt installer en de map te verwijderen %s. Merk op dat de map niet wordt verwijderd indien er zich bestanden in bevinden die niet door de VeraCrypt installer zijn aangebracht, of die niet zijn aangemaakt door VeraCrypt.</string>
|
||||||
<string lang="nl" key="REMOVING_REG">Verwijderen VeraCrypt register gegevens</string>
|
<string lang="nl" key="REMOVING_REG">Verwijderen VeraCrypt register gegevens</string>
|
||||||
@@ -941,11 +941,11 @@
|
|||||||
<string lang="nl" key="ENTER_HIDDEN_VOL_PASSWORD">Geef wachtwoord voor het verborgen volume</string>
|
<string lang="nl" key="ENTER_HIDDEN_VOL_PASSWORD">Geef wachtwoord voor het verborgen volume</string>
|
||||||
<string lang="nl" key="ENTER_HEADER_BACKUP_PASSWORD">Geef wachtwoord voor header opgeslagen in de back-up</string>
|
<string lang="nl" key="ENTER_HEADER_BACKUP_PASSWORD">Geef wachtwoord voor header opgeslagen in de back-up</string>
|
||||||
<string lang="nl" key="KEYFILE_CREATED">Sleutelbestand is aangemaakt.</string>
|
<string lang="nl" key="KEYFILE_CREATED">Sleutelbestand is aangemaakt.</string>
|
||||||
<string lang="en" key="KEYFILE_INCORRECT_NUMBER">The number of keyfiles you supplied is invalid.</string>
|
<string lang="nl" key="KEYFILE_INCORRECT_NUMBER">De opgegeven sleutelbestanden zijn ongeldig.</string>
|
||||||
<string lang="en" key="KEYFILE_INCORRECT_SIZE">The keyfile size must be comprized between 64 and 1048576 bytes.</string>
|
<string lang="nl" key="KEYFILE_INCORRECT_SIZE">De grootte van het sleutelbestand moet liggen tussen 64 en 1048576 bytes.</string>
|
||||||
<string lang="en" key="KEYFILE_EMPTY_BASE_NAME">Please enter a name for the keyfile(s) to be generated</string>
|
<string lang="nl" key="KEYFILE_EMPTY_BASE_NAME">Voer een naam in voor het/de aan te maken sleutelbestand(en)</string>
|
||||||
<string lang="en" key="KEYFILE_INVALID_BASE_NAME">The base name of the keyfile(s) is invalid</string>
|
<string lang="nl" key="KEYFILE_INVALID_BASE_NAME">De basisnaam voor het/de sleutelbestand(en) is ongeldig</string>
|
||||||
<string lang="en" key="KEYFILE_ALREADY_EXISTS">The keyfile '%s' already exists.\nDo you want to overwrite it? The generation process will be stopped if you answer No.</string>
|
<string lang="nl" key="KEYFILE_ALREADY_EXISTS">Het sleutelbestand '%s' bestaat al.\nWilt u dit overschrijven? Het genereren van het sleutelbestand stopt als u NEE antwoord.</string>
|
||||||
<string lang="nl" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">WAARSCHUWING: De header van dit volume is beschadigd! VeraCrypt heeft automatisch de back-up ervan gebruikt die was opgeslagen in het volume.\n\nU dient de volumeheader te repareren d.m.v. het tool ‘Herstel volumeheader’.</string>
|
<string lang="nl" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">WAARSCHUWING: De header van dit volume is beschadigd! VeraCrypt heeft automatisch de back-up ervan gebruikt die was opgeslagen in het volume.\n\nU dient de volumeheader te repareren d.m.v. het tool ‘Herstel volumeheader’.</string>
|
||||||
<string lang="nl" key="VOL_HEADER_BACKED_UP">Volumeheader back-up is succesvol aangemaakt.\n\nBelangrijk: Het herstellen van de volumeheader door deze back-up te gebruiken zal ook het huidige wachtwoord herstellen. Verder, als nu sleutelbestanden nodig zijn om het volume te koppelen, zullen dezelfde sleutelbestanden weer nodig zijn om te koppelen als de volumeheader is hersteld via het terugzetten van deze back-up.\n\nWAARSCHUWING: Deze volumeheader back-up kan uitsluitend worden gebruikt om de header van DIT volume te herstellen. Indien u deze header back-up gebruikt om een ander volume te herstellen, zult u daarna het volume kunnen koppelen, maar zult u niet in staat zijn enige data die op dit volume zijn opgeslagen te lezen (omdat u de master key dan heeft veranderd).</string>
|
<string lang="nl" key="VOL_HEADER_BACKED_UP">Volumeheader back-up is succesvol aangemaakt.\n\nBelangrijk: Het herstellen van de volumeheader door deze back-up te gebruiken zal ook het huidige wachtwoord herstellen. Verder, als nu sleutelbestanden nodig zijn om het volume te koppelen, zullen dezelfde sleutelbestanden weer nodig zijn om te koppelen als de volumeheader is hersteld via het terugzetten van deze back-up.\n\nWAARSCHUWING: Deze volumeheader back-up kan uitsluitend worden gebruikt om de header van DIT volume te herstellen. Indien u deze header back-up gebruikt om een ander volume te herstellen, zult u daarna het volume kunnen koppelen, maar zult u niet in staat zijn enige data die op dit volume zijn opgeslagen te lezen (omdat u de master key dan heeft veranderd).</string>
|
||||||
<string lang="nl" key="VOL_HEADER_RESTORED">De volumeheader is succesvol hersteld.\n\nBELANGRIJK: Neemt u er nota van dat een oud wachtwoord ook hersteld kan zijn. Verder, de sleutelbestanden die nodig waren om het volume te koppelen toen de back-up werd gemaakt, zijn nu, na het terugzetten van deze back-up, weer nodig om het volume te koppelen.</string>
|
<string lang="nl" key="VOL_HEADER_RESTORED">De volumeheader is succesvol hersteld.\n\nBELANGRIJK: Neemt u er nota van dat een oud wachtwoord ook hersteld kan zijn. Verder, de sleutelbestanden die nodig waren om het volume te koppelen toen de back-up werd gemaakt, zijn nu, na het terugzetten van deze back-up, weer nodig om het volume te koppelen.</string>
|
||||||
@@ -968,7 +968,7 @@
|
|||||||
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Breng uw VeraCrypt Reddingsschijf aan in het CD/DVD station en klik op OK om deze te controleren.</string>
|
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Breng uw VeraCrypt Reddingsschijf aan in het CD/DVD station en klik op OK om deze te controleren.</string>
|
||||||
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">De VeraCrypt Reddingsschijf is succesvol gecontroleerd.</string>
|
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">De VeraCrypt Reddingsschijf is succesvol gecontroleerd.</string>
|
||||||
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Kan niet controleren of de Reddingsschijf foutloos is gebrand.\n\nIndien u de Reddingsschijf heeft gebrand, haal de CD/DVD uit het station en breng hem opnieuw aan; daarna opnieuw controleren. Indien dit niet helpt, probeert u a.u.b. een ander brandprogramma en/of andere CD/DVD.\n\nIndien u probeerde een VeraCrypt Reddingsschijf te controleren die is aangemaakt voor een andere Hoofdsleutel, wachtwoord, salt, etc., merk dan op dat een dergelijke Reddingsschijf altijd zal falen in deze controle. Om een nieuwe reddingsschijf aan te maken die volledig compatibel is met uw huidige configuratie, selecteer 'Systeem' > 'Maak Reddingsschijf Aan'.</string>
|
<string lang="nl" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Kan niet controleren of de Reddingsschijf foutloos is gebrand.\n\nIndien u de Reddingsschijf heeft gebrand, haal de CD/DVD uit het station en breng hem opnieuw aan; daarna opnieuw controleren. Indien dit niet helpt, probeert u a.u.b. een ander brandprogramma en/of andere CD/DVD.\n\nIndien u probeerde een VeraCrypt Reddingsschijf te controleren die is aangemaakt voor een andere Hoofdsleutel, wachtwoord, salt, etc., merk dan op dat een dergelijke Reddingsschijf altijd zal falen in deze controle. Om een nieuwe reddingsschijf aan te maken die volledig compatibel is met uw huidige configuratie, selecteer 'Systeem' > 'Maak Reddingsschijf Aan'.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">The VeraCrypt Rescue Disk image has been successfully verified.</string>
|
<string lang="nl" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Het VeraCrypt reddingsschijf bestand is succesvol gecontroleerd.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">The Rescue Disk image verification failed.\n\nIf you attempted to verify a VeraCrypt Rescue Disk image created for a different master key, password, salt, etc., please note that such Rescue Disk image will always fail this verification. To create a new Rescue Disk image fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
|
<string lang="en" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">The Rescue Disk image verification failed.\n\nIf you attempted to verify a VeraCrypt Rescue Disk image created for a different master key, password, salt, etc., please note that such Rescue Disk image will always fail this verification. To create a new Rescue Disk image fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
|
||||||
<string lang="nl" key="ERROR_CREATING_RESCUE_DISK">Fout bij het aanmaken van de VeraCrypt Reddingsschijf.</string>
|
<string lang="nl" key="ERROR_CREATING_RESCUE_DISK">Fout bij het aanmaken van de VeraCrypt Reddingsschijf.</string>
|
||||||
<string lang="nl" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">VeraCrypt Reddingsschijf kan niet gemaakt worden als een verborgen besturingssysteem draait.\n\nOm een Reddingsschijf te maken, start op van het lokvogel operating syteem en selecteer 'System' > 'Create Rescue Disk'.</string>
|
<string lang="nl" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">VeraCrypt Reddingsschijf kan niet gemaakt worden als een verborgen besturingssysteem draait.\n\nOm een Reddingsschijf te maken, start op van het lokvogel operating syteem en selecteer 'System' > 'Create Rescue Disk'.</string>
|
||||||
@@ -991,7 +991,7 @@
|
|||||||
<string lang="nl" key="UISTR_DISABLED">Uitgeschakeld</string>
|
<string lang="nl" key="UISTR_DISABLED">Uitgeschakeld</string>
|
||||||
<string lang="nl" key="DIGIT_ONE">1</string>
|
<string lang="nl" key="DIGIT_ONE">1</string>
|
||||||
<string lang="nl" key="TWO_OR_MORE">2 of meer</string>
|
<string lang="nl" key="TWO_OR_MORE">2 of meer</string>
|
||||||
<string lang="nl" key="MODE_OF_OPERATION">Operatie Modus</string>
|
<string lang="nl" key="MODE_OF_OPERATION">Bewerkingsmodus</string>
|
||||||
<string lang="nl" key="LABEL_ITEM">Label: </string>
|
<string lang="nl" key="LABEL_ITEM">Label: </string>
|
||||||
<string lang="nl" key="SIZE_ITEM">Grootte: </string>
|
<string lang="nl" key="SIZE_ITEM">Grootte: </string>
|
||||||
<string lang="nl" key="PATH_ITEM">Pad: </string>
|
<string lang="nl" key="PATH_ITEM">Pad: </string>
|
||||||
@@ -1008,7 +1008,7 @@
|
|||||||
<string lang="en" key="VOLUME_TOO_LARGE_FOR_WINXP">Warning: Windows XP does not support files larger than 2048 GB (it will report that "Not enough storage is available"). Therefore, you cannot create a file-hosted VeraCrypt volume (container) larger than 2048 GB under Windows XP.\n\nNote that it is still possible to encrypt the entire drive or create a partition-hosted VeraCrypt volume larger than 2048 GB under Windows XP.</string>
|
<string lang="en" key="VOLUME_TOO_LARGE_FOR_WINXP">Warning: Windows XP does not support files larger than 2048 GB (it will report that "Not enough storage is available"). Therefore, you cannot create a file-hosted VeraCrypt volume (container) larger than 2048 GB under Windows XP.\n\nNote that it is still possible to encrypt the entire drive or create a partition-hosted VeraCrypt volume larger than 2048 GB under Windows XP.</string>
|
||||||
<string lang="nl" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">Waarschuwing: Als u in de toekomst meer bestanden wilt toevoegen aan het buiten volume, zou u misschien beter een kleinere grootte kunnen kiezen voor het verborgen volume.\n\nBent u er zeker van dat u wilt doorgaan met de grootte die u hebt ingegeven?</string>
|
<string lang="nl" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">Waarschuwing: Als u in de toekomst meer bestanden wilt toevoegen aan het buiten volume, zou u misschien beter een kleinere grootte kunnen kiezen voor het verborgen volume.\n\nBent u er zeker van dat u wilt doorgaan met de grootte die u hebt ingegeven?</string>
|
||||||
<string lang="nl" key="NO_VOLUME_SELECTED">Geen volume geselecteerd.\n\nKlik op 'Selecteer apparaat' of 'Selecteer bestand' om een VeraCrypt volume te selecteren.</string>
|
<string lang="nl" key="NO_VOLUME_SELECTED">Geen volume geselecteerd.\n\nKlik op 'Selecteer apparaat' of 'Selecteer bestand' om een VeraCrypt volume te selecteren.</string>
|
||||||
<string lang="nl" key="NO_SYSENC_PARTITION_SELECTED">Geen partitie geselecteerd.\n\nKlik 'Selecteer apparaat' om een ontkoppelde partitie te selecteren die normaal gesproken pre-boot authenticatie vereist (bijvoorbeeld een partitie gesitueerd op de gecodeerde systeem schijf van een ander besturingssysteem, dat niet draait, of de gecodeerde systeem partitie van een ander besturingssysteem).\n\nNoot: De geselecteerde partitie zal worden gekoppeld als een gewoon VeraCrypt volume zonder pre-boot authenticatie. Dit is nuttig bijv. voor back-up of reparatie acties.</string>
|
<string lang="nl" key="NO_SYSENC_PARTITION_SELECTED">Geen partitie geselecteerd.\n\nKlik 'Selecteer apparaat' om een ontkoppelde partitie te selecteren die normaal gesproken pre-boot authenticatie vereist (bijvoorbeeld een partitie gesitueerd op de gecodeerde systeem schijf van een ander besturingssysteem, dat niet draait, of de gecodeerde systeem partitie van een ander besturingssysteem).\n\nNoot: De geselecteerde partitie word als een gewoon VeraCrypt volume zonder pre-boot authenticatie gekoppeld. Dit is nuttig bijv. voor back-up of reparatie acties.</string>
|
||||||
<string lang="nl" key="CONFIRM_SAVE_DEFAULT_KEYFILES">WAARSCHUWING: Als Standaard sleutelbestanden zijn geselecteerd en opgeslagen, kunnen volumes die deze sleutelbestanden niet gebruiken onmogelijk meer worden gekoppeld. Daarom dient u, na aanzetten van de optie Standaard sleutelbestanden, niet te vergeten dit vinkje weer weg te halen bij het vakje "gebruik sleutelbestanden" onder het vakje "laat wachtwoord zien" wanneer u dergelijke volumes wilt gebruiken.\n\nBent u er zeker van de Standaard sleutelbestanden plus pad op te slaan?</string>
|
<string lang="nl" key="CONFIRM_SAVE_DEFAULT_KEYFILES">WAARSCHUWING: Als Standaard sleutelbestanden zijn geselecteerd en opgeslagen, kunnen volumes die deze sleutelbestanden niet gebruiken onmogelijk meer worden gekoppeld. Daarom dient u, na aanzetten van de optie Standaard sleutelbestanden, niet te vergeten dit vinkje weer weg te halen bij het vakje "gebruik sleutelbestanden" onder het vakje "laat wachtwoord zien" wanneer u dergelijke volumes wilt gebruiken.\n\nBent u er zeker van de Standaard sleutelbestanden plus pad op te slaan?</string>
|
||||||
<string lang="nl" key="HK_AUTOMOUNT_DEVICES">Auto-koppel apparaten</string>
|
<string lang="nl" key="HK_AUTOMOUNT_DEVICES">Auto-koppel apparaten</string>
|
||||||
<string lang="nl" key="HK_DISMOUNT_ALL">Ontkoppel alles</string>
|
<string lang="nl" key="HK_DISMOUNT_ALL">Ontkoppel alles</string>
|
||||||
@@ -1071,13 +1071,13 @@
|
|||||||
<string lang="en" key="SECTOR_SIZE_UNSUPPORTED">Error: The drive uses an unsupported sector size.\n\nIt is currently not possible to create partition/device-hosted volumes on drives that use sectors larger than 4096 bytes. However, note that you can create file-hosted volumes (containers) on such drives.</string>
|
<string lang="en" key="SECTOR_SIZE_UNSUPPORTED">Error: The drive uses an unsupported sector size.\n\nIt is currently not possible to create partition/device-hosted volumes on drives that use sectors larger than 4096 bytes. However, note that you can create file-hosted volumes (containers) on such drives.</string>
|
||||||
<string lang="en" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">It is currently not possible to encrypt a system installed on a disk that uses a sector size other than 512 bytes.</string>
|
<string lang="en" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">It is currently not possible to encrypt a system installed on a disk that uses a sector size other than 512 bytes.</string>
|
||||||
<string lang="nl" key="NO_SPACE_FOR_BOOT_LOADER">De VeraCrypt Boot Lader vereist minstens 32 KBytes vrije ruimte aan het begin van de systeem schijf (de VeraCrypt Boot Lader moet daar opgeslagen worden). Helaas voldoet uw systeem schijf niet aan deze voorwaarde.\n\nWilt u dit a.u.b. NIET als een programmafout/probleem van VeraCrypt melden. Om dit probleem op te lossen, zult u uw schijf moeten herpartitioneren en de eerste 32 KBytes van de schijf vrijlaten (in de meeste gevallen voldoet het de eerste partitie te verwijderen en opnieuw aan te maken). We raden u aan hiervoor de Microsoft partitie manager te gebruiken die beschikbaar is bijv. bij installeren van Windows.</string>
|
<string lang="nl" key="NO_SPACE_FOR_BOOT_LOADER">De VeraCrypt Boot Lader vereist minstens 32 KBytes vrije ruimte aan het begin van de systeem schijf (de VeraCrypt Boot Lader moet daar opgeslagen worden). Helaas voldoet uw systeem schijf niet aan deze voorwaarde.\n\nWilt u dit a.u.b. NIET als een programmafout/probleem van VeraCrypt melden. Om dit probleem op te lossen, zult u uw schijf moeten herpartitioneren en de eerste 32 KBytes van de schijf vrijlaten (in de meeste gevallen voldoet het de eerste partitie te verwijderen en opnieuw aan te maken). We raden u aan hiervoor de Microsoft partitie manager te gebruiken die beschikbaar is bijv. bij installeren van Windows.</string>
|
||||||
<string lang="nl" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Deze functie wordt niet ondersteund door de versie van het besturingssysteem die u momenteel gebruikt.</string>
|
<string lang="nl" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Deze functie wordt niet ondersteunt door de versie van het besturingssysteem die u momenteel gebruikt.</string>
|
||||||
<string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt ondersteunt geen codering van de systeem partitie/schijf onder de versie van het besturingssysteem die u momenteel gebruikt.</string>
|
<string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt ondersteunt geen codering van de systeem partitie/schijf onder de versie van het besturingssysteem die u momenteel gebruikt.</string>
|
||||||
<string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Voordat u de system partitie/schijf onder Windows Vista kunt coderen, dient u Service Pack 1 of hoger te installeren voor Windows Vista. Dit is op uw systeem niet aanwezig.\n\nNoot:Service Pack 1 voor Windows Vista loste een probleem op dat er te weinig geheugen aanwezig was tijdens het opstarten van het systeem.</string>
|
<string lang="nl" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Voordat u de system partitie/schijf onder Windows Vista kunt coderen, dient u Service Pack 1 of hoger te installeren voor Windows Vista. Dit is op uw systeem niet aanwezig.\n\nNoot:Service Pack 1 voor Windows Vista loste een probleem op dat er te weinig geheugen aanwezig was tijdens het opstarten van het systeem.</string>
|
||||||
<string lang="en" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt no longer supports encryption of the system partition/drive on Windows Vista with no Service Pack installed. Before upgrading VeraCrypt, please install Service Pack 1 or higher for Windows Vista.</string>
|
<string lang="en" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt no longer supports encryption of the system partition/drive on Windows Vista with no Service Pack installed. Before upgrading VeraCrypt, please install Service Pack 1 or higher for Windows Vista.</string>
|
||||||
<string lang="en" key="FEATURE_REQUIRES_INSTALLATION">Error: This feature requires VeraCrypt to be installed on the system (you are running VeraCrypt in portable mode).\n\nPlease install VeraCrypt and then try again.</string>
|
<string lang="en" key="FEATURE_REQUIRES_INSTALLATION">Error: This feature requires VeraCrypt to be installed on the system (you are running VeraCrypt in portable mode).\n\nPlease install VeraCrypt and then try again.</string>
|
||||||
<string lang="en" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">WARNING: Windows does not appear to be installed on the drive from which it boots. This is not supported.\n\nYou should continue only if you are sure that Windows is installed on the drive from which it boots.\n\nDo you want to continue?</string>
|
<string lang="en" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">WARNING: Windows does not appear to be installed on the drive from which it boots. This is not supported.\n\nYou should continue only if you are sure that Windows is installed on the drive from which it boots.\n\nDo you want to continue?</string>
|
||||||
<string lang="en" key="GPT_BOOT_DRIVE_UNSUPPORTED">You are running a 32-bit Windows and your system drive has a GUID partition table (GPT). Currently, only Windows 64-bit is supported for GPT system encryption.</string>
|
<string lang="nl" key="GPT_BOOT_DRIVE_UNSUPPORTED">U gebruikt een 32-bit Windows systeem en uw systeem heeft een GUID partitie tabel (GPT). Momenteel is er alleen ondersteuning voor Windows 64-bit GPT systeemcodering.</string>
|
||||||
<string lang="nl" key="TC_BOOT_LOADER_ALREADY_INSTALLED">VOORZICHTIG: De VeraCrypt Boot Lader is reeds geïnstalleerd op uw system schijf!\n\nHet is mogelijk dat een ander systeem op uw computer reeds gecodeerd is.\n\nWAARSCHUWING: DOORGAAN MET CODERING VAN HET NU ACTIEVE SYSTEEM KAN ERVOOR ZORGEN DAT EEN ANDER SYSTEEM/SYSTEMEN NIET MEER GESTART KUNNEN WORDEN EN DE AANWEZIGE DATA NIET MEER TOEGANKELIJK.\n\nBent u er zeker van dat u door wilt gaan?</string>
|
<string lang="nl" key="TC_BOOT_LOADER_ALREADY_INSTALLED">VOORZICHTIG: De VeraCrypt Boot Lader is reeds geïnstalleerd op uw system schijf!\n\nHet is mogelijk dat een ander systeem op uw computer reeds gecodeerd is.\n\nWAARSCHUWING: DOORGAAN MET CODERING VAN HET NU ACTIEVE SYSTEEM KAN ERVOOR ZORGEN DAT EEN ANDER SYSTEEM/SYSTEMEN NIET MEER GESTART KUNNEN WORDEN EN DE AANWEZIGE DATA NIET MEER TOEGANKELIJK.\n\nBent u er zeker van dat u door wilt gaan?</string>
|
||||||
<string lang="nl" key="SYS_LOADER_RESTORE_FAILED">Fout in herstellen van de originele systeemlader.\n\nGebruik a.u.b. uw VeraCrypt reddingsschijf ('Repair Options' > 'Restore original system loader') of Windows installatie medium om de VeraCrypt Boot Lader te vervangen door de Windows systeem lader.</string>
|
<string lang="nl" key="SYS_LOADER_RESTORE_FAILED">Fout in herstellen van de originele systeemlader.\n\nGebruik a.u.b. uw VeraCrypt reddingsschijf ('Repair Options' > 'Restore original system loader') of Windows installatie medium om de VeraCrypt Boot Lader te vervangen door de Windows systeem lader.</string>
|
||||||
<string lang="nl" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">De originele systeem lader zal niet opgeslagen worden op de Reddingsschijf (waarschijnlijke oorzaak: ontbrekende back-up).</string>
|
<string lang="nl" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">De originele systeem lader zal niet opgeslagen worden op de Reddingsschijf (waarschijnlijke oorzaak: ontbrekende back-up).</string>
|
||||||
@@ -1103,12 +1103,12 @@
|
|||||||
<string lang="en" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Your system uses an extra boot partition. VeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition (decoy systems can be hibernated without any problems).\n\nPlease note that the boot partition would be shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system from writing to the shared boot partition and from hibernating.\n\n\nDo you want to continue? If you select 'No', instructions for removing the extra boot partition will be displayed.</string>
|
<string lang="en" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Your system uses an extra boot partition. VeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition (decoy systems can be hibernated without any problems).\n\nPlease note that the boot partition would be shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system from writing to the shared boot partition and from hibernating.\n\n\nDo you want to continue? If you select 'No', instructions for removing the extra boot partition will be displayed.</string>
|
||||||
<string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its size so that the operating system can be installed to it.\n\n6) Click 'Apply' and 'OK'.\n\n7) Install Windows on the 'System Reserved' partition.\n\n\nShould an attacker ask why you removed the extra boot partition, you can answer that you wanted to prevent any possible data leaks to the unencrypted boot partition.\n\nNote: You can print this text by clicking the 'Print' button below. If you save a copy of this text or print it (strongly recommended, unless your printer stores copies of documents it prints on its internal drive), you should destroy any copies of it after removing the extra boot partition (otherwise, if such a copy was found, it might indicate that there is a hidden operating system on this computer).</string>
|
<string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its size so that the operating system can be installed to it.\n\n6) Click 'Apply' and 'OK'.\n\n7) Install Windows on the 'System Reserved' partition.\n\n\nShould an attacker ask why you removed the extra boot partition, you can answer that you wanted to prevent any possible data leaks to the unencrypted boot partition.\n\nNote: You can print this text by clicking the 'Print' button below. If you save a copy of this text or print it (strongly recommended, unless your printer stores copies of documents it prints on its internal drive), you should destroy any copies of it after removing the extra boot partition (otherwise, if such a copy was found, it might indicate that there is a hidden operating system on this computer).</string>
|
||||||
<string lang="nl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">WAARSCHUWING: Er is niet-toegewezen ruimte aanwezig tussen de systeem partitie en de eerste partitie daar achter. Na aanmaken van het verborgen besturingssysteem (OS) mag u geen partitie meer maken in deze ruimte, anders zal het verborgen OS systeem niet meer te starten zijn (totdat u deze partitie weer verwijdert).</string>
|
<string lang="nl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">WAARSCHUWING: Er is niet-toegewezen ruimte aanwezig tussen de systeem partitie en de eerste partitie daar achter. Na aanmaken van het verborgen besturingssysteem (OS) mag u geen partitie meer maken in deze ruimte, anders zal het verborgen OS systeem niet meer te starten zijn (totdat u deze partitie weer verwijdert).</string>
|
||||||
<string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Dit algoritme wordt momenteel niet ondersteund voor systeem codering.</string>
|
<string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Dit algoritme wordt momenteel niet ondersteunt voor systeemcodering.</string>
|
||||||
<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
|
<string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Dit algoritme wordt niet ondersteunt in TrueCrypt modus.</string>
|
||||||
<string lang="nl" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">PIM (Persoonlijke iteraties Multiplier) wordt niet ondersteund in TrueCrypt modus.</string>
|
<string lang="nl" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">PIM (Persoonlijke iteraties Multiplier) wordt niet ondersteunt in TrueCrypt modus.</string>
|
||||||
<string lang="en" key="PIM_REQUIRE_LONG_PASSWORD">Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 485 or greater.</string>
|
<string lang="en" key="PIM_REQUIRE_LONG_PASSWORD">Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 485 or greater.</string>
|
||||||
<string lang="en" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Pre-boot authentication Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 98 or greater.</string>
|
<string lang="en" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Pre-boot authentication Password must contain 20 or more characters in order to use the specified PIM.\nShorter passwords can only be used if the PIM is 98 or greater.</string>
|
||||||
<string lang="nl" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Sleutelbestanden zijn niet ondersteund bij systeemcodering.</string>
|
<string lang="nl" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">U kunt geen sleutelbestanden gebruiken bij systeemcodering.</string>
|
||||||
<string lang="nl" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Waarschuwing: VeraCrypt kon de originele toetsenbord lay-out niet terugzetten. Dit zou ertoe kunnen leiden dat u een wachtwoord verkeerd ingeeft.</string>
|
<string lang="nl" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Waarschuwing: VeraCrypt kon de originele toetsenbord lay-out niet terugzetten. Dit zou ertoe kunnen leiden dat u een wachtwoord verkeerd ingeeft.</string>
|
||||||
<string lang="nl" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fout: Kan de toetsenbord indeling voor VeraCrypt niet instellen op de standaard (US) toetsenbord indeling.\n\nMerk op dat het wachtwoord ingetypt moet worden in de pre-boot omgeving (voor Windows start) waar niet-standaard (US) Windows toetsenbord indelingen niet beschikbaar zijn. Daarom moet het wachtwoord altijd worden ingetypt met gebruik van de standaard (US) toetsenbord indeling.</string>
|
<string lang="nl" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fout: Kan de toetsenbord indeling voor VeraCrypt niet instellen op de standaard (US) toetsenbord indeling.\n\nMerk op dat het wachtwoord ingetypt moet worden in de pre-boot omgeving (voor Windows start) waar niet-standaard (US) Windows toetsenbord indelingen niet beschikbaar zijn. Daarom moet het wachtwoord altijd worden ingetypt met gebruik van de standaard (US) toetsenbord indeling.</string>
|
||||||
<string lang="nl" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Omdat VeraCrypt tijdelijk de toetsenbord lay-out veranderde naar de standaard (US) toetsenbordindeling, is het niet mogelijk karakters te typen terwijl u de rechter ALT toets ingedrukt houdt. Echter, u kunt de meeste van dit soort karakters creëren door de betreffende toets in te drukken terwijl u de SHIFT toets ingedrukt houdt.</string>
|
<string lang="nl" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Omdat VeraCrypt tijdelijk de toetsenbord lay-out veranderde naar de standaard (US) toetsenbordindeling, is het niet mogelijk karakters te typen terwijl u de rechter ALT toets ingedrukt houdt. Echter, u kunt de meeste van dit soort karakters creëren door de betreffende toets in te drukken terwijl u de SHIFT toets ingedrukt houdt.</string>
|
||||||
@@ -1121,8 +1121,8 @@
|
|||||||
<string lang="en" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software. If you do not have any CD/DVD recording software that can write the ISO disk image to a CD/DVD, click the link below to download such free software.\n\n</string>
|
<string lang="en" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software. If you do not have any CD/DVD recording software that can write the ISO disk image to a CD/DVD, click the link below to download such free software.\n\n</string>
|
||||||
<string lang="en" key="LAUNCH_WIN_ISOBURN">Launch Microsoft Windows Disc Image Burner</string>
|
<string lang="en" key="LAUNCH_WIN_ISOBURN">Launch Microsoft Windows Disc Image Burner</string>
|
||||||
<string lang="nl" key="RESCUE_DISK_BURN_NO_CHECK_WARN">LET OP: Indien u een VeraCrypt Reddingsschijf heeft kan deze niet gebruikt worden voor deze systeem partitie/schijf omdat hij is gemaakt voor een andere master key! Na iedere codering van een systeem partitie/schijf moet een nieuwe reddingsschijf worden aangemaakt, zelfs als u hetzelfde wachtwoord gebruikt.</string>
|
<string lang="nl" key="RESCUE_DISK_BURN_NO_CHECK_WARN">LET OP: Indien u een VeraCrypt Reddingsschijf heeft kan deze niet gebruikt worden voor deze systeem partitie/schijf omdat hij is gemaakt voor een andere master key! Na iedere codering van een systeem partitie/schijf moet een nieuwe reddingsschijf worden aangemaakt, zelfs als u hetzelfde wachtwoord gebruikt.</string>
|
||||||
<string lang="nl" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Fout: Kan de systeem codering settings niet opslaan.</string>
|
<string lang="nl" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Fout: Kan de systeemcodering settings niet opslaan.</string>
|
||||||
<string lang="nl" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Kan de systeem codering pre-test niet initiëren.</string>
|
<string lang="nl" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Kan de systeemcodering pre-test niet initiëren.</string>
|
||||||
<string lang="nl" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Voorbereiding tot aanmaak van verborgen besturingssysteem mislukt.</string>
|
<string lang="nl" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Voorbereiding tot aanmaak van verborgen besturingssysteem mislukt.</string>
|
||||||
<string lang="nl" key="WIPE_MODE_TITLE">Wis Modus</string>
|
<string lang="nl" key="WIPE_MODE_TITLE">Wis Modus</string>
|
||||||
<string lang="nl" key="INPLACE_ENC_WIPE_MODE_INFO">Op sommige typen opslagmedia is het mogelijk oorspronkelijke data, die overschreven zijn door andere data, weer te herstellen met geavanceerde technieken. Dit geldt ook voor data die worden overschreven door hun gecodeerde variant. (Dit gebeurt als VeraCrypt een ongecodeerde partitie of schijf codeert.) Volgens studies en overheidspublicaties kan deze hersteltechniek voorkomen worden (of zeer bemoeilijkt) door de data eerst een aantal malen met pseudo-random en niet-random data te overschrijven. Indien u gelooft dat een vijand mogelijk uw originele data met een dergelijke techniek zou kunnen herstellen, kunt u één van de volgende wismethoden kiezen (let op bestaande data gaan NIET verloren). Merk op dat het wissen NIET zal plaatsvinden na de codering van de partitie/schijf. Als de partie/schijf geheel is gecodeerd worden er geen ongecodeerde data meer op geschreven, deze data worden in het interne geheugen “on the fly” gecodeerd en daarna pas weggeschreven naar de schijf.</string>
|
<string lang="nl" key="INPLACE_ENC_WIPE_MODE_INFO">Op sommige typen opslagmedia is het mogelijk oorspronkelijke data, die overschreven zijn door andere data, weer te herstellen met geavanceerde technieken. Dit geldt ook voor data die worden overschreven door hun gecodeerde variant. (Dit gebeurt als VeraCrypt een ongecodeerde partitie of schijf codeert.) Volgens studies en overheidspublicaties kan deze hersteltechniek voorkomen worden (of zeer bemoeilijkt) door de data eerst een aantal malen met pseudo-random en niet-random data te overschrijven. Indien u gelooft dat een vijand mogelijk uw originele data met een dergelijke techniek zou kunnen herstellen, kunt u één van de volgende wismethoden kiezen (let op bestaande data gaan NIET verloren). Merk op dat het wissen NIET zal plaatsvinden na de codering van de partitie/schijf. Als de partie/schijf geheel is gecodeerd worden er geen ongecodeerde data meer op geschreven, deze data worden in het interne geheugen “on the fly” gecodeerd en daarna pas weggeschreven naar de schijf.</string>
|
||||||
@@ -1159,7 +1159,7 @@
|
|||||||
<string lang="nl" key="WINDOWS_BOOT_LOADER_HINTS">Als het nu draaiende besturingssysteem (OS) is geïnstalleerd op de boot partitie zult u na codering ervan het wachtwoord dienen op te geven, zelfs als u een ander ongecodeerd Windows systeem wilt starten. Dit omdat ze dezelfde gecodeerde Windows boot lader/manager delen.\n\nIn contrast hiermee: als het nu draaiende OS NIET geïnstalleerd is op de boot partitie (of als de Windows boot lader/manager niet door een ander systeem wordt gebruikt) dan zal, na codering van dit systeem het ingeven van een wachtwoord voor andere ongecodeerde syste(e)m(en) niet nodig zijn. Dan zal alleen het indrukken van de ESC toets voldoende zijn om het ongecodeerde systeem te starten. (Indien er meerdere van deze ongecodeerde systemen zijn zult u in het VeraCrypt Boot Manager Menu moeten aangeven welk systeem te starten).\n\nNoot: Kenmerkend is dat het éérst geïnstalleerde Windows systeem op de boot partitie staat.</string>
|
<string lang="nl" key="WINDOWS_BOOT_LOADER_HINTS">Als het nu draaiende besturingssysteem (OS) is geïnstalleerd op de boot partitie zult u na codering ervan het wachtwoord dienen op te geven, zelfs als u een ander ongecodeerd Windows systeem wilt starten. Dit omdat ze dezelfde gecodeerde Windows boot lader/manager delen.\n\nIn contrast hiermee: als het nu draaiende OS NIET geïnstalleerd is op de boot partitie (of als de Windows boot lader/manager niet door een ander systeem wordt gebruikt) dan zal, na codering van dit systeem het ingeven van een wachtwoord voor andere ongecodeerde syste(e)m(en) niet nodig zijn. Dan zal alleen het indrukken van de ESC toets voldoende zijn om het ongecodeerde systeem te starten. (Indien er meerdere van deze ongecodeerde systemen zijn zult u in het VeraCrypt Boot Manager Menu moeten aangeven welk systeem te starten).\n\nNoot: Kenmerkend is dat het éérst geïnstalleerde Windows systeem op de boot partitie staat.</string>
|
||||||
<string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Codering van "Host Protected Area"</string>
|
<string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Codering van "Host Protected Area"</string>
|
||||||
<string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Aan het einde van veel harde schijven bestaat een gebied dat normaal gesproken verborgen is voor het besturingssysteem, het ‘Hort Protected Area’ (HPA). Sommige programma’s kunnen echter data lezen en schrijven naar dit gebied.\n\nWAARSCHUWING: Sommige computerfabrikanten gebruiken dit gebied voor de opslag van tools, data voor RAID, systeemherstel, systeem setup, diagnostiek enz. Indien deze data toegankelijk moeten zijn vóór het opstarten, mag de HPA NIET gecodeerd worden. (Kies boven ‘Nee’)\n\nWilt u dat VeraCrypt een HPA opzoekt en codeert?</string>
|
<string lang="nl" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">Aan het einde van veel harde schijven bestaat een gebied dat normaal gesproken verborgen is voor het besturingssysteem, het ‘Hort Protected Area’ (HPA). Sommige programma’s kunnen echter data lezen en schrijven naar dit gebied.\n\nWAARSCHUWING: Sommige computerfabrikanten gebruiken dit gebied voor de opslag van tools, data voor RAID, systeemherstel, systeem setup, diagnostiek enz. Indien deze data toegankelijk moeten zijn vóór het opstarten, mag de HPA NIET gecodeerd worden. (Kies boven ‘Nee’)\n\nWilt u dat VeraCrypt een HPA opzoekt en codeert?</string>
|
||||||
<string lang="nl" key="SYSENC_TYPE_PAGE_TITLE">Type Systeem Codering</string>
|
<string lang="nl" key="SYSENC_TYPE_PAGE_TITLE">Type SysteemCodering</string>
|
||||||
<string lang="nl" key="SYSENC_NORMAL_TYPE_HELP">Selecteer deze optie als u de systeempartitie of de gehele systeemschijf wilt coderen zonder deze te verbergen.</string>
|
<string lang="nl" key="SYSENC_NORMAL_TYPE_HELP">Selecteer deze optie als u de systeempartitie of de gehele systeemschijf wilt coderen zonder deze te verbergen.</string>
|
||||||
<string lang="en" key="SYSENC_HIDDEN_TYPE_HELP">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion). If you select this option, you will create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password to the hidden operating system. For a detailed explanation, please click the link below.</string>
|
<string lang="en" key="SYSENC_HIDDEN_TYPE_HELP">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion). If you select this option, you will create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password to the hidden operating system. For a detailed explanation, please click the link below.</string>
|
||||||
<string lang="en" key="HIDDEN_OS_PREINFO">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion).\n\nUsing this wizard, you can create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password for the hidden operating system.</string>
|
<string lang="en" key="HIDDEN_OS_PREINFO">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion).\n\nUsing this wizard, you can create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password for the hidden operating system.</string>
|
||||||
@@ -1172,9 +1172,9 @@
|
|||||||
<string lang="nl" key="COLLECTING_RANDOM_DATA_TITLE">Verzamelen Random Data</string>
|
<string lang="nl" key="COLLECTING_RANDOM_DATA_TITLE">Verzamelen Random Data</string>
|
||||||
<string lang="nl" key="KEYS_GEN_TITLE">Sleutels aangemaakt</string>
|
<string lang="nl" key="KEYS_GEN_TITLE">Sleutels aangemaakt</string>
|
||||||
<string lang="en" key="CD_BURNER_NOT_PRESENT">VeraCrypt has found no CD/DVD burner connected to your computer. VeraCrypt needs a CD/DVD burner to burn a bootable VeraCrypt Rescue Disk containing a backup of the encryption keys, VeraCrypt boot loader, original system loader, etc.\n\nWe strongly recommend that you burn the VeraCrypt Rescue Disk.</string>
|
<string lang="en" key="CD_BURNER_NOT_PRESENT">VeraCrypt has found no CD/DVD burner connected to your computer. VeraCrypt needs a CD/DVD burner to burn a bootable VeraCrypt Rescue Disk containing a backup of the encryption keys, VeraCrypt boot loader, original system loader, etc.\n\nWe strongly recommend that you burn the VeraCrypt Rescue Disk.</string>
|
||||||
<string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">I have no CD/DVD burner but I will store the Rescue Disk ISO image on a removable drive (e.g. USB flash drive).</string>
|
<string lang="nl" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">Ik heb geen CD/DVD brander, maar sla het herstelschijf ISO bestand op op een portable station (b.v. USB flash schijf).</string>
|
||||||
<string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">I will connect a CD/DVD burner to my computer later. Terminate the process now.</string>
|
<string lang="nl" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">Ik zal later een CD/DVD brander aan de computer aansluiten. Het proces nu afbreken.</string>
|
||||||
<string lang="en" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">A CD/DVD burner is connected to my computer now. Continue and write the Rescue Disk.</string>
|
<string lang="nl" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">Een CD/DVD brander is nu aan de computer aangesloten. ga verder en maak een herstelschijf.</string>
|
||||||
<string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Please follow these steps:\n\n1) Connect a removable drive, such as a USB flash drive, to your computer now.\n\n2) Copy the VeraCrypt Rescue Disk image file (%s) to the removable drive.\n\nIn case you need to use the VeraCrypt Rescue Disk in the future, you will be able to connect your removable drive (containing the VeraCrypt Rescue Disk image) to a computer with a CD/DVD burner and create a bootable VeraCrypt Rescue Disk by burning the image to a CD or DVD. IMPORTANT: Note that the VeraCrypt Rescue Disk image file must be written to the CD/DVD as an ISO disk image (not as an individual file).</string>
|
<string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Please follow these steps:\n\n1) Connect a removable drive, such as a USB flash drive, to your computer now.\n\n2) Copy the VeraCrypt Rescue Disk image file (%s) to the removable drive.\n\nIn case you need to use the VeraCrypt Rescue Disk in the future, you will be able to connect your removable drive (containing the VeraCrypt Rescue Disk image) to a computer with a CD/DVD burner and create a bootable VeraCrypt Rescue Disk by burning the image to a CD or DVD. IMPORTANT: Note that the VeraCrypt Rescue Disk image file must be written to the CD/DVD as an ISO disk image (not as an individual file).</string>
|
||||||
<string lang="nl" key="RESCUE_DISK_RECORDING_TITLE">Reddingsschijf Maken</string>
|
<string lang="nl" key="RESCUE_DISK_RECORDING_TITLE">Reddingsschijf Maken</string>
|
||||||
<string lang="nl" key="RESCUE_DISK_CREATED_TITLE">Reddingsschijf Aangemaakt</string>
|
<string lang="nl" key="RESCUE_DISK_CREATED_TITLE">Reddingsschijf Aangemaakt</string>
|
||||||
@@ -1231,7 +1231,7 @@
|
|||||||
<string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Klonen besturingssysteem</string>
|
<string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Klonen besturingssysteem</string>
|
||||||
<string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_HELP">In de volgende stappen zal VeraCrypt het verborgen besturingssysteem aanmaken door de inhoud van de system partitie naar het verborgen volume te kopiëren (de te kopiëren data worden on-the-fly gecodeerd met een andere codering sleutel dan die van het lokvogel besturingssysteem)\n\nMerk op dat dit proces wordt uitgevoerd in de pre-boot omgeving (dus voordat Windows start) en dat voltooiing lang kan duren: meerder uren of zelfs dagen (afhankelijk van de grootte van de systeem partitie en van de prestaties van uw computer).\n\nU kunt het proces onderbreken, de computer afsluiten, en weer hervatten na aanzetten van de computer. Echter, na onderbreking zal het proces van het kopiëren en coderen van de systeem partitie altijd weer van voren af aan beginnen omdat de inhoud van deze partitie tijdens het klonen niet gewijzigd mag worden.</string>
|
<string lang="nl" key="HIDDEN_OS_CREATION_PREINFO_HELP">In de volgende stappen zal VeraCrypt het verborgen besturingssysteem aanmaken door de inhoud van de system partitie naar het verborgen volume te kopiëren (de te kopiëren data worden on-the-fly gecodeerd met een andere codering sleutel dan die van het lokvogel besturingssysteem)\n\nMerk op dat dit proces wordt uitgevoerd in de pre-boot omgeving (dus voordat Windows start) en dat voltooiing lang kan duren: meerder uren of zelfs dagen (afhankelijk van de grootte van de systeem partitie en van de prestaties van uw computer).\n\nU kunt het proces onderbreken, de computer afsluiten, en weer hervatten na aanzetten van de computer. Echter, na onderbreking zal het proces van het kopiëren en coderen van de systeem partitie altijd weer van voren af aan beginnen omdat de inhoud van deze partitie tijdens het klonen niet gewijzigd mag worden.</string>
|
||||||
<string lang="nl" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Wilt u het gehele proces tot aanmaak van een verborgen besturingssysteem stoppen?\n\nNoot: U zult het proces NIET kunnen hervatten als u nu stopt.</string>
|
<string lang="nl" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Wilt u het gehele proces tot aanmaak van een verborgen besturingssysteem stoppen?\n\nNoot: U zult het proces NIET kunnen hervatten als u nu stopt.</string>
|
||||||
<string lang="nl" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Wilt u de systeem codering pre-test annuleren?</string>
|
<string lang="nl" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Wilt u de systeemcodering pre-test annuleren?</string>
|
||||||
<string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
|
<string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES and the pretest failed (and you entered the password), it may have been caused by an inappropriately designed driver. Select 'No', and try encrypting the system partition/drive again, but use the AES encryption algorithm (which has the lowest memory requirements).\n\n- For more possible causes and solutions, see: https://veracrypt.codeplex.com/wikipage?title=Troubleshooting</string>
|
||||||
<string lang="nl" key="SYS_DRIVE_NOT_ENCRYPTED">De systeem partitie/schijf blijkt niet gecodeerd te zijn (ook niet gedeeltelijk).</string>
|
<string lang="nl" key="SYS_DRIVE_NOT_ENCRYPTED">De systeem partitie/schijf blijkt niet gecodeerd te zijn (ook niet gedeeltelijk).</string>
|
||||||
<string lang="nl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Uw systeem partitie/schijf is gecodeerd (volledig of geheel).\n\nDecodeer a.u.b. uw systeem partitie/schijf geheel alvorens verder te gaan. Om dit te doen, selecteer 'Systeem' > 'Permanent Decoderen Systeem Partitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
|
<string lang="nl" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Uw systeem partitie/schijf is gecodeerd (volledig of geheel).\n\nDecodeer a.u.b. uw systeem partitie/schijf geheel alvorens verder te gaan. Om dit te doen, selecteer 'Systeem' > 'Permanent Decoderen Systeem Partitie/Schijf' uit het menu van het hoofdscherm van VeraCrypt.</string>
|
||||||
@@ -1241,7 +1241,7 @@
|
|||||||
<string lang="nl" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Het coderen/decoderen van de systeem partitie/schijf is niet voltooid. Wacht a.u.b. tot het is voltooid alvorens verder te gaan.</string>
|
<string lang="nl" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Het coderen/decoderen van de systeem partitie/schijf is niet voltooid. Wacht a.u.b. tot het is voltooid alvorens verder te gaan.</string>
|
||||||
<string lang="nl" key="ERR_ENCRYPTION_NOT_COMPLETED">Fout: Het coderen/decoderen van de partitie/schijf is niet voltooid. Het moet eerst afgerond worden.</string>
|
<string lang="nl" key="ERR_ENCRYPTION_NOT_COMPLETED">Fout: Het coderen/decoderen van de partitie/schijf is niet voltooid. Het moet eerst afgerond worden.</string>
|
||||||
<string lang="nl" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Fout: Het coderingsproces van de partitie/volume is niet voltooid. Het moet eerst voltooid worden.\n\nOm het proces te hervatten, selecteer 'Volumes' > 'Hervat Onderbroken Proces' uit het menu van het hoofdscherm van VeraCrypt.</string>
|
<string lang="nl" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Fout: Het coderingsproces van de partitie/volume is niet voltooid. Het moet eerst voltooid worden.\n\nOm het proces te hervatten, selecteer 'Volumes' > 'Hervat Onderbroken Proces' uit het menu van het hoofdscherm van VeraCrypt.</string>
|
||||||
<string lang="nl" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Het wachtwoord is goed, VeraCrypt heeft de volumeheader gedecodeerd maar ontdekt dat dit een verborgen systeem volume is. U kunt de volumeheader van een verborgen systeem volume niet op deze manier wijzigen.\n\nOm het wachtwoord van een verborgen systeem volume te wijzigen, start het verborgen besturingssysteem en kies dan 'Systeem' > 'Verander wachtwoord' uit het menu van het hoofdscherm van VeraCrypt.\n\nOm het header key afleidingsalgoritme aan te maken, start het verborgen besturingssysteem en lies dan 'Systeem' > 'Creëer Header Key Afleidingsalgoritme'.</string>
|
<string lang="nl" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Het wachtwoord is goed, VeraCrypt heeft de volumeheader gedecodeerd maar ontdekt dat dit een verborgen systeemvolume is. U kunt de volumeheader van een verborgen systeemvolume niet op deze manier wijzigen.\n\nOm het wachtwoord van een verborgen systeemvolume te wijzigen, start het verborgen besturingssysteem en kies dan 'Systeem' > 'Verander wachtwoord' uit het menu van het hoofdscherm van VeraCrypt.\n\nOm het header key afleidingsalgoritme aan te maken, start het verborgen besturingssysteem en lies dan 'Systeem' > 'Creëer Header Key Afleidingsalgoritme'.</string>
|
||||||
<string lang="nl" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt ondersteunt geen Op-De-Plaats decodering van een verborgen systeem partitie.\n\nNoot:Als u de lokvogel systeem partitie wilt decoderen, start het lokvogel besturingssysteem en selecteer 'Systeem' > 'Permanent Decoderen Systeem Partitie/Schijf' in het VeraCrypt hoofdscherm.</string>
|
<string lang="nl" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt ondersteunt geen Op-De-Plaats decodering van een verborgen systeem partitie.\n\nNoot:Als u de lokvogel systeem partitie wilt decoderen, start het lokvogel besturingssysteem en selecteer 'Systeem' > 'Permanent Decoderen Systeem Partitie/Schijf' in het VeraCrypt hoofdscherm.</string>
|
||||||
<string lang="nl" key="ERR_PARAMETER_INCORRECT">Fout: Incorrecte/ongeldige parameter.</string>
|
<string lang="nl" key="ERR_PARAMETER_INCORRECT">Fout: Incorrecte/ongeldige parameter.</string>
|
||||||
<string lang="nl" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">U heeft een partitie of apparaat geselecteerd maar de functie van de wizard die u koos is alleen maar geschikt voor bestandscontainers.\n\nWilt u een andere functie van de wizard kiezen?</string>
|
<string lang="nl" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">U heeft een partitie of apparaat geselecteerd maar de functie van de wizard die u koos is alleen maar geschikt voor bestandscontainers.\n\nWilt u een andere functie van de wizard kiezen?</string>
|
||||||
@@ -1249,7 +1249,7 @@
|
|||||||
<string lang="en" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">You have selected the system partition/drive (or the boot partition), but the wizard mode you selected is suitable only for non-system partitions/drives.\n\nDo you want to set up pre-boot authentication (which means that you will need to enter your password each time before Windows boots/starts) and encrypt the system partition/drive?</string>
|
<string lang="en" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">You have selected the system partition/drive (or the boot partition), but the wizard mode you selected is suitable only for non-system partitions/drives.\n\nDo you want to set up pre-boot authentication (which means that you will need to enter your password each time before Windows boots/starts) and encrypt the system partition/drive?</string>
|
||||||
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE">Bent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
|
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE">Bent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
|
||||||
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">VOORZICHTIG: Als u de systeempartitie/-schijf permanent decodeert, worden er ongecodeerde data naar geschreven.\n\nBent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
|
<string lang="nl" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">VOORZICHTIG: Als u de systeempartitie/-schijf permanent decodeert, worden er ongecodeerde data naar geschreven.\n\nBent u er zeker van dat u de systeempartitie/-schijf permanent wilt decoderen?</string>
|
||||||
<string lang="nl" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Weet je zeker dat je het navolgende station permanent wilt decoderen?</string>
|
<string lang="nl" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Weet u zeker dat u het navolgende station permanent wilt decoderen?</string>
|
||||||
<string lang="en" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">CAUTION: If you permanently decrypt the VeraCrypt volume, unencrypted data will be written to the disk.\n\nAre you really sure you want to permanently decrypt the selected volume?</string>
|
<string lang="en" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">CAUTION: If you permanently decrypt the VeraCrypt volume, unencrypted data will be written to the disk.\n\nAre you really sure you want to permanently decrypt the selected volume?</string>
|
||||||
<string lang="nl" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Waarschuwing: als u codes in cascade gebruikt voor system codering, kunt u de volgende problemen tegenkomen:\n\n)1 De VeraCrypt Boot Lader is dan groter dan normaal waardoor er niet genoeg ruimte zou kunnen zijn op de eerste track van de schijf voor een back-up van deze Boot Lader. Als de Boot Lader beschadigd raakt, hetgeen nogal eens gebeurt (bijv. door slecht ontworpen anti-piraterij activatieprocedures van bepaalde programma’s), heeft u de VeraCrypt Reddingsschijf nodig om op te starten of om de Boot Lader te repareren.\n\n2) Op sommige computers neemt het herstarten uit de slaapstand meer tijd in beslag.\n\nDeze mogelijke problemen kunt u vermijden door een niet-cascade coderingsalgoritme (bijv. AES) te kiezen.\n\nBent u er zeker van dat u codes in cascade wilt gebruiken?</string>
|
<string lang="nl" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Waarschuwing: als u codes in cascade gebruikt voor system codering, kunt u de volgende problemen tegenkomen:\n\n)1 De VeraCrypt Boot Lader is dan groter dan normaal waardoor er niet genoeg ruimte zou kunnen zijn op de eerste track van de schijf voor een back-up van deze Boot Lader. Als de Boot Lader beschadigd raakt, hetgeen nogal eens gebeurt (bijv. door slecht ontworpen anti-piraterij activatieprocedures van bepaalde programma’s), heeft u de VeraCrypt Reddingsschijf nodig om op te starten of om de Boot Lader te repareren.\n\n2) Op sommige computers neemt het herstarten uit de slaapstand meer tijd in beslag.\n\nDeze mogelijke problemen kunt u vermijden door een niet-cascade coderingsalgoritme (bijv. AES) te kiezen.\n\nBent u er zeker van dat u codes in cascade wilt gebruiken?</string>
|
||||||
<string lang="nl" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Als u enige van de hiervoor beschreven problemen tegenkomt, decodeer de partitie/schijf (als het is gecodeerd) en codeer het daarna opnieuw met gebruik van een niet-cascade-code (bijv. AES).</string>
|
<string lang="nl" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Als u enige van de hiervoor beschreven problemen tegenkomt, decodeer de partitie/schijf (als het is gecodeerd) en codeer het daarna opnieuw met gebruik van een niet-cascade-code (bijv. AES).</string>
|
||||||
@@ -1295,10 +1295,10 @@
|
|||||||
<string lang="nl" key="RESCUE_DISK">Reddingsschijf</string>
|
<string lang="nl" key="RESCUE_DISK">Reddingsschijf</string>
|
||||||
<string lang="nl" key="SELECT_FILE_AND_MOUNT">Selecteer &bestand en koppel</string>
|
<string lang="nl" key="SELECT_FILE_AND_MOUNT">Selecteer &bestand en koppel</string>
|
||||||
<string lang="nl" key="SELECT_DEVICE_AND_MOUNT">Selecteer &apparaat en koppel</string>
|
<string lang="nl" key="SELECT_DEVICE_AND_MOUNT">Selecteer &apparaat en koppel</string>
|
||||||
<string lang="en" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Allow only administrators to view and dismount system favorite volumes in VeraCrypt</string>
|
<string lang="nl" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Toestaan dat alleen administrators favoriete systeemvolumes in VeraCrypt kunnen bekijken en ontkoppelen</string>
|
||||||
<string lang="en" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Mount system favorite volumes when Windows starts (in the initial phase of the startup procedure)</string>
|
<string lang="nl" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Koppel favoriete systeemvolumes wanneer Windows start (in de beginfase van de opstartprocedure)</string>
|
||||||
<string lang="nl" key="MOUNTED_VOLUME_DIRTY">Waarschuwing: Het volume gekoppeld als '%s' werd niet correct ontkoppeld en kan derhalve fouten bevatten. Het gebruik van een corrupt bestandssysteem kan dataverlies of verminking tot gevolg hebben.\n\nNoot: Voordat u een apparaat fysiek verwijdert of uitschakelt (bijv. een USB flash-drive of een externe harddisk) waarop een gekoppeld VeraCrypt volume staat, moet u altijd eerst dit volume ontkoppelen.\n\nWilt u dat windows probeert evt. fouten op dit volume op te sporen en te repareren?</string>
|
<string lang="nl" key="MOUNTED_VOLUME_DIRTY">Waarschuwing: Het volume gekoppeld als '%s' werd niet correct ontkoppeld en kan derhalve fouten bevatten. Het gebruik van een corrupt bestandssysteem kan dataverlies of verminking tot gevolg hebben.\n\nNoot: Voordat u een apparaat fysiek verwijdert of uitschakelt (bijv. een USB flash-drive of een externe harddisk) waarop een gekoppeld VeraCrypt volume staat, moet u altijd eerst dit volume ontkoppelen.\n\nWilt u dat windows probeert evt. fouten op dit volume op te sporen en te repareren?</string>
|
||||||
<string lang="en" key="SYS_FAVORITE_VOLUME_DIRTY">Warning: One or more system favorite volumes were not cleanly dismounted and thus may contain filesystem errors. Please see the system event log for further details.\n\nUsing a corrupted filesystem can cause data loss or data corruption. You should check the affected system favorite volume(s) for errors (right-click each of them in VeraCrypt and select 'Repair Filesystem').</string>
|
<string lang="nl" key="SYS_FAVORITE_VOLUME_DIRTY">Waarschuwing: Een of meer favoriete systeemvolumes werden niet goed afgekoppeld en kunnen zodoende bestandsfouten bevatten. Controleer het systeem gebeurtenissenlogboek voor meer details.\n\nHet gebruik van een beschadigt bestandssysteem kan verlies of verminking van data tot gevolg hebben. U wordt aangeraden om de vermelde favoriete systeemvolume(s) op fouten te controleren. In VeraCrypt rechts-klikken op deze volumes en kies voor 'Repareer bestandssysteem').</string>
|
||||||
<string lang="nl" key="FILESYS_REPAIR_CONFIRM_BACKUP">Waarschuwing: Een beschadigd bestandssysteem repareren m.b.v. Microsoft ‘chkdsk’ kan verlies van bestanden in beschadigde gebieden tot gevolg hebben. Daarom wordt het aangeraden dat u eerst de bestanden uit het VeraCrypt volume kopieert naar een ander, intact, VeraCrypt volume.\n\nWilt u het bestandssysteem nu repareren?</string>
|
<string lang="nl" key="FILESYS_REPAIR_CONFIRM_BACKUP">Waarschuwing: Een beschadigd bestandssysteem repareren m.b.v. Microsoft ‘chkdsk’ kan verlies van bestanden in beschadigde gebieden tot gevolg hebben. Daarom wordt het aangeraden dat u eerst de bestanden uit het VeraCrypt volume kopieert naar een ander, intact, VeraCrypt volume.\n\nWilt u het bestandssysteem nu repareren?</string>
|
||||||
<string lang="en" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Volume '%s' has been mounted as read-only because write access was denied.\n\nPlease make sure the security permissions of the file container allow you to write to it (right-click the container and select Properties > Security).\n\nNote that, due to a Windows issue, you may see this warning even after setting the appropriate security permissions. This is not caused by a bug in VeraCrypt. A possible solution is to move your container to, e.g., your 'Documents' folder.\n\nIf you intend to keep your volume read-only, set the read-only attribute of the container (right-click the container and select Properties > Read-only), which will suppress this warning.</string>
|
<string lang="en" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Volume '%s' has been mounted as read-only because write access was denied.\n\nPlease make sure the security permissions of the file container allow you to write to it (right-click the container and select Properties > Security).\n\nNote that, due to a Windows issue, you may see this warning even after setting the appropriate security permissions. This is not caused by a bug in VeraCrypt. A possible solution is to move your container to, e.g., your 'Documents' folder.\n\nIf you intend to keep your volume read-only, set the read-only attribute of the container (right-click the container and select Properties > Read-only), which will suppress this warning.</string>
|
||||||
<string lang="nl" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Volume '%s' moest als read-only gekoppeld worden omdat schrijftoegang verboden werd.\n\nZorg ervoor dat geen ander programma (zoals antivirus software) bezig is met toegang tot de partitie/apparaat waarop het volume staat.</string>
|
<string lang="nl" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Volume '%s' moest als read-only gekoppeld worden omdat schrijftoegang verboden werd.\n\nZorg ervoor dat geen ander programma (zoals antivirus software) bezig is met toegang tot de partitie/apparaat waarop het volume staat.</string>
|
||||||
@@ -1308,10 +1308,10 @@
|
|||||||
<string lang="en" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Note that hardware-accelerated AES is disabled, which will affect benchmark results (worse performance).\n\nTo enable hardware acceleration, select 'Settings' > 'Performance' and enable the corresponding option.</string>
|
<string lang="en" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Note that hardware-accelerated AES is disabled, which will affect benchmark results (worse performance).\n\nTo enable hardware acceleration, select 'Settings' > 'Performance' and enable the corresponding option.</string>
|
||||||
<string lang="en" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">Note that the number of threads is currently limited, which will affect benchmark results (worse performance).\n\nTo utilize the full potential of the processor(s), select 'Settings' > 'Performance' and disable the corresponding option.</string>
|
<string lang="en" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">Note that the number of threads is currently limited, which will affect benchmark results (worse performance).\n\nTo utilize the full potential of the processor(s), select 'Settings' > 'Performance' and disable the corresponding option.</string>
|
||||||
<string lang="nl" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Wilt u dat VeraCrypt probeert de schrijfbeveiliging op de partitie/schijf uit te zetten?</string>
|
<string lang="nl" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Wilt u dat VeraCrypt probeert de schrijfbeveiliging op de partitie/schijf uit te zetten?</string>
|
||||||
<string lang="en" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">WARNING: This setting may degrade performance.\n\nAre you sure you want to use this setting?</string>
|
<string lang="nl" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">WAARSCHUWING: Deze instelling kan de performance verslechteren.\n\nWeet u zeker dat u deze instelling wilt gebruiken?</string>
|
||||||
<string lang="nl" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Waarschuwing: VeraCrypt volume auto-ontkoppeld</string>
|
<string lang="nl" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Waarschuwing: VeraCrypt volume auto-ontkoppeld</string>
|
||||||
<string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in VeraCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc.</string>
|
<string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in VeraCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc.</string>
|
||||||
<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
|
<string lang="nl" key="UNSUPPORTED_TRUECRYPT_FORMAT">Dit volume is met TrueCrypt %x.%x aangemaakt. VeraCrypt ondersteunt alleen TrueCrypt volumes gemaakt met TrueCrypt 6.x/7.x series</string>
|
||||||
<string lang="nl" key="TEST">Test</string>
|
<string lang="nl" key="TEST">Test</string>
|
||||||
<string lang="nl" key="KEYFILE">Sleutel</string>
|
<string lang="nl" key="KEYFILE">Sleutel</string>
|
||||||
<string lang="nl" key="VKEY_08">Backspace</string>
|
<string lang="nl" key="VKEY_08">Backspace</string>
|
||||||
@@ -1395,13 +1395,13 @@
|
|||||||
<string lang="nl" key="VOLUME_ID_NOT_FOUND">Geen volume met het opgegeven ID op het systeem gevonden</string>
|
<string lang="nl" key="VOLUME_ID_NOT_FOUND">Geen volume met het opgegeven ID op het systeem gevonden</string>
|
||||||
<string lang="nl" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Kopieer waarde naar het klembord...</string>
|
<string lang="nl" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Kopieer waarde naar het klembord...</string>
|
||||||
<control lang="nl" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Vraag niet om de PIM in het pre-boot authenticatie venster (PIM waarde is ongecodeerd opgeslagen op schijf)</control>
|
<control lang="nl" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Vraag niet om de PIM in het pre-boot authenticatie venster (PIM waarde is ongecodeerd opgeslagen op schijf)</control>
|
||||||
<string lang="nl" key="DISABLE_BOOT_LOADER_PIM_PROMPT">Waarschuwing: Houd er rekening mee dat wanneer je deze optie inschakelt, de PIM waarde ongecodeerd op schijf wordt opgeslagen.\n\nWeet je zeker dat je deze optie wilt inschakelen?</string>
|
<string lang="nl" key="DISABLE_BOOT_LOADER_PIM_PROMPT">Waarschuwing: Houd er rekening mee dat wanneer u deze optie inschakelt, de PIM waarde ongecodeerd op schijf wordt opgeslagen.\n\nWeet u zeker dat u deze optie wilt inschakelen?</string>
|
||||||
<string lang="nl" key="PIM_TOO_BIG">Persoonlijke iteraties multiplier (PIM) maximale waarde is 2147468.</string>
|
<string lang="nl" key="PIM_TOO_BIG">Persoonlijke iteraties multiplier (PIM) maximale waarde is 2147468.</string>
|
||||||
<control lang="nl" key="IDC_SKIP_RESCUE_VERIFICATION">Herstelschijf controle overslaan</control>
|
<control lang="nl" key="IDC_SKIP_RESCUE_VERIFICATION">Herstelschijf controle overslaan</control>
|
||||||
<control lang="nl" key="IDC_HIDE_WAITING_DIALOG">Geen wachtvenster tonen tijdens het uitvoeren van acties.</control>
|
<control lang="nl" key="IDC_HIDE_WAITING_DIALOG">Geen wachtvenster tonen tijdens het uitvoeren van acties.</control>
|
||||||
<control lang="en" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Do not request Hash algorithm in the pre-boot authentication screen</control>
|
<control lang="nl" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Gebruik geen hash algoritme in het pre-boot authenticatievenster</control>
|
||||||
<string lang="en" key="GOST89_HELP">The GOST block cipher, defined in the standard GOST 28147-89 under name Magma, is a Soviet and Russian government standard symmetric key block cipher.\n\nDeveloped in the 1970s, the standard had been marked "Top Secret" and then downgraded to "Secret" in 1990. It was a Soviet alternative to the United States standard algorithm, DES.</string>
|
<string lang="nl" key="GOST89_HELP">Het GOST blok cijfercodering, vastgelegd in de standaard "GOST 28147-89" onder de naam Magma, is een Sovjet en Russische overheidsstandaard symetrische blok cijfercodering.\n\nOntwikkeld in de 1970er jaren, de standaard was gekenmerkt als "Uiterst geheim" en in 1990 afgewaardeerd tot "geheim". Het was een Sovjet alternatief voor de Verenigde Staten standaard algoritme, DES.</string>
|
||||||
<string lang="en" key="KUZNYECHIK_HELP">Kuznyechik is a block cipher first published in 2015 and defined in the National Standard of the Russian Federation GOST R 34.12-2015 and also in RFC 7801. 256-bit key, 128-bit block. Mode of operation is XTS.</string>
|
<string lang="nl" key="KUZNYECHIK_HELP">Kuznyechik is een blok cijfercodering voor het eerst gepubliceerd in 2015 en vastgelegd in de "National Standard of the Russian Federation GOST R 34.12-2015" en ook in RFC 7801. 256-bit sleutel, 128-bit blok. Bewerkingsmodus is XTS.</string>
|
||||||
<string lang="nl" key="CAMELLIA_HELP">Gemeenschappelijk ontwikkeld door Mitsubishi Electric en NTT of Japan. Voor het eerst gepubliceerd in 2000. 256-bit sleutels, 128-bit blok. Modus voor bewerkingen is XTS. Het is goedgekeurd voor gebruik door de ISO/IEC, het Europese Gemeenschap's NESSIE project en het Japanse CRYPTREC project.</string>
|
<string lang="nl" key="CAMELLIA_HELP">Gemeenschappelijk ontwikkeld door Mitsubishi Electric en NTT of Japan. Voor het eerst gepubliceerd in 2000. 256-bit sleutels, 128-bit blok. Modus voor bewerkingen is XTS. Het is goedgekeurd voor gebruik door de ISO/IEC, het Europese Gemeenschap's NESSIE project en het Japanse CRYPTREC project.</string>
|
||||||
<string lang="nl" key="TIME">Tijd</string>
|
<string lang="nl" key="TIME">Tijd</string>
|
||||||
<string lang="nl" key="ITERATIONS">Iteraties</string>
|
<string lang="nl" key="ITERATIONS">Iteraties</string>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
|
<language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
|
<language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<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" />
|
<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" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="ru" name="Русский" en-name="Russian" version="1.0.0" translators="Dmitry Yerokhin" />
|
<language langid="ru" name="Русский" en-name="Russian" version="1.0.0" translators="Dmitry Yerokhin" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
@@ -1077,7 +1077,7 @@
|
|||||||
<string lang="ru" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt больше не поддерживает шифрование системного раздела/диска в Windows Vista без установленного пакета обновления (Service Pack). Прежде чем обновить VeraCrypt, установите Service Pack 1 (или новее) для Windows Vista.</string>
|
<string lang="ru" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt больше не поддерживает шифрование системного раздела/диска в Windows Vista без установленного пакета обновления (Service Pack). Прежде чем обновить VeraCrypt, установите Service Pack 1 (или новее) для Windows Vista.</string>
|
||||||
<string lang="ru" key="FEATURE_REQUIRES_INSTALLATION">Ошибка! Чтобы воспользоваться этой функцией, нужно, чтобы VeraCrypt был УСТАНОВЛЕН в компьютере (сейчас VeraCrypt работает в 'переносном' режиме).\n\nУстановите (инсталлируйте) VeraCrypt и повторите попытку.</string>
|
<string lang="ru" key="FEATURE_REQUIRES_INSTALLATION">Ошибка! Чтобы воспользоваться этой функцией, нужно, чтобы VeraCrypt был УСТАНОВЛЕН в компьютере (сейчас VeraCrypt работает в 'переносном' режиме).\n\nУстановите (инсталлируйте) VeraCrypt и повторите попытку.</string>
|
||||||
<string lang="ru" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">ВНИМАНИЕ: Похоже, Windows не установлена на диске, с которого она загружается. Это не поддерживается.\n\nВам следует продолжить, только если вы уверены, что Windows установлена на том же диске, с которого она загружается.\n\nПродолжить?</string>
|
<string lang="ru" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">ВНИМАНИЕ: Похоже, Windows не установлена на диске, с которого она загружается. Это не поддерживается.\n\nВам следует продолжить, только если вы уверены, что Windows установлена на том же диске, с которого она загружается.\n\nПродолжить?</string>
|
||||||
<string lang="en" key="GPT_BOOT_DRIVE_UNSUPPORTED">You are running a 32-bit Windows and your system drive has a GUID partition table (GPT). Currently, only Windows 64-bit is supported for GPT system encryption.</string>
|
<string lang="ru" key="GPT_BOOT_DRIVE_UNSUPPORTED">Вы используете 32-разрядную версию Windows, а системный диск имеет таблицу разделов GUID (GPT). В настоящее время системное шифрование на дисках GPT поддерживается только в 64-разрядных версиях Windows.</string>
|
||||||
<string lang="ru" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ОСТОРОЖНО: На системном диске уже установлен загрузчик VeraCrypt!\n\nВозможно, в вашем компьютере имеется другая уже зашифрованная система.\n\nВНИМАНИЕ: В СЛУЧАЕ ПРОДОЛЖЕНИЯ ШИФРОВАНИЯ ТЕКУЩЕЙ СИСТЕМЫ ЕСТЬ ВЕРОЯТНОСТЬ, ЧТО ДРУГИЕ СИСТЕМЫ НЕ СМОГУТ ЗАГРУЖАТЬСЯ, А ОТНОСЯЩИЕСЯ К НИМ ДАННЫЕ СТАНУТ НЕДОСТУПНЫМИ.\n\nВы действительно хотите продолжить?</string>
|
<string lang="ru" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ОСТОРОЖНО: На системном диске уже установлен загрузчик VeraCrypt!\n\nВозможно, в вашем компьютере имеется другая уже зашифрованная система.\n\nВНИМАНИЕ: В СЛУЧАЕ ПРОДОЛЖЕНИЯ ШИФРОВАНИЯ ТЕКУЩЕЙ СИСТЕМЫ ЕСТЬ ВЕРОЯТНОСТЬ, ЧТО ДРУГИЕ СИСТЕМЫ НЕ СМОГУТ ЗАГРУЖАТЬСЯ, А ОТНОСЯЩИЕСЯ К НИМ ДАННЫЕ СТАНУТ НЕДОСТУПНЫМИ.\n\nВы действительно хотите продолжить?</string>
|
||||||
<string lang="ru" key="SYS_LOADER_RESTORE_FAILED">Ошибка восстановления исходного загрузчика системы.\n\nИспользуйте диск восстановления VeraCrypt ('Repair Options' > 'Restore original system loader') или установочный диск Windows, чтобы заменить загрузчик VeraCrypt системным загрузчиком Windows.</string>
|
<string lang="ru" key="SYS_LOADER_RESTORE_FAILED">Ошибка восстановления исходного загрузчика системы.\n\nИспользуйте диск восстановления VeraCrypt ('Repair Options' > 'Restore original system loader') или установочный диск Windows, чтобы заменить загрузчик VeraCrypt системным загрузчиком Windows.</string>
|
||||||
<string lang="ru" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">Исходный системный загрузчик не будет сохранён на диске восстановления (возможная причина: нет файла с резервной копией).</string>
|
<string lang="ru" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">Исходный системный загрузчик не будет сохранён на диске восстановления (возможная причина: нет файла с резервной копией).</string>
|
||||||
@@ -1388,31 +1388,31 @@
|
|||||||
<string lang="ru" key="INIT_DLL">ОШИБКА: Не удалось загрузить системную библиотеку.</string>
|
<string lang="ru" key="INIT_DLL">ОШИБКА: Не удалось загрузить системную библиотеку.</string>
|
||||||
<string lang="ru" key="ERR_EXFAT_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома несовместим с выбранной файловой системой exFAT.</string>
|
<string lang="ru" key="ERR_EXFAT_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома несовместим с выбранной файловой системой exFAT.</string>
|
||||||
<control lang="ru" key="IDT_ENTROPY_BAR">Хаотично из перемещений мыши</control>
|
<control lang="ru" key="IDT_ENTROPY_BAR">Хаотично из перемещений мыши</control>
|
||||||
<control lang="en" key="IDT_VOLUME_ID">Volume ID:</control>
|
<control lang="ru" key="IDT_VOLUME_ID">ID тома:</control>
|
||||||
<string lang="en" key="VOLUME_ID">Volume ID</string>
|
<string lang="ru" key="VOLUME_ID">ID тома</string>
|
||||||
<control lang="en" key="IDC_FAVORITE_USE_VOLUME_ID">Use Volume ID to mount favorite</control>
|
<control lang="ru" key="IDC_FAVORITE_USE_VOLUME_ID">Применять ID тома для монтирования избранного</control>
|
||||||
<string lang="en" key="VOLUME_ID_INVALID">The Volume ID value is invalid</string>
|
<string lang="ru" key="VOLUME_ID_INVALID">Неверное значение ID тома</string>
|
||||||
<string lang="en" key="VOLUME_ID_NOT_FOUND">No Volume with the specified ID was found on the system</string>
|
<string lang="ru" key="VOLUME_ID_NOT_FOUND">В системе нет тома с указанным идентификатором (ID)</string>
|
||||||
<string lang="en" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Copy Value to Clipboard...</string>
|
<string lang="ru" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Скопировать значение в буфер обмена...</string>
|
||||||
<control lang="en" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Do not request PIM in the pre-boot authentication screen (PIM value is stored unencrypted on disk)</control>
|
<control lang="ru" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Не спрашивать PIM на экране дозагрузочной аутентификации (PIM хранится незашифрованным на диске)</control>
|
||||||
<string lang="en" key="DISABLE_BOOT_LOADER_PIM_PROMPT">WARNING: Please keep in mind that if you enable this option, the PIM value will be stored unencrypted on the disk.\n\nAre you sure you want to enable this option?</string>
|
<string lang="ru" key="DISABLE_BOOT_LOADER_PIM_PROMPT">ВНИМАНИЕ: Если включить эту опцию, то значение PIM будет храниться на диске в незашифрованном виде.\n\nВы действительно хотите включить эту опцию?</string>
|
||||||
<string lang="en" key="PIM_TOO_BIG">Personal Iterations Multiplier (PIM) maximum value is 2147468.</string>
|
<string lang="ru" key="PIM_TOO_BIG">Максимальное значение PIM (персонального умножителя итераций) равно 2147468.</string>
|
||||||
<control lang="en" key="IDC_SKIP_RESCUE_VERIFICATION">Skip Rescue Disk verification</control>
|
<control lang="ru" key="IDC_SKIP_RESCUE_VERIFICATION">Не проверять диск восстановления</control>
|
||||||
<control lang="en" key="IDC_HIDE_WAITING_DIALOG">Don't show wait message dialog when performing operations</control>
|
<control lang="ru" key="IDC_HIDE_WAITING_DIALOG">Не показывать окно ожидания во время операций</control>
|
||||||
<control lang="en" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Do not request Hash algorithm in the pre-boot authentication screen</control>
|
<control lang="ru" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Не спрашивать алгоритм хеширования на экране дозагрузочной аутентификации</control>
|
||||||
<string lang="en" key="GOST89_HELP">The GOST block cipher, defined in the standard GOST 28147-89 under name Magma, is a Soviet and Russian government standard symmetric key block cipher.\n\nDeveloped in the 1970s, the standard had been marked "Top Secret" and then downgraded to "Secret" in 1990. It was a Soviet alternative to the United States standard algorithm, DES.</string>
|
<string lang="ru" key="GOST89_HELP">Советский и российский государственный стандартный блочный шифр GOST с симметричным ключом, опубликованный в стандарте ГОСТ 28147-89 под названием "Магма".\nРазработан в 1970-х годах под грифом "Совершенно секретно", позже изменён на "Секретно". Советская альтернатива американскому алгоритму DES.</string>
|
||||||
<string lang="en" key="KUZNYECHIK_HELP">Kuznyechik is a block cipher first published in 2015 and defined in the National Standard of the Russian Federation GOST R 34.12-2015 and also in RFC 7801. 256-bit key, 128-bit block. Mode of operation is XTS.</string>
|
<string lang="ru" key="KUZNYECHIK_HELP">Блочный шифр "Кузнечик" (Kuznyechik) был впервые опубликован в 2015 году и утверждён в качестве российского стандарта GOST R 34.12-2015 и также RFC 7801. 256-бит ключ, 128-бит блок. Режим работы: XTS.</string>
|
||||||
<string lang="en" key="CAMELLIA_HELP">Jointly developed by Mitsubishi Electric and NTT of Japan. First published on 2000. 256-bit key, 128-bit block. Mode of operation is XTS. It has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project.</string>
|
<string lang="ru" key="CAMELLIA_HELP">Совместная разработка японских компаний Mitsubishi Electric и NTT. Впервые опубликован в 2000 г. 256-бит ключ, 128-бит блок. Режим работы: XTS. Одобрен для использования ISO/IEC, проектом Евросоюза NESSIE и японским проектом CRYPTREC.</string>
|
||||||
<string lang="en" key="TIME">Time</string>
|
<string lang="ru" key="TIME">Время</string>
|
||||||
<string lang="en" key="ITERATIONS">Iterations</string>
|
<string lang="ru" key="ITERATIONS">Итерации</string>
|
||||||
<string lang="en" key="PRE-BOOT">Pre-Boot</string>
|
<string lang="ru" key="PRE-BOOT">До загрузки</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_INFO">Before you can encrypt the partition, you must create a VeraCrypt Rescue Disk (VRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the VRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the VRD allows you to permanently decrypt the partition before Windows starts.\n\n- The VRD will contain a backup of the present EFI boot loader and will allow you to restore it if necessary.\n\nThe VeraCrypt Rescue Disk ZIP image will be created in the location specified below.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_INFO">Перед шифрованием раздела необходимо создать диск восстановления (VeraCrypt Rescue Disk, VRD), который служит следующим целям:\n\n- При повреждении загрузчика VeraCrypt, мастер-ключа или других критических данных диск VRD позволяет их восстановить (при этом всё равно понадобится ввести правильный пароль).\n\n- При повреждении и невозможности загрузки Windows диск VRD позволяет перманентно расшифровать раздел до старта Windows.\n\n- VRD будет содержать резервную копию текущего загрузчика EFI и позволит при необходимости его восстановить.\n\nZip-образ диска восстановления VeraCrypt будет создан в указанном ниже месте.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you need to extract it to a USB stick that is formatted as FAT/FAT32.\n\n%lsAfter you create the Rescue Disk, click Next to verify that it has been correctly created.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO">Zip-образ диска восстановления создан и сохранён в этом файле:\n%s\n\nСейчас вам нужно распаковать его на USB-флэшку, отформатированную в FAT/FAT32.\n\n%lsПосле создания диска восстановления нажмите "Далее", чтобы проверить, правильно ли он был создан.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">The Rescue Disk ZIP image has been created and stored in this file:\n%s\n\nNow you should either extract the image to a USB stick that is formatted as FAT/FAT32 or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NO_CHECK">Zip-образ диска восстановления создан и сохранён в этом файле:\n%s\n\nСейчас вам следует либо распаковать его на USB-флэшку, отформатированную в FAT/FAT32, либо перенести его в надёжное место для использования в будущем.\n\n%lsНажмите "Далее" для продолжения.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">IMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\n</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_EXTRACT_INFO_NOTE">ВАЖНО: Zip-файл нужно распаковать непосредственно в корневую папку USB-флэшки. Например, если флэшка имеет букву E:, то при распаковке Zip-файла на USB-флэшке должна быть создана папка E:\\EFI.\n\n</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk, please eject and reinsert the USB stick; then click Next to try again. If this does not help, please try another USB stick and/or another ZIP software.\n\nIf you have not extracted the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot be used, because it was created for a different master key. You need to extract the newly generated Rescue Disk ZIP image.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_CHECK_FAILED">Невозможно проверить правильность распаковки диска восстановления.\n\nЕсли вы уже распаковали диск восстановления, выньте и снова вставьте USB-флэшку; затем нажмите "Далее", чтобы повторить попытку. Если это не поможет, используйте другую флэшку и/или другую Zip-программу.\n\nЕсли вы ещё не распаковали диск восстановления, сделайте это и затем нажмите "Далее".\n\nЕсли вы пытались проверить диск восстановления VeraCrypt до запуска этого мастера, учтите, что такой диск нельзя использовать, поскольку он был создан с другим мастер-ключом. Вам нужно распаковать вновь созданный Zip-образ диска восстановления.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly extracted.\n\nIf you have extracted the Rescue Disk image to a USB stick, please eject it and reinsert it; then try again. If this does not help, please try other ZIP software and/or medium.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created for a different master key, password, salt, etc., please note that such Rescue Disk will always fail this verification. To create a new Rescue Disk fully compatible with your current configuration, select 'System' > 'Create Rescue Disk'.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CHECK_FAILED">Невозможно проверить правильность распаковки диска восстановления.\n\nЕсли вы уже распаковали диск восстановления на USB-флэшку, выньте её и снова вставьте; затем повторите попытку. Если это не поможет, используйте другую Zip-программу и/или носитель.\n\nЕсли вы пытались проверить диск восстановления VeraCrypt, созданный с другим мастер-ключом, паролем, солью и т.д., учтите, что проверка такого диска будет всегда выдавать ошибку. Чтобы создать новый диск восстановления, полностью совместимый с текущей конфигурацией, выберите 'Система' > 'Создать диск восстановления'.</string>
|
||||||
<string lang="en" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">The Rescue Disk image has been created and stored in this file:\n%s\n\nNow you need to extract the Rescue Disk image to a USB stick that is formatted as FAT/FAT32.\n\nIMPORTANT: Note that the zip file must be extracted directly to the root of the USB stick. For example, if the drive letter of the USB stick is E: then extracting the zip file should create a folder E:\\EFI on the USB stick.\n\nAfter you create the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly created.</string>
|
<string lang="ru" key="RESCUE_DISK_EFI_NON_WIZARD_CREATION">Образ диска восстановления создан и сохранён в этом файле:\n%s\n\nСейчас вам нужно распаковать образ диска на USB-флэшку, отформатированную в FAT/FAT32.\n\nВАЖНО: Zip-файл нужно распаковать непосредственно в корневую папку USB-флэшки. Например, если флэшка имеет букву E:, то при распаковке Zip-файла на USB-флэшке должна быть создана папка E:\\EFI.\n\nПосле создания диска восстановления выберите 'Система' > 'Проверить диск восстановления', чтобы убедиться, что диск создан правильно.</string>
|
||||||
</localization>
|
</localization>
|
||||||
<!-- XML Schema -->
|
<!-- XML Schema -->
|
||||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="sk" name="Slovenčina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
|
<language langid="sk" name="Slovenčina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="sl" name="Slovenščina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
|
<language langid="sl" name="Slovenščina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
|
<language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
|
<language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="uk" name="Українська" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
|
<language langid="uk" name="Українська" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
|
<language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
|
<language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li and Zhangjintao" />
|
<language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li and Zhangjintao" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="zh-hk" name="繁體中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
|
<language langid="zh-hk" name="繁體中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<VeraCrypt>
|
<VeraCrypt>
|
||||||
<localization prog-version="1.18">
|
<localization prog-version="1.19">
|
||||||
<!-- Languages -->
|
<!-- Languages -->
|
||||||
<language langid="zh-tw" name="繁體中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
|
<language langid="zh-tw" name="繁體中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -17,7 +17,7 @@
|
|||||||
#include "BootDefs.h"
|
#include "BootDefs.h"
|
||||||
|
|
||||||
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
|
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
|
||||||
#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0117
|
#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0118
|
||||||
|
|
||||||
#define TC_BOOT_LOADER_AREA_SIZE (TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS)
|
#define TC_BOOT_LOADER_AREA_SIZE (TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS)
|
||||||
|
|
||||||
|
|||||||
@@ -299,6 +299,12 @@ void ClearBiosKeystrokeBuffer ()
|
|||||||
mov cx, 32
|
mov cx, 32
|
||||||
cld
|
cld
|
||||||
rep stosb
|
rep stosb
|
||||||
|
|
||||||
|
// reset position pointers at 0x41A and 0x41C to the begining
|
||||||
|
// of keyboard buffer to avoid revealing password/PIM length
|
||||||
|
mov ax, 0x001e
|
||||||
|
mov es:[0x41a], ax
|
||||||
|
mov es:[0x41c], ax
|
||||||
pop es
|
pop es
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -581,7 +581,9 @@ err:
|
|||||||
crypto_close (BootCryptoInfo);
|
crypto_close (BootCryptoInfo);
|
||||||
BootCryptoInfo = NULL;
|
BootCryptoInfo = NULL;
|
||||||
}
|
}
|
||||||
|
#ifndef TC_WINDOWS_BOOT_RESCUE_DISK_MODE
|
||||||
|
PimValueOrHiddenVolumeStartUnitNo.LowPart = -1;
|
||||||
|
#endif
|
||||||
EncryptedVirtualPartition.Drive = TC_INVALID_BIOS_DRIVE;
|
EncryptedVirtualPartition.Drive = TC_INVALID_BIOS_DRIVE;
|
||||||
EraseMemory ((void *) TC_BOOT_LOADER_ARGS_OFFSET, sizeof (BootArguments));
|
EraseMemory ((void *) TC_BOOT_LOADER_ARGS_OFFSET, sizeof (BootArguments));
|
||||||
|
|
||||||
@@ -801,6 +803,7 @@ err:
|
|||||||
GetKeyboardChar();
|
GetKeyboardChar();
|
||||||
|
|
||||||
ret:
|
ret:
|
||||||
|
PimValueOrHiddenVolumeStartUnitNo.LowPart = -1;
|
||||||
EraseMemory ((void *) TC_BOOT_LOADER_ARGS_OFFSET, sizeof (BootArguments));
|
EraseMemory ((void *) TC_BOOT_LOADER_ARGS_OFFSET, sizeof (BootArguments));
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ $(LIBS)
|
|||||||
del $(PROJ).crf $(PROJ).crf2
|
del $(PROJ).crf $(PROJ).crf2
|
||||||
|
|
||||||
# Compress the Rescue Disk botloader for Cascades and Serpent since it is too big (size > 31232 bytes)
|
# Compress the Rescue Disk botloader for Cascades and Serpent since it is too big (size > 31232 bytes)
|
||||||
!if DEFINED(RESCUE_DISK) && (!DEFINED (SINGLE_CIPHER) || ("$(SINGLE_CIPHER)" == "SERPENT"))
|
!if DEFINED(RESCUE_DISK) && (!DEFINED (SINGLE_CIPHER) || ("$(SINGLE_CIPHER)" == "SERPENT") || ("$(SINGLE_CIPHER)" == "CAMELLIA"))
|
||||||
upx $(PROJ).$(TARGETEXT)
|
upx $(PROJ).$(TARGETEXT)
|
||||||
!endif
|
!endif
|
||||||
gzip.exe -c -n --best $(PROJ).$(TARGETEXT) >$(PROJ).$(TARGETEXT).gz
|
gzip.exe -c -n --best $(PROJ).$(TARGETEXT) >$(PROJ).$(TARGETEXT).gz
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<string>TRUE</string>
|
<string>TRUE</string>
|
||||||
|
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.18.13</string>
|
<string>1.19.4</string>
|
||||||
|
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>_VERSION_</string>
|
<string>_VERSION_</string>
|
||||||
|
|||||||
Executable
BIN
Binary file not shown.
@@ -124,6 +124,8 @@
|
|||||||
#define TC_IOCTL_LEGACY_GET_DRIVER_VERSION 466968
|
#define TC_IOCTL_LEGACY_GET_DRIVER_VERSION 466968
|
||||||
#define TC_IOCTL_LEGACY_GET_MOUNTED_VOLUMES 466948
|
#define TC_IOCTL_LEGACY_GET_MOUNTED_VOLUMES 466948
|
||||||
|
|
||||||
|
// Undocumented IOCTL sent by Windows 10 when handling EFS data on volumes
|
||||||
|
#define IOCTL_UNKNOWN_WINDOWS10_EFS_ACCESS 0x455610D8
|
||||||
|
|
||||||
/* Start of driver interface structures, the size of these structures may
|
/* Start of driver interface structures, the size of these structures may
|
||||||
change between versions; so make sure you first send DRIVER_VERSION to
|
change between versions; so make sure you first send DRIVER_VERSION to
|
||||||
|
|||||||
+265
-139
@@ -29,8 +29,7 @@
|
|||||||
#include "Registry.h"
|
#include "Registry.h"
|
||||||
#include "Volumes.h"
|
#include "Volumes.h"
|
||||||
#include "Xml.h"
|
#include "Xml.h"
|
||||||
#include "XZip.h"
|
#include "zip.h"
|
||||||
#include "XUnzip.h"
|
|
||||||
|
|
||||||
#ifdef VOLFORMAT
|
#ifdef VOLFORMAT
|
||||||
#include "Format/FormatCom.h"
|
#include "Format/FormatCom.h"
|
||||||
@@ -40,6 +39,22 @@
|
|||||||
|
|
||||||
#include <Strsafe.h>
|
#include <Strsafe.h>
|
||||||
|
|
||||||
|
bool ZipAdd (zip_t *z, const char* name, const unsigned char* pbData, DWORD cbData)
|
||||||
|
{
|
||||||
|
zip_error_t zerr;
|
||||||
|
zip_source_t* zin = zip_source_buffer_create (pbData, cbData, 0, &zerr);
|
||||||
|
if (!zin)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (-1 == zip_file_add (z, name, zin, 0))
|
||||||
|
{
|
||||||
|
zip_source_free (zin);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
namespace VeraCrypt
|
namespace VeraCrypt
|
||||||
{
|
{
|
||||||
#if !defined (SETUP)
|
#if !defined (SETUP)
|
||||||
@@ -2336,7 +2351,7 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EfiBoot::SaveFile(wchar_t* name, byte* data, DWORD size) {
|
void EfiBoot::SaveFile(const wchar_t* name, byte* data, DWORD size) {
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
path += name;
|
path += name;
|
||||||
File f(path, false, true);
|
File f(path, false, true);
|
||||||
@@ -2374,7 +2389,7 @@ namespace VeraCrypt
|
|||||||
throw_sys_if (!::CopyFileW (path.c_str(), targetPath.c_str(), FALSE));
|
throw_sys_if (!::CopyFileW (path.c_str(), targetPath.c_str(), FALSE));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::RenameFile(wchar_t* name, wchar_t* nameNew, BOOL bForce) {
|
BOOL EfiBoot::RenameFile(const wchar_t* name, wchar_t* nameNew, BOOL bForce) {
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
path += name;
|
path += name;
|
||||||
wstring pathNew = EfiBootPartPath;
|
wstring pathNew = EfiBootPartPath;
|
||||||
@@ -2382,13 +2397,13 @@ namespace VeraCrypt
|
|||||||
return MoveFileExW(path.c_str(), pathNew.c_str(), bForce? MOVEFILE_REPLACE_EXISTING : 0);
|
return MoveFileExW(path.c_str(), pathNew.c_str(), bForce? MOVEFILE_REPLACE_EXISTING : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::DelFile(wchar_t* name) {
|
BOOL EfiBoot::DelFile(const wchar_t* name) {
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
path += name;
|
path += name;
|
||||||
return DeleteFile(path.c_str());
|
return DeleteFile(path.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::MkDir(wchar_t* name, bool& bAlreadyExists) {
|
BOOL EfiBoot::MkDir(const wchar_t* name, bool& bAlreadyExists) {
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
path += name;
|
path += name;
|
||||||
bAlreadyExists = false;
|
bAlreadyExists = false;
|
||||||
@@ -2401,7 +2416,13 @@ namespace VeraCrypt
|
|||||||
return bRet;
|
return bRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::ReadConfig (wchar_t* name, EfiBootConf& conf)
|
BOOL EfiBoot::DelDir(const wchar_t* name) {
|
||||||
|
wstring path = EfiBootPartPath;
|
||||||
|
path += name;
|
||||||
|
return DeleteDirectory (path.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL EfiBoot::ReadConfig (const wchar_t* name, EfiBootConf& conf)
|
||||||
{
|
{
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
path += name;
|
path += name;
|
||||||
@@ -2409,7 +2430,7 @@ namespace VeraCrypt
|
|||||||
return conf.Load (path.c_str());
|
return conf.Load (path.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::UpdateConfig (wchar_t* name, int pim, int hashAlgo, HWND hwndDlg)
|
BOOL EfiBoot::UpdateConfig (const wchar_t* name, int pim, int hashAlgo, HWND hwndDlg)
|
||||||
{
|
{
|
||||||
BOOL bRet = FALSE;
|
BOOL bRet = FALSE;
|
||||||
EfiBootConf conf;
|
EfiBootConf conf;
|
||||||
@@ -2446,7 +2467,7 @@ namespace VeraCrypt
|
|||||||
return bRet;
|
return bRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL EfiBoot::WriteConfig (wchar_t* name, bool preserveUserConfig, int pim, int hashAlgo, const char* passPromptMsg, HWND hwndDlg)
|
BOOL EfiBoot::WriteConfig (const wchar_t* name, bool preserveUserConfig, int pim, int hashAlgo, const char* passPromptMsg, HWND hwndDlg)
|
||||||
{
|
{
|
||||||
EfiBootConf conf;
|
EfiBootConf conf;
|
||||||
wstring path = EfiBootPartPath;
|
wstring path = EfiBootPartPath;
|
||||||
@@ -2522,23 +2543,23 @@ namespace VeraCrypt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
DWORD sizeDcsBoot;
|
DWORD sizeDcsBoot;
|
||||||
byte *dcsBootImg = MapResource(L"BIN", IDR_EFI_DCSBOOT, &sizeDcsBoot);
|
byte *dcsBootImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBOOT : IDR_EFI_DCSBOOT32, &sizeDcsBoot);
|
||||||
if (!dcsBootImg)
|
if (!dcsBootImg)
|
||||||
throw ErrorException(L"Out of resource DcsBoot", SRC_POS);
|
throw ErrorException(L"Out of resource DcsBoot", SRC_POS);
|
||||||
DWORD sizeDcsInt;
|
DWORD sizeDcsInt;
|
||||||
byte *dcsIntImg = MapResource(L"BIN", IDR_EFI_DCSINT, &sizeDcsInt);
|
byte *dcsIntImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINT: IDR_EFI_DCSINT32, &sizeDcsInt);
|
||||||
if (!dcsIntImg)
|
if (!dcsIntImg)
|
||||||
throw ErrorException(L"Out of resource DcsInt", SRC_POS);
|
throw ErrorException(L"Out of resource DcsInt", SRC_POS);
|
||||||
DWORD sizeDcsCfg;
|
DWORD sizeDcsCfg;
|
||||||
byte *dcsCfgImg = MapResource(L"BIN", IDR_EFI_DCSCFG, &sizeDcsCfg);
|
byte *dcsCfgImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSCFG: IDR_EFI_DCSCFG32, &sizeDcsCfg);
|
||||||
if (!dcsCfgImg)
|
if (!dcsCfgImg)
|
||||||
throw ErrorException(L"Out of resource DcsCfg", SRC_POS);
|
throw ErrorException(L"Out of resource DcsCfg", SRC_POS);
|
||||||
DWORD sizeLegacySpeaker;
|
DWORD sizeLegacySpeaker;
|
||||||
byte *LegacySpeakerImg = MapResource(L"BIN", IDR_EFI_LEGACYSPEAKER, &sizeLegacySpeaker);
|
byte *LegacySpeakerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_LEGACYSPEAKER: IDR_EFI_LEGACYSPEAKER32, &sizeLegacySpeaker);
|
||||||
if (!LegacySpeakerImg)
|
if (!LegacySpeakerImg)
|
||||||
throw ErrorException(L"Out of resource LegacySpeaker", SRC_POS);
|
throw ErrorException(L"Out of resource LegacySpeaker", SRC_POS);
|
||||||
DWORD sizeBootMenuLocker;
|
DWORD sizeBootMenuLocker;
|
||||||
byte *BootMenuLockerImg = MapResource(L"BIN", IDR_EFI_DCSBML, &sizeBootMenuLocker);
|
byte *BootMenuLockerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBML: IDR_EFI_DCSBML32, &sizeBootMenuLocker);
|
||||||
if (!BootMenuLockerImg)
|
if (!BootMenuLockerImg)
|
||||||
throw ErrorException(L"Out of resource DcsBml", SRC_POS);
|
throw ErrorException(L"Out of resource DcsBml", SRC_POS);
|
||||||
|
|
||||||
@@ -2552,7 +2573,7 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
EfiBootInst.MkDir(L"\\EFI\\VeraCrypt", bAlreadyExist);
|
EfiBootInst.MkDir(L"\\EFI\\VeraCrypt", bAlreadyExist);
|
||||||
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsBoot.efi", dcsBootImg, sizeDcsBoot);
|
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsBoot.efi", dcsBootImg, sizeDcsBoot);
|
||||||
EfiBootInst.SaveFile(L"\\EFI\\Boot\\bootx64.efi", dcsBootImg, sizeDcsBoot);
|
EfiBootInst.SaveFile(Is64BitOs()? L"\\EFI\\Boot\\bootx64.efi": L"\\EFI\\Boot\\bootia32.efi", dcsBootImg, sizeDcsBoot);
|
||||||
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsInt.dcs", dcsIntImg, sizeDcsInt);
|
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsInt.dcs", dcsIntImg, sizeDcsInt);
|
||||||
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsCfg.dcs", dcsCfgImg, sizeDcsCfg);
|
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\DcsCfg.dcs", dcsCfgImg, sizeDcsCfg);
|
||||||
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker);
|
EfiBootInst.SaveFile(L"\\EFI\\VeraCrypt\\LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker);
|
||||||
@@ -2566,7 +2587,10 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
// move the original bootloader backup from old location (if it exists) to new location
|
// move the original bootloader backup from old location (if it exists) to new location
|
||||||
// we don't force the move operation if the new location already exists
|
// we don't force the move operation if the new location already exists
|
||||||
EfiBootInst.RenameFile (L"\\EFI\\Boot\\original_bootx64_vc_backup.efi", L"\\EFI\\Boot\\original_bootx64.vc_backup", FALSE);
|
if (Is64BitOs())
|
||||||
|
EfiBootInst.RenameFile (L"\\EFI\\Boot\\original_bootx64_vc_backup.efi", L"\\EFI\\Boot\\original_bootx64.vc_backup", FALSE);
|
||||||
|
else
|
||||||
|
EfiBootInst.RenameFile (L"\\EFI\\Boot\\original_bootia32_vc_backup.efi", L"\\EFI\\Boot\\original_bootia32.vc_backup", FALSE);
|
||||||
|
|
||||||
// Clean beta9
|
// Clean beta9
|
||||||
EfiBootInst.DelFile(L"\\DcsBoot.efi");
|
EfiBootInst.DelFile(L"\\DcsBoot.efi");
|
||||||
@@ -2715,49 +2739,56 @@ namespace VeraCrypt
|
|||||||
{
|
{
|
||||||
// create EFI disk structure
|
// create EFI disk structure
|
||||||
DWORD sizeDcsBoot;
|
DWORD sizeDcsBoot;
|
||||||
byte *dcsBootImg = MapResource(L"BIN", IDR_EFI_DCSBOOT, &sizeDcsBoot);
|
byte *dcsBootImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBOOT: IDR_EFI_DCSBOOT32, &sizeDcsBoot);
|
||||||
if (!dcsBootImg)
|
if (!dcsBootImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
DWORD sizeDcsInt;
|
DWORD sizeDcsInt;
|
||||||
byte *dcsIntImg = MapResource(L"BIN", IDR_EFI_DCSINT, &sizeDcsInt);
|
byte *dcsIntImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSINT: IDR_EFI_DCSINT32, &sizeDcsInt);
|
||||||
if (!dcsIntImg)
|
if (!dcsIntImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
DWORD sizeDcsCfg;
|
DWORD sizeDcsCfg;
|
||||||
byte *dcsCfgImg = MapResource(L"BIN", IDR_EFI_DCSCFG, &sizeDcsCfg);
|
byte *dcsCfgImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSCFG: IDR_EFI_DCSCFG32, &sizeDcsCfg);
|
||||||
if (!dcsCfgImg)
|
if (!dcsCfgImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
DWORD sizeLegacySpeaker;
|
DWORD sizeLegacySpeaker;
|
||||||
byte *LegacySpeakerImg = MapResource(L"BIN", IDR_EFI_LEGACYSPEAKER, &sizeLegacySpeaker);
|
byte *LegacySpeakerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_LEGACYSPEAKER: IDR_EFI_LEGACYSPEAKER32, &sizeLegacySpeaker);
|
||||||
if (!LegacySpeakerImg)
|
if (!LegacySpeakerImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
DWORD sizeBootMenuLocker;
|
DWORD sizeBootMenuLocker;
|
||||||
byte *BootMenuLockerImg = MapResource(L"BIN", IDR_EFI_DCSBML, &sizeBootMenuLocker);
|
byte *BootMenuLockerImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSBML: IDR_EFI_DCSBML32, &sizeBootMenuLocker);
|
||||||
if (!BootMenuLockerImg)
|
if (!BootMenuLockerImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
DWORD sizeDcsRescue;
|
DWORD sizeDcsRescue;
|
||||||
byte *DcsRescueImg = MapResource(L"BIN", IDR_EFI_DCSRE, &sizeDcsRescue);
|
byte *DcsRescueImg = MapResource(L"BIN", Is64BitOs()? IDR_EFI_DCSRE: IDR_EFI_DCSRE32, &sizeDcsRescue);
|
||||||
if (!DcsRescueImg)
|
if (!DcsRescueImg)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
unsigned int maxRescueZipSize = 4 * 1024 * 1024;
|
char szTmpPath[MAX_PATH + 1], szTmpFilePath[MAX_PATH + 1];
|
||||||
ZRESULT res;
|
if (!GetTempPathA (MAX_PATH, szTmpPath))
|
||||||
HZIP hz = CreateZip (0, maxRescueZipSize, ZIP_MEMORY);
|
throw SystemException (SRC_POS);
|
||||||
if (!hz)
|
if (!GetTempFileNameA (szTmpPath, "_vrd", 0, szTmpFilePath))
|
||||||
|
throw SystemException (SRC_POS);
|
||||||
|
|
||||||
|
finally_do_arg (char*, szTmpFilePath, { DeleteFileA (finally_arg);});
|
||||||
|
|
||||||
|
int ierr;
|
||||||
|
zip_t* z = zip_open (szTmpFilePath, ZIP_CREATE | ZIP_TRUNCATE | ZIP_CHECKCONS, &ierr);
|
||||||
|
if (!z)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
finally_do_arg (HZIP, hz, { CloseZip (finally_arg); });
|
finally_do_arg (zip_t**, &z, { if (*finally_arg) zip_discard (*finally_arg);});
|
||||||
|
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/Boot/bootx64.efi", DcsRescueImg, sizeDcsRescue, ZIP_MEMORY))
|
if (!ZipAdd (z, Is64BitOs()? "EFI/Boot/bootx64.efi": "EFI/Boot/bootia32.efi", DcsRescueImg, sizeDcsRescue))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (ZR_OK !=ZipAdd (hz, L"EFI/VeraCrypt/DcsBml.dcs", BootMenuLockerImg, sizeBootMenuLocker, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/DcsBml.dcs", BootMenuLockerImg, sizeBootMenuLocker))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/DcsBoot.efi", dcsBootImg, sizeDcsBoot, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/DcsBoot.efi", dcsBootImg, sizeDcsBoot))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/DcsCfg.dcs", dcsCfgImg, sizeDcsCfg, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/DcsCfg.dcs", dcsCfgImg, sizeDcsCfg))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/DcsInt.dcs", dcsIntImg, sizeDcsInt, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/DcsInt.dcs", dcsIntImg, sizeDcsInt))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/LegacySpeaker.dcs", LegacySpeakerImg, sizeLegacySpeaker))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
Buffer volHeader(TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
|
Buffer volHeader(TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
|
||||||
@@ -2778,20 +2809,21 @@ namespace VeraCrypt
|
|||||||
bootDevice.Read (volHeader.Ptr (), TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
|
bootDevice.Read (volHeader.Ptr (), TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/svh_bak", volHeader.Ptr (), TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/svh_bak", volHeader.Ptr (), TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
// Original system loader
|
// Original system loader
|
||||||
res = ZR_WRITE;
|
Buffer fileBuf (0);
|
||||||
|
bool bLoadAdded = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DWORD fileSize = 0;
|
DWORD fileSize = 0;
|
||||||
File sysBakFile (GetSystemLoaderBackupPath(), true);
|
File sysBakFile (GetSystemLoaderBackupPath(), true);
|
||||||
sysBakFile.CheckOpened (SRC_POS);
|
sysBakFile.CheckOpened (SRC_POS);
|
||||||
sysBakFile.GetFileSize(fileSize);
|
sysBakFile.GetFileSize(fileSize);
|
||||||
Buffer fileBuf ((DWORD) fileSize);
|
fileBuf.Resize ((DWORD) fileSize);
|
||||||
DWORD sizeLoader = sysBakFile.Read (fileBuf.Ptr (), fileSize);
|
DWORD sizeLoader = sysBakFile.Read (fileBuf.Ptr (), fileSize);
|
||||||
res = ZipAdd (hz, L"EFI/Boot/original_bootx64.vc_backup", fileBuf.Ptr (), sizeLoader, ZIP_MEMORY);
|
bLoadAdded = ZipAdd (z, Is64BitOs()? "EFI/Boot/original_bootx64.vc_backup": "EFI/Boot/original_bootia32.vc_backup", fileBuf.Ptr (), sizeLoader);
|
||||||
}
|
}
|
||||||
catch (Exception &e)
|
catch (Exception &e)
|
||||||
{
|
{
|
||||||
@@ -2799,10 +2831,11 @@ namespace VeraCrypt
|
|||||||
Warning ("SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK", ParentWindow);
|
Warning ("SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK", ParentWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res != ZR_OK)
|
if (!bLoadAdded)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
EfiBootConf conf;
|
EfiBootConf conf;
|
||||||
|
Buffer propBuf (0);
|
||||||
wstring dcsPropFileName = GetTempPathString() + L"_dcsproprescue";
|
wstring dcsPropFileName = GetTempPathString() + L"_dcsproprescue";
|
||||||
finally_do_arg (wstring, dcsPropFileName, { DeleteFileW (finally_arg.c_str()); });
|
finally_do_arg (wstring, dcsPropFileName, { DeleteFileW (finally_arg.c_str()); });
|
||||||
if (conf.Save(dcsPropFileName.c_str(), ParentWindow))
|
if (conf.Save(dcsPropFileName.c_str(), ParentWindow))
|
||||||
@@ -2811,24 +2844,40 @@ namespace VeraCrypt
|
|||||||
File propFile (dcsPropFileName, true, false);
|
File propFile (dcsPropFileName, true, false);
|
||||||
propFile.CheckOpened (SRC_POS);
|
propFile.CheckOpened (SRC_POS);
|
||||||
propFile.GetFileSize(fileSize);
|
propFile.GetFileSize(fileSize);
|
||||||
Buffer propBuf (fileSize);
|
propBuf.Resize (fileSize);
|
||||||
DWORD sizeDcsProp = propFile.Read (propBuf.Ptr (), fileSize);
|
DWORD sizeDcsProp = propFile.Read (propBuf.Ptr (), fileSize);
|
||||||
|
|
||||||
if (ZR_OK != ZipAdd (hz, L"EFI/VeraCrypt/DcsProp", propBuf.Ptr (), sizeDcsProp, ZIP_MEMORY))
|
if (!ZipAdd (z, "EFI/VeraCrypt/DcsProp", propBuf.Ptr (), sizeDcsProp))
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
void* pZipContent = NULL;
|
// flush the zip content to the temporary file
|
||||||
unsigned long ulZipSize = 0;
|
if (zip_close (z) < 0)
|
||||||
if (ZR_OK != ZipGetMemory (hz, &pZipContent, &ulZipSize))
|
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
|
z = NULL;
|
||||||
|
|
||||||
|
// read the zip data from the temporary file
|
||||||
|
FILE* ftmpFile = fopen (szTmpFilePath, "rb");
|
||||||
|
if (!ftmpFile)
|
||||||
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
|
finally_do_arg (FILE*, ftmpFile, { fclose (finally_arg); });
|
||||||
|
|
||||||
|
unsigned long ulZipSize = (unsigned long) _filelength (_fileno (ftmpFile));
|
||||||
RescueZipData = new byte[ulZipSize];
|
RescueZipData = new byte[ulZipSize];
|
||||||
if (!RescueZipData)
|
if (!RescueZipData)
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
memcpy (RescueZipData, pZipContent, ulZipSize);
|
|
||||||
|
if (ulZipSize != fread (RescueZipData, 1, ulZipSize, ftmpFile))
|
||||||
|
{
|
||||||
|
delete [] RescueZipData;
|
||||||
|
RescueZipData = NULL;
|
||||||
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
}
|
||||||
|
|
||||||
RescueZipSize = ulZipSize;
|
RescueZipSize = ulZipSize;
|
||||||
|
|
||||||
if (!isoImagePath.empty())
|
if (!isoImagePath.empty())
|
||||||
@@ -2989,7 +3038,7 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
if (bIsGPT)
|
if (bIsGPT)
|
||||||
{
|
{
|
||||||
const wchar_t* efiFiles[] = {
|
const wchar_t* efi64Files[] = {
|
||||||
L"EFI/Boot/bootx64.efi",
|
L"EFI/Boot/bootx64.efi",
|
||||||
L"EFI/VeraCrypt/DcsBml.dcs",
|
L"EFI/VeraCrypt/DcsBml.dcs",
|
||||||
L"EFI/VeraCrypt/DcsBoot.efi",
|
L"EFI/VeraCrypt/DcsBoot.efi",
|
||||||
@@ -2999,12 +3048,30 @@ namespace VeraCrypt
|
|||||||
L"EFI/VeraCrypt/svh_bak",
|
L"EFI/VeraCrypt/svh_bak",
|
||||||
L"EFI/Boot/original_bootx64.vc_backup"
|
L"EFI/Boot/original_bootx64.vc_backup"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const wchar_t* efi32Files[] = {
|
||||||
|
L"EFI/Boot/bootia32.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsBml.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsBoot.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsCfg.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsInt.dcs",
|
||||||
|
L"EFI/VeraCrypt/LegacySpeaker.dcs",
|
||||||
|
L"EFI/VeraCrypt/svh_bak",
|
||||||
|
L"EFI/Boot/original_bootia32.vc_backup"
|
||||||
|
};
|
||||||
|
|
||||||
ZRESULT res;
|
zip_error_t zerr;
|
||||||
HZIP hz = OpenZip(RescueZipData, RescueZipSize, ZIP_MEMORY);
|
zip_source_t* zsrc = zip_source_buffer_create (RescueZipData, RescueZipSize, 0, &zerr);
|
||||||
if (!hz)
|
if (!zsrc)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
finally_do_arg (HZIP, hz, { CloseZip (finally_arg); });
|
zip_t* z = zip_open_from_source (zsrc, ZIP_CHECKCONS | ZIP_RDONLY, &zerr);
|
||||||
|
if (!z)
|
||||||
|
{
|
||||||
|
zip_source_free (zsrc);
|
||||||
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
}
|
||||||
|
|
||||||
|
finally_do_arg (zip_t*, z, { zip_close (finally_arg); });
|
||||||
|
|
||||||
for (WCHAR drive = L'Z'; drive >= L'C'; --drive)
|
for (WCHAR drive = L'Z'; drive >= L'C'; --drive)
|
||||||
{
|
{
|
||||||
@@ -3019,42 +3086,50 @@ namespace VeraCrypt
|
|||||||
if (GetVolumeInformationW (rootPath, NULL, 0, NULL, NULL, NULL, szNameBuffer, ARRAYSIZE(szNameBuffer))
|
if (GetVolumeInformationW (rootPath, NULL, 0, NULL, NULL, NULL, szNameBuffer, ARRAYSIZE(szNameBuffer))
|
||||||
&& !wcsncmp (szNameBuffer, L"FAT", 3))
|
&& !wcsncmp (szNameBuffer, L"FAT", 3))
|
||||||
{
|
{
|
||||||
int index, i;
|
int i;
|
||||||
ZIPENTRYW ze;
|
const wchar_t** efiFiles = Is64BitOs()? efi64Files: efi32Files;
|
||||||
for (i = 0; i < ARRAYSIZE(efiFiles); i++)
|
int efiFilesSize = Is64BitOs()? ARRAYSIZE(efi64Files): ARRAYSIZE(efi32Files);
|
||||||
|
for (i = 0; i < efiFilesSize; i++)
|
||||||
{
|
{
|
||||||
bool bMatch = false;
|
bool bMatch = false;
|
||||||
res = FindZipItemW (hz, efiFiles[i], true, &index, &ze);
|
zip_int64_t index = zip_name_locate (z, WideToUtf8String (efiFiles[i]).c_str(), ZIP_FL_NOCASE);
|
||||||
if ((res == ZR_OK) && (index >= 0))
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
// check that the file exists on the disk and that it has the same content
|
zip_stat_t stat;
|
||||||
StringCbCopyW (szNameBuffer, sizeof (szNameBuffer), rootPath);
|
if ((0 == zip_stat_index (z, index, ZIP_FL_NOCASE, &stat)) && (stat.valid & ZIP_STAT_SIZE))
|
||||||
StringCbCatW (szNameBuffer, sizeof (szNameBuffer), efiFiles[i]);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
DWORD dwSize = 0;
|
// check that the file exists on the disk and that it has the same content
|
||||||
File diskFile (szNameBuffer, true);
|
StringCbCopyW (szNameBuffer, sizeof (szNameBuffer), rootPath);
|
||||||
diskFile.CheckOpened (SRC_POS);
|
StringCbCatW (szNameBuffer, sizeof (szNameBuffer), efiFiles[i]);
|
||||||
diskFile.GetFileSize (dwSize);
|
|
||||||
if (dwSize == (DWORD) ze.unc_size)
|
try
|
||||||
{
|
{
|
||||||
Buffer fileBuf (dwSize);
|
DWORD dwSize = 0;
|
||||||
if (dwSize == diskFile.Read (fileBuf.Ptr (), dwSize))
|
File diskFile (szNameBuffer, true);
|
||||||
|
diskFile.CheckOpened (SRC_POS);
|
||||||
|
diskFile.GetFileSize (dwSize);
|
||||||
|
if (dwSize == (DWORD) stat.size)
|
||||||
{
|
{
|
||||||
Buffer efiBuf (dwSize);
|
Buffer fileBuf (dwSize);
|
||||||
res = UnzipItem (hz, ze.index, efiBuf.Ptr (), dwSize, ZIP_MEMORY);
|
if (dwSize == diskFile.Read (fileBuf.Ptr (), dwSize))
|
||||||
if (res == ZR_OK)
|
|
||||||
{
|
{
|
||||||
bMatch = (memcmp (efiBuf.Ptr(), fileBuf.Ptr(), dwSize) == 0);
|
Buffer efiBuf (dwSize);
|
||||||
|
zip_file_t* zf = zip_fopen_index (z, index, 0);
|
||||||
|
if (zf)
|
||||||
|
{
|
||||||
|
if (0 < zip_fread (zf, efiBuf.Ptr (), stat.size))
|
||||||
|
{
|
||||||
|
bMatch = (memcmp (efiBuf.Ptr(), fileBuf.Ptr(), dwSize) == 0);
|
||||||
|
}
|
||||||
|
zip_fclose (zf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3066,7 +3141,7 @@ namespace VeraCrypt
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == ARRAYSIZE(efiFiles))
|
if (i == efiFilesSize)
|
||||||
{
|
{
|
||||||
// All entries processed
|
// All entries processed
|
||||||
return true;
|
return true;
|
||||||
@@ -3129,70 +3204,112 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
if (dwSize == rescueFile.Read (rescueData.Ptr (), dwSize))
|
if (dwSize == rescueFile.Read (rescueData.Ptr (), dwSize))
|
||||||
{
|
{
|
||||||
ZRESULT res;
|
zip_error_t zerr;
|
||||||
HZIP hzFile = OpenZip(rescueData.Ptr (), dwSize, ZIP_MEMORY);
|
zip_source_t* zsrc = zip_source_buffer_create (rescueData.Ptr (), dwSize, 0, &zerr);
|
||||||
if (hzFile)
|
if (!zsrc)
|
||||||
|
return false;
|
||||||
|
zip_t* zFile = zip_open_from_source (zsrc, ZIP_CHECKCONS | ZIP_RDONLY, &zerr);
|
||||||
|
if (!zFile)
|
||||||
{
|
{
|
||||||
finally_do_arg (HZIP, hzFile, { CloseZip (finally_arg); });
|
zip_source_free (zsrc);
|
||||||
HZIP hzMem = OpenZip(RescueZipData, RescueZipSize, ZIP_MEMORY);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
if (hzMem)
|
}
|
||||||
{
|
|
||||||
finally_do_arg (HZIP, hzMem, { CloseZip (finally_arg); });
|
|
||||||
const wchar_t* efiFiles[] = {
|
|
||||||
L"EFI/Boot/bootx64.efi",
|
|
||||||
L"EFI/VeraCrypt/DcsBml.dcs",
|
|
||||||
L"EFI/VeraCrypt/DcsBoot.efi",
|
|
||||||
L"EFI/VeraCrypt/DcsCfg.dcs",
|
|
||||||
L"EFI/VeraCrypt/DcsInt.dcs",
|
|
||||||
L"EFI/VeraCrypt/LegacySpeaker.dcs",
|
|
||||||
L"EFI/VeraCrypt/svh_bak",
|
|
||||||
L"EFI/Boot/original_bootx64.vc_backup"
|
|
||||||
};
|
|
||||||
|
|
||||||
int index, i;
|
finally_do_arg (zip_t*, zFile, { zip_close (finally_arg); });
|
||||||
ZIPENTRYW zeFile, zeMem;
|
|
||||||
for (i = 0; i < ARRAYSIZE(efiFiles); i++)
|
zsrc = zip_source_buffer_create (RescueZipData, RescueZipSize, 0, &zerr);
|
||||||
|
if (!zsrc)
|
||||||
|
return false;
|
||||||
|
zip_t* zMem = zip_open_from_source (zsrc, ZIP_CHECKCONS | ZIP_RDONLY, &zerr);
|
||||||
|
if (!zMem)
|
||||||
|
{
|
||||||
|
zip_source_free (zsrc);
|
||||||
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
}
|
||||||
|
|
||||||
|
finally_do_arg (zip_t*, zMem, { zip_close (finally_arg); });
|
||||||
|
|
||||||
|
const wchar_t* efi64Files[] = {
|
||||||
|
L"EFI/Boot/bootx64.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsBml.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsBoot.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsCfg.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsInt.dcs",
|
||||||
|
L"EFI/VeraCrypt/LegacySpeaker.dcs",
|
||||||
|
L"EFI/VeraCrypt/svh_bak",
|
||||||
|
L"EFI/Boot/original_bootx64.vc_backup"
|
||||||
|
};
|
||||||
|
|
||||||
|
const wchar_t* efi32Files[] = {
|
||||||
|
L"EFI/Boot/bootia32.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsBml.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsBoot.efi",
|
||||||
|
L"EFI/VeraCrypt/DcsCfg.dcs",
|
||||||
|
L"EFI/VeraCrypt/DcsInt.dcs",
|
||||||
|
L"EFI/VeraCrypt/LegacySpeaker.dcs",
|
||||||
|
L"EFI/VeraCrypt/svh_bak",
|
||||||
|
L"EFI/Boot/original_bootia32.vc_backup"
|
||||||
|
};
|
||||||
|
|
||||||
|
int i;
|
||||||
|
zip_stat_t statMem, statFile;
|
||||||
|
zip_int64_t indexMem, indexFile;
|
||||||
|
const wchar_t** efiFiles = Is64BitOs()? efi64Files: efi32Files;
|
||||||
|
int efiFilesSize = Is64BitOs()? ARRAYSIZE(efi64Files): ARRAYSIZE(efi32Files);
|
||||||
|
for (i = 0; i < efiFilesSize; i++)
|
||||||
|
{
|
||||||
|
bool bMatch = false;
|
||||||
|
indexMem = zip_name_locate (zMem, WideToUtf8String (efiFiles[i]).c_str(), ZIP_FL_NOCASE);
|
||||||
|
if (indexMem >= 0)
|
||||||
|
{
|
||||||
|
if ((0 == zip_stat_index (zMem, indexMem, ZIP_FL_NOCASE, &statMem)) && (statMem.valid & ZIP_STAT_SIZE))
|
||||||
{
|
{
|
||||||
bool bMatch = false;
|
indexFile = zip_name_locate (zFile, WideToUtf8String (efiFiles[i]).c_str(), ZIP_FL_NOCASE);
|
||||||
res = FindZipItemW (hzMem, efiFiles[i], true, &index, &zeMem);
|
if (indexFile >= 0)
|
||||||
if ((res == ZR_OK) && (index >= 0))
|
|
||||||
{
|
{
|
||||||
res = FindZipItemW (hzFile, efiFiles[i], true, &index, &zeFile);
|
if ((0 == zip_stat_index (zFile, indexFile, ZIP_FL_NOCASE, &statFile)) && (statFile.valid & ZIP_STAT_SIZE))
|
||||||
if ((res == ZR_OK) && (index >= 0) && (zeMem.unc_size == zeFile.unc_size))
|
|
||||||
{
|
{
|
||||||
Buffer fileBuf (zeFile.unc_size);
|
if (statMem.size == statFile.size)
|
||||||
Buffer memBuf (zeFile.unc_size);
|
|
||||||
|
|
||||||
res = UnzipItem (hzMem, zeMem.index, memBuf.Ptr (), zeMem.unc_size, ZIP_MEMORY);
|
|
||||||
if (res == ZR_OK)
|
|
||||||
{
|
{
|
||||||
res = UnzipItem (hzFile, zeFile.index, fileBuf.Ptr (), zeFile.unc_size, ZIP_MEMORY);
|
Buffer fileBuf ((size_t) statFile.size);
|
||||||
if (res == ZR_OK)
|
Buffer memBuf ((size_t) statMem.size);
|
||||||
|
|
||||||
|
zip_file_t* zfMem = zip_fopen_index (zMem, indexMem, 0);
|
||||||
|
if (zfMem)
|
||||||
{
|
{
|
||||||
bMatch = (memcmp (memBuf.Ptr (), fileBuf.Ptr (), zeMem.unc_size) == 0);
|
if (0 < zip_fread (zfMem, memBuf.Ptr (), statMem.size))
|
||||||
|
{
|
||||||
|
zip_file_t* zfFile = zip_fopen_index (zFile, indexFile, 0);
|
||||||
|
if (zfFile)
|
||||||
|
{
|
||||||
|
if (0 < zip_fread (zfFile, fileBuf.Ptr (), statFile.size))
|
||||||
|
{
|
||||||
|
bMatch = (memcmp (memBuf.Ptr(), fileBuf.Ptr(), (size_t) statFile.size) == 0);
|
||||||
|
}
|
||||||
|
zip_fclose (zfFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zip_fclose (zfMem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// entry not found in our internal Rescue ZIP image. Skip it.
|
|
||||||
bMatch = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bMatch)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == ARRAYSIZE(efiFiles))
|
|
||||||
{
|
|
||||||
// All entries processed
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// entry not found in our internal Rescue ZIP image. Skip it.
|
||||||
|
bMatch = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bMatch)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == efiFilesSize)
|
||||||
|
{
|
||||||
|
// All entries processed
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3319,11 +3436,11 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
EfiBootInst.MountBootPartition(0);
|
EfiBootInst.MountBootPartition(0);
|
||||||
|
|
||||||
EfiBootInst.GetFileSize(L"\\EFI\\Boot\\bootx64.efi", loaderSize);
|
EfiBootInst.GetFileSize(Is64BitOs()? L"\\EFI\\Boot\\bootx64.efi" : L"\\EFI\\Boot\\bootia32.efi", loaderSize);
|
||||||
|
|
||||||
std::vector<byte> bootLoaderBuf ((size_t) loaderSize);
|
std::vector<byte> bootLoaderBuf ((size_t) loaderSize);
|
||||||
|
|
||||||
EfiBootInst.ReadFile(L"\\EFI\\Boot\\bootx64.efi", &bootLoaderBuf[0], (DWORD) loaderSize);
|
EfiBootInst.ReadFile(Is64BitOs()? L"\\EFI\\Boot\\bootx64.efi": L"\\EFI\\Boot\\bootia32.efi", &bootLoaderBuf[0], (DWORD) loaderSize);
|
||||||
|
|
||||||
// Prevent VeraCrypt EFI loader from being backed up
|
// Prevent VeraCrypt EFI loader from being backed up
|
||||||
for (size_t i = 0; i < (size_t) loaderSize - (wcslen (VC_EFI_BOOTLOADER_NAME) * 2); ++i)
|
for (size_t i = 0; i < (size_t) loaderSize - (wcslen (VC_EFI_BOOTLOADER_NAME) * 2); ++i)
|
||||||
@@ -3336,8 +3453,16 @@ namespace VeraCrypt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootx64.efi", GetSystemLoaderBackupPath().c_str());
|
if (Is64BitOs())
|
||||||
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootx64.efi", L"\\EFI\\Boot\\original_bootx64.vc_backup");
|
{
|
||||||
|
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootx64.efi", GetSystemLoaderBackupPath().c_str());
|
||||||
|
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootx64.efi", L"\\EFI\\Boot\\original_bootx64.vc_backup");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootia32.efi", GetSystemLoaderBackupPath().c_str());
|
||||||
|
EfiBootInst.CopyFile(L"\\EFI\\Boot\\bootia32.efi", L"\\EFI\\Boot\\original_bootia32.vc_backup");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3386,7 +3511,10 @@ namespace VeraCrypt
|
|||||||
EfiBootInst.MountBootPartition(0);
|
EfiBootInst.MountBootPartition(0);
|
||||||
|
|
||||||
EfiBootInst.DeleteStartExec();
|
EfiBootInst.DeleteStartExec();
|
||||||
EfiBootInst.RenameFile(L"\\EFI\\Boot\\original_bootx64.vc_backup", L"\\EFI\\Boot\\bootx64.efi", TRUE);
|
if (Is64BitOs())
|
||||||
|
EfiBootInst.RenameFile(L"\\EFI\\Boot\\original_bootx64.vc_backup", L"\\EFI\\Boot\\bootx64.efi", TRUE);
|
||||||
|
else
|
||||||
|
EfiBootInst.RenameFile(L"\\EFI\\Boot\\original_bootia32.vc_backup", L"\\EFI\\Boot\\bootia32.efi", TRUE);
|
||||||
|
|
||||||
EfiBootInst.DelFile(L"\\DcsBoot.efi");
|
EfiBootInst.DelFile(L"\\DcsBoot.efi");
|
||||||
EfiBootInst.DelFile(L"\\DcsInt.efi");
|
EfiBootInst.DelFile(L"\\DcsInt.efi");
|
||||||
@@ -3401,6 +3529,7 @@ namespace VeraCrypt
|
|||||||
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBml.dcs");
|
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBml.dcs");
|
||||||
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBoot");
|
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsBoot");
|
||||||
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsProp");
|
EfiBootInst.DelFile(L"\\EFI\\VeraCrypt\\DcsProp");
|
||||||
|
EfiBootInst.DelDir (L"\\EFI\\VeraCrypt");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3864,9 +3993,6 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
SystemDriveConfiguration config = GetSystemDriveConfiguration ();
|
SystemDriveConfiguration config = GetSystemDriveConfiguration ();
|
||||||
|
|
||||||
if (config.SystemPartition.IsGPT && !Is64BitOs())
|
|
||||||
throw ErrorException ("GPT_BOOT_DRIVE_UNSUPPORTED", SRC_POS);
|
|
||||||
|
|
||||||
if (SystemDriveIsDynamic())
|
if (SystemDriveIsDynamic())
|
||||||
throw ErrorException ("SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK", SRC_POS);
|
throw ErrorException ("SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK", SRC_POS);
|
||||||
|
|
||||||
@@ -4486,8 +4612,8 @@ namespace VeraCrypt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BootEncryption::RestartComputer (void)
|
bool BootEncryption::RestartComputer (BOOL bShutdown)
|
||||||
{
|
{
|
||||||
return (::RestartComputer() != FALSE);
|
return (::RestartComputer(bShutdown) != FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,19 @@ namespace VeraCrypt
|
|||||||
~Buffer () { delete[] DataPtr; }
|
~Buffer () { delete[] DataPtr; }
|
||||||
byte *Ptr () const { return DataPtr; }
|
byte *Ptr () const { return DataPtr; }
|
||||||
size_t Size () const { return DataSize; }
|
size_t Size () const { return DataSize; }
|
||||||
|
void Resize (size_t newSize)
|
||||||
|
{
|
||||||
|
if (newSize > DataSize)
|
||||||
|
{
|
||||||
|
byte *tmp = new byte[newSize];
|
||||||
|
if (!tmp)
|
||||||
|
throw bad_alloc();
|
||||||
|
memcpy (tmp, DataPtr, DataSize);
|
||||||
|
delete [] DataPtr;
|
||||||
|
DataPtr = tmp;
|
||||||
|
}
|
||||||
|
DataSize = newSize;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
byte *DataPtr;
|
byte *DataPtr;
|
||||||
@@ -183,17 +196,18 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
void DeleteStartExec(uint16 statrtOrderNum = 0xDC5B, wchar_t* type = NULL);
|
void DeleteStartExec(uint16 statrtOrderNum = 0xDC5B, wchar_t* type = NULL);
|
||||||
void SetStartExec(wstring description, wstring execPath, uint16 statrtOrderNum = 0xDC5B, wchar_t* type = NULL, uint32 attr = 1);
|
void SetStartExec(wstring description, wstring execPath, uint16 statrtOrderNum = 0xDC5B, wchar_t* type = NULL, uint32 attr = 1);
|
||||||
void SaveFile(wchar_t* name, byte* data, DWORD size);
|
void SaveFile(const wchar_t* name, byte* data, DWORD size);
|
||||||
void GetFileSize(const wchar_t* name, unsigned __int64& size);
|
void GetFileSize(const wchar_t* name, unsigned __int64& size);
|
||||||
void ReadFile(const wchar_t* name, byte* data, DWORD size);
|
void ReadFile(const wchar_t* name, byte* data, DWORD size);
|
||||||
void CopyFile(const wchar_t* name, const wchar_t* targetName);
|
void CopyFile(const wchar_t* name, const wchar_t* targetName);
|
||||||
|
|
||||||
BOOL RenameFile(wchar_t* name, wchar_t* nameNew, BOOL bForce);
|
BOOL RenameFile(const wchar_t* name, wchar_t* nameNew, BOOL bForce);
|
||||||
BOOL DelFile(wchar_t* name);
|
BOOL DelFile(const wchar_t* name);
|
||||||
BOOL MkDir(wchar_t* name, bool& bAlreadyExists);
|
BOOL MkDir(const wchar_t* name, bool& bAlreadyExists);
|
||||||
BOOL ReadConfig (wchar_t* name, EfiBootConf& conf);
|
BOOL ReadConfig (const wchar_t* name, EfiBootConf& conf);
|
||||||
BOOL UpdateConfig (wchar_t* name, int pim, int hashAlgo, HWND hwndDlg);
|
BOOL UpdateConfig (const wchar_t* name, int pim, int hashAlgo, HWND hwndDlg);
|
||||||
BOOL WriteConfig (wchar_t* name, bool preserveUserConfig, int pim, int hashAlgo, const char* passPromptMsg, HWND hwndDlg);
|
BOOL WriteConfig (const wchar_t* name, bool preserveUserConfig, int pim, int hashAlgo, const char* passPromptMsg, HWND hwndDlg);
|
||||||
|
BOOL DelDir(const wchar_t* name);
|
||||||
|
|
||||||
PSTORAGE_DEVICE_NUMBER GetStorageDeviceNumber () { return &sdn;}
|
PSTORAGE_DEVICE_NUMBER GetStorageDeviceNumber () { return &sdn;}
|
||||||
|
|
||||||
@@ -263,7 +277,7 @@ namespace VeraCrypt
|
|||||||
void RegisterSystemFavoritesService (BOOL registerService, BOOL noFileHandling);
|
void RegisterSystemFavoritesService (BOOL registerService, BOOL noFileHandling);
|
||||||
void UpdateSystemFavoritesService ();
|
void UpdateSystemFavoritesService ();
|
||||||
void RenameDeprecatedSystemLoaderBackup ();
|
void RenameDeprecatedSystemLoaderBackup ();
|
||||||
bool RestartComputer (void);
|
bool RestartComputer (BOOL bShutdown = FALSE);
|
||||||
void InitialSecurityChecksForHiddenOS ();
|
void InitialSecurityChecksForHiddenOS ();
|
||||||
void RestrictPagingFilesToSystemPartition ();
|
void RestrictPagingFilesToSystemPartition ();
|
||||||
void SetDriverConfigurationFlag (uint32 flag, bool state);
|
void SetDriverConfigurationFlag (uint32 flag, bool state);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ BEGIN
|
|||||||
PUSHBUTTON "Add &Token Files...",IDC_TOKEN_FILES_ADD,151,132,65,14
|
PUSHBUTTON "Add &Token Files...",IDC_TOKEN_FILES_ADD,151,132,65,14
|
||||||
PUSHBUTTON "&Remove",IDC_KEYREMOVE,227,132,61,14
|
PUSHBUTTON "&Remove",IDC_KEYREMOVE,227,132,61,14
|
||||||
PUSHBUTTON "Remove &All",IDC_KEYREMOVEALL,299,132,61,14
|
PUSHBUTTON "Remove &All",IDC_KEYREMOVEALL,299,132,61,14
|
||||||
CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,232,105,11
|
CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,232,100,11
|
||||||
PUSHBUTTON "&Generate Random Keyfile...",IDC_GENERATE_KEYFILE,237,230,123,14
|
PUSHBUTTON "&Generate Random Keyfile...",IDC_GENERATE_KEYFILE,237,230,123,14
|
||||||
DEFPUSHBUTTON "OK",IDOK,290,8,70,14
|
DEFPUSHBUTTON "OK",IDOK,290,8,70,14
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,290,25,70,14
|
PUSHBUTTON "Cancel",IDCANCEL,290,25,70,14
|
||||||
@@ -117,7 +117,7 @@ BEGIN
|
|||||||
LTEXT "WARNING: If you lose a keyfile or if any bit of its first 1024 kilobytes changes, it will be impossible to mount volumes that use the keyfile!",IDT_KEYFILE_WARNING,290,44,69,85,0,WS_EX_TRANSPARENT
|
LTEXT "WARNING: If you lose a keyfile or if any bit of its first 1024 kilobytes changes, it will be impossible to mount volumes that use the keyfile!",IDT_KEYFILE_WARNING,290,44,69,85,0,WS_EX_TRANSPARENT
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,154,361,1,WS_EX_STATICEDGE
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,154,361,1,WS_EX_STATICEDGE
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,209,361,1,WS_EX_STATICEDGE
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,2,209,361,1,WS_EX_STATICEDGE
|
||||||
LTEXT "More information on keyfiles",IDC_LINK_KEYFILES_INFO,119,233,113,10,SS_NOTIFY
|
LTEXT "More information on keyfiles",IDC_LINK_KEYFILES_INFO,111,233,124,10,SS_NOTIFY
|
||||||
CONTROL "Try first to mount with an empty password",IDC_KEYFILES_TRY_EMPTY_PASSWORD,
|
CONTROL "Try first to mount with an empty password",IDC_KEYFILES_TRY_EMPTY_PASSWORD,
|
||||||
"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,7,217,310,10
|
"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,7,217,310,10
|
||||||
END
|
END
|
||||||
@@ -538,6 +538,12 @@ IDR_EFI_DCSCFG BIN "..\\Boot\\EFI\\DcsCfg.efi"
|
|||||||
IDR_EFI_LEGACYSPEAKER BIN "..\\Boot\\EFI\\LegacySpeaker.efi"
|
IDR_EFI_LEGACYSPEAKER BIN "..\\Boot\\EFI\\LegacySpeaker.efi"
|
||||||
IDR_EFI_DCSBML BIN "..\\Boot\\EFI\\DcsBml.efi"
|
IDR_EFI_DCSBML BIN "..\\Boot\\EFI\\DcsBml.efi"
|
||||||
IDR_EFI_DCSRE BIN "..\\Boot\\EFI\\DcsRe.efi"
|
IDR_EFI_DCSRE BIN "..\\Boot\\EFI\\DcsRe.efi"
|
||||||
|
IDR_EFI_DCSBOOT32 BIN "..\\Boot\\EFI\\DcsBoot32.efi"
|
||||||
|
IDR_EFI_DCSINT32 BIN "..\\Boot\\EFI\\DcsInt32.efi"
|
||||||
|
IDR_EFI_DCSCFG32 BIN "..\\Boot\\EFI\\DcsCfg32.efi"
|
||||||
|
IDR_EFI_LEGACYSPEAKER32 BIN "..\\Boot\\EFI\\LegacySpeaker32.efi"
|
||||||
|
IDR_EFI_DCSBML32 BIN "..\\Boot\\EFI\\DcsBml32.efi"
|
||||||
|
IDR_EFI_DCSRE32 BIN "..\\Boot\\EFI\\DcsRe32.efi"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
|||||||
+38
-4
@@ -79,7 +79,7 @@ static EncryptionAlgorithm EncryptionAlgorithms[] =
|
|||||||
{ { TWOFISH, 0 }, { XTS, 0 }, 1, 1 },
|
{ { TWOFISH, 0 }, { XTS, 0 }, 1, 1 },
|
||||||
{ { CAMELLIA, 0 }, { XTS, 0 }, 1, 1 },
|
{ { CAMELLIA, 0 }, { XTS, 0 }, 1, 1 },
|
||||||
#if defined(CIPHER_GOST89)
|
#if defined(CIPHER_GOST89)
|
||||||
{ { GOST89, 0 }, { XTS, 0 }, 0, 1 },
|
{ { GOST89, 0 }, { XTS, 0 }, 0, 0 },
|
||||||
#endif // defined(CIPHER_GOST89)
|
#endif // defined(CIPHER_GOST89)
|
||||||
{ { KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 },
|
{ { KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 },
|
||||||
{ { TWOFISH, AES, 0 }, { XTS, 0 }, 1, 1 },
|
{ { TWOFISH, AES, 0 }, { XTS, 0 }, 1, 1 },
|
||||||
@@ -158,7 +158,7 @@ int CipherInit (int cipher, unsigned char *key, unsigned __int8 *ks)
|
|||||||
#if !defined(TC_WINDOWS_BOOT)
|
#if !defined(TC_WINDOWS_BOOT)
|
||||||
#if defined(CIPHER_GOST89)
|
#if defined(CIPHER_GOST89)
|
||||||
case GOST89:
|
case GOST89:
|
||||||
gost_set_key(key, (gost_kds*)ks);
|
gost_set_key(key, (gost_kds*)ks, 1);
|
||||||
break;
|
break;
|
||||||
#endif // && defined(CIPHER_GOST89)
|
#endif // && defined(CIPHER_GOST89)
|
||||||
case KUZNYECHIK:
|
case KUZNYECHIK:
|
||||||
@@ -232,6 +232,21 @@ void EncipherBlocks (int cipher, void *dataPtr, void *ks, size_t blockCount)
|
|||||||
KeRestoreFloatingPointState (&floatingPointState);
|
KeRestoreFloatingPointState (&floatingPointState);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && !defined (_UEFI)
|
||||||
|
else if (cipher == SERPENT
|
||||||
|
&& (blockCount >= 4)
|
||||||
|
&& HasSSE2()
|
||||||
|
#if defined (TC_WINDOWS_DRIVER) && !defined (_WIN64)
|
||||||
|
&& NT_SUCCESS (KeSaveFloatingPointState (&floatingPointState))
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
serpent_encrypt_blocks (data, data, blockCount, ks);
|
||||||
|
#if defined (TC_WINDOWS_DRIVER) && !defined (_WIN64)
|
||||||
|
KeRestoreFloatingPointState (&floatingPointState);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else if (cipher == GOST89) {
|
else if (cipher == GOST89) {
|
||||||
gost_encrypt(data, data, ks, (int)blockCount);
|
gost_encrypt(data, data, ks, (int)blockCount);
|
||||||
}
|
}
|
||||||
@@ -312,6 +327,21 @@ void DecipherBlocks (int cipher, void *dataPtr, void *ks, size_t blockCount)
|
|||||||
KeRestoreFloatingPointState (&floatingPointState);
|
KeRestoreFloatingPointState (&floatingPointState);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && !defined (_UEFI)
|
||||||
|
else if (cipher == SERPENT
|
||||||
|
&& (blockCount >= 4)
|
||||||
|
&& HasSSE2()
|
||||||
|
#if defined (TC_WINDOWS_DRIVER) && !defined (_WIN64)
|
||||||
|
&& NT_SUCCESS (KeSaveFloatingPointState (&floatingPointState))
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
serpent_decrypt_blocks (data, data, blockCount, ks);
|
||||||
|
#if defined (TC_WINDOWS_DRIVER) && !defined (_WIN64)
|
||||||
|
KeRestoreFloatingPointState (&floatingPointState);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else if (cipher == GOST89) {
|
else if (cipher == GOST89) {
|
||||||
gost_decrypt(data, data, ks, (int)blockCount);
|
gost_decrypt(data, data, ks, (int)blockCount);
|
||||||
}
|
}
|
||||||
@@ -383,8 +413,12 @@ int CipherGetKeyScheduleSize (int cipherId)
|
|||||||
|
|
||||||
BOOL CipherSupportsIntraDataUnitParallelization (int cipher)
|
BOOL CipherSupportsIntraDataUnitParallelization (int cipher)
|
||||||
{
|
{
|
||||||
return cipher == AES && IsAesHwCpuSupported() ||
|
return (cipher == AES && IsAesHwCpuSupported())
|
||||||
cipher == GOST89;
|
|| (cipher == GOST89)
|
||||||
|
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE && !defined (_UEFI)
|
||||||
|
|| (cipher == SERPENT && HasSSE2())
|
||||||
|
#endif
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+5
-1
@@ -193,7 +193,11 @@ typedef struct
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "Aes_hw_cpu.h"
|
#include "Aes_hw_cpu.h"
|
||||||
#include "Serpent.h"
|
#if !defined (TC_WINDOWS_BOOT) && !defined (_UEFI)
|
||||||
|
# include "SerpentFast.h"
|
||||||
|
#else
|
||||||
|
# include "Serpent.h"
|
||||||
|
#endif
|
||||||
#include "Twofish.h"
|
#include "Twofish.h"
|
||||||
|
|
||||||
#include "Rmd160.h"
|
#include "Rmd160.h"
|
||||||
|
|||||||
+28
-6
@@ -1214,10 +1214,11 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam
|
|||||||
L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. 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-2000 Paul Le Roux. All Rights Reserved.\r\n"
|
||||||
L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n"
|
L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n"
|
||||||
L"Copyright \xA9 2002-2004 Mark Adler. All Rights Reserved.\r\n"
|
L"Copyright \xA9 1995-2013 Jean-loup Gailly and Mark Adler.\r\n"
|
||||||
L"Copyright \xA9 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov.\r\n"
|
L"Copyright \xA9 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov.\r\n"
|
||||||
L"Copyright \xA9 1990-2002 Info-ZIP. All rights reserved.\r\n"
|
L"Copyright \xA9 Dieter Baron and Thomas Klausner.\r\n"
|
||||||
L"Copyright \xA9 2013, Alexey Degtyarev. All rights reserved.\r\n\r\n"
|
L"Copyright \xA9 2013, Alexey Degtyarev. All rights reserved.\r\n"
|
||||||
|
L"Copyright \xA9 1999-2013,2014,2015,2016 Jack Lloyd. All rights reserved.\r\n\r\n"
|
||||||
|
|
||||||
L"This software as a whole:\r\n"
|
L"This software as a whole:\r\n"
|
||||||
L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\r\n\r\n"
|
L"Copyright \xA9 2013-2016 IDRIX. All rights reserved.\r\n\r\n"
|
||||||
@@ -10017,7 +10018,7 @@ BOOL EnableWow64FsRedirection (BOOL enable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL RestartComputer (void)
|
BOOL RestartComputer (BOOL bShutdown)
|
||||||
{
|
{
|
||||||
TOKEN_PRIVILEGES tokenPrivil;
|
TOKEN_PRIVILEGES tokenPrivil;
|
||||||
HANDLE hTkn;
|
HANDLE hTkn;
|
||||||
@@ -10038,7 +10039,7 @@ BOOL RestartComputer (void)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ExitWindowsEx (EWX_REBOOT,
|
if (!ExitWindowsEx (bShutdown? EWX_POWEROFF: EWX_REBOOT,
|
||||||
SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED))
|
SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED))
|
||||||
{
|
{
|
||||||
CloseHandle(hTkn);
|
CloseHandle(hTkn);
|
||||||
@@ -12202,4 +12203,25 @@ BOOL RaisePrivileges(void)
|
|||||||
SetLastError (dwLastError);
|
SetLastError (dwLastError);
|
||||||
|
|
||||||
return bRet;
|
return bRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL DeleteDirectory (const wchar_t* szDirName)
|
||||||
|
{
|
||||||
|
BOOL bStatus = RemoveDirectory (szDirName);
|
||||||
|
if (!bStatus)
|
||||||
|
{
|
||||||
|
/* force removal of the non empty directory */
|
||||||
|
wchar_t szOpPath[TC_MAX_PATH + 1] = {0};
|
||||||
|
SHFILEOPSTRUCTW op;
|
||||||
|
|
||||||
|
StringCchCopyW(szOpPath, ARRAYSIZE(szOpPath)-1, szDirName);
|
||||||
|
ZeroMemory(&op, sizeof(op));
|
||||||
|
op.wFunc = FO_DELETE;
|
||||||
|
op.pFrom = szOpPath;
|
||||||
|
op.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR;
|
||||||
|
|
||||||
|
if ((0 == SHFileOperation(&op)) && (!op.fAnyOperationsAborted))
|
||||||
|
bStatus = TRUE;
|
||||||
|
}
|
||||||
|
return bStatus;
|
||||||
|
}
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ BOOL Is64BitOs ();
|
|||||||
BOOL IsServerOS ();
|
BOOL IsServerOS ();
|
||||||
BOOL IsHiddenOSRunning (void);
|
BOOL IsHiddenOSRunning (void);
|
||||||
BOOL EnableWow64FsRedirection (BOOL enable);
|
BOOL EnableWow64FsRedirection (BOOL enable);
|
||||||
BOOL RestartComputer (void);
|
BOOL RestartComputer (BOOL bShutdown);
|
||||||
void Applink (char *dest, BOOL bSendOS, char *extraOutput);
|
void Applink (char *dest, BOOL bSendOS, char *extraOutput);
|
||||||
wchar_t *RelativePath2Absolute (wchar_t *szFileName);
|
wchar_t *RelativePath2Absolute (wchar_t *szFileName);
|
||||||
void HandleDriveNotReadyError (HWND hwnd);
|
void HandleDriveNotReadyError (HWND hwnd);
|
||||||
@@ -513,6 +513,7 @@ BOOL CopyTextToClipboard (const wchar_t* txtValue);
|
|||||||
BOOL LaunchElevatedProcess (HWND hwndDlg, const wchar_t* szModPath, const wchar_t* args);
|
BOOL LaunchElevatedProcess (HWND hwndDlg, const wchar_t* szModPath, const wchar_t* args);
|
||||||
BOOL GetFreeDriveLetter(WCHAR* pCh);
|
BOOL GetFreeDriveLetter(WCHAR* pCh);
|
||||||
BOOL RaisePrivileges(void);
|
BOOL RaisePrivileges(void);
|
||||||
|
BOOL DeleteDirectory (const wchar_t* szDirName);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -568,7 +568,7 @@ begin_format:
|
|||||||
{
|
{
|
||||||
BOOL bUpdateBackup = FALSE;
|
BOOL bUpdateBackup = FALSE;
|
||||||
|
|
||||||
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, dataAreaSize, FALSE, FALSE, FALSE);
|
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, dataAreaSize, FALSE, FALSE);
|
||||||
|
|
||||||
if (nStatus != ERR_SUCCESS)
|
if (nStatus != ERR_SUCCESS)
|
||||||
goto error;
|
goto error;
|
||||||
|
|||||||
+39
-12
@@ -519,6 +519,11 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
|||||||
LoadKeyList (hwndDlg, param->FirstKeyFile);
|
LoadKeyList (hwndDlg, param->FirstKeyFile);
|
||||||
|
|
||||||
kf = (KeyFile *) malloc (sizeof (KeyFile));
|
kf = (KeyFile *) malloc (sizeof (KeyFile));
|
||||||
|
if (!kf)
|
||||||
|
{
|
||||||
|
Warning ("ERR_MEM_ALLOC", hwndDlg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
|
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
|
||||||
|
|
||||||
@@ -528,7 +533,8 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free (kf);
|
if (kf)
|
||||||
|
free (kf);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -536,16 +542,22 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
|||||||
if (lw == IDC_ADD_KEYFILE_PATH)
|
if (lw == IDC_ADD_KEYFILE_PATH)
|
||||||
{
|
{
|
||||||
KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile));
|
KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile));
|
||||||
|
if (kf)
|
||||||
if (BrowseDirectories (hwndDlg,"SELECT_KEYFILE_PATH", kf->FileName))
|
{
|
||||||
{
|
if (BrowseDirectories (hwndDlg,"SELECT_KEYFILE_PATH", kf->FileName))
|
||||||
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
|
{
|
||||||
LoadKeyList (hwndDlg, param->FirstKeyFile);
|
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
|
||||||
}
|
LoadKeyList (hwndDlg, param->FirstKeyFile);
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
free (kf);
|
{
|
||||||
}
|
free (kf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Warning ("ERR_MEM_ALLOC", hwndDlg);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,13 +728,19 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
|
|||||||
{
|
{
|
||||||
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
|
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
|
||||||
kf = (KeyFile *) malloc (sizeof (KeyFile));
|
kf = (KeyFile *) malloc (sizeof (KeyFile));
|
||||||
|
if (!kf)
|
||||||
|
{
|
||||||
|
Warning ("ERR_MEM_ALLOC", hwndDlg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
|
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
|
||||||
|
|
||||||
param->EnableKeyFiles = TRUE;
|
param->EnableKeyFiles = TRUE;
|
||||||
status = TRUE;
|
status = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
free (kf);
|
if (kf)
|
||||||
|
free (kf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -743,6 +761,10 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
|
|||||||
free (kf);
|
free (kf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Warning ("ERR_MEM_ALLOC", hwndDlg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -762,6 +784,11 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
|
|||||||
param->EnableKeyFiles = TRUE;
|
param->EnableKeyFiles = TRUE;
|
||||||
status = TRUE;
|
status = TRUE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Warning ("ERR_MEM_ALLOC", hwndDlg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -440,7 +440,7 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5,
|
|||||||
PCRYPTO_INFO dummyInfo = NULL;
|
PCRYPTO_INFO dummyInfo = NULL;
|
||||||
LARGE_INTEGER hiddenOffset;
|
LARGE_INTEGER hiddenOffset;
|
||||||
|
|
||||||
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, cryptoInfo->VolumeSize.Value, !backupHeader, backupHeader, FALSE);
|
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, cryptoInfo->VolumeSize.Value, !backupHeader, backupHeader);
|
||||||
if (nStatus != ERR_SUCCESS)
|
if (nStatus != ERR_SUCCESS)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
|||||||
+52
-52
@@ -61,8 +61,6 @@ typedef struct hmac_sha256_ctx_struct
|
|||||||
|
|
||||||
void hmac_sha256_internal
|
void hmac_sha256_internal
|
||||||
(
|
(
|
||||||
char *k, /* secret key. It's ensured to be always <= 32 bytes */
|
|
||||||
int lk, /* length of the key in bytes */
|
|
||||||
char *d, /* input data. d pointer is guaranteed to be at least 32-bytes long */
|
char *d, /* input data. d pointer is guaranteed to be at least 32-bytes long */
|
||||||
int ld, /* length of input data in bytes */
|
int ld, /* length of input data in bytes */
|
||||||
hmac_sha256_ctx* hmac /* HMAC-SHA256 context which holds temporary variables */
|
hmac_sha256_ctx* hmac /* HMAC-SHA256 context which holds temporary variables */
|
||||||
@@ -140,14 +138,14 @@ void hmac_sha256
|
|||||||
|
|
||||||
sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, ctx);
|
sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, ctx);
|
||||||
|
|
||||||
hmac_sha256_internal(k, lk, d, ld, &hmac);
|
hmac_sha256_internal(d, ld, &hmac);
|
||||||
/* Prevent leaks */
|
/* Prevent leaks */
|
||||||
burn(&hmac, sizeof(hmac));
|
burn(&hmac, sizeof(hmac));
|
||||||
burn(key, sizeof(key));
|
burn(key, sizeof(key));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, uint32 iterations, int b, hmac_sha256_ctx* hmac)
|
static void derive_u_sha256 (char *salt, int salt_len, uint32 iterations, int b, hmac_sha256_ctx* hmac)
|
||||||
{
|
{
|
||||||
char* k = hmac->k;
|
char* k = hmac->k;
|
||||||
char* u = hmac->u;
|
char* u = hmac->u;
|
||||||
@@ -173,16 +171,22 @@ static void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, u
|
|||||||
memcpy (k, salt, salt_len); /* salt */
|
memcpy (k, salt, salt_len); /* salt */
|
||||||
|
|
||||||
/* big-endian block number */
|
/* big-endian block number */
|
||||||
|
#ifdef TC_WINDOWS_BOOT
|
||||||
|
/* specific case of 16-bit bootloader: b is a 16-bit integer that is always < 256 */
|
||||||
memset (&k[salt_len], 0, 3);
|
memset (&k[salt_len], 0, 3);
|
||||||
k[salt_len + 3] = (char) b;
|
k[salt_len + 3] = (char) b;
|
||||||
|
#else
|
||||||
|
b = bswap_32 (b);
|
||||||
|
memcpy (&k[salt_len], &b, 4);
|
||||||
|
#endif
|
||||||
|
|
||||||
hmac_sha256_internal (pwd, pwd_len, k, salt_len + 4, hmac);
|
hmac_sha256_internal (k, salt_len + 4, hmac);
|
||||||
memcpy (u, k, SHA256_DIGESTSIZE);
|
memcpy (u, k, SHA256_DIGESTSIZE);
|
||||||
|
|
||||||
/* remaining iterations */
|
/* remaining iterations */
|
||||||
while (c > 1)
|
while (c > 1)
|
||||||
{
|
{
|
||||||
hmac_sha256_internal (pwd, pwd_len, k, SHA256_DIGESTSIZE, hmac);
|
hmac_sha256_internal (k, SHA256_DIGESTSIZE, hmac);
|
||||||
for (i = 0; i < SHA256_DIGESTSIZE; i++)
|
for (i = 0; i < SHA256_DIGESTSIZE; i++)
|
||||||
{
|
{
|
||||||
u[i] ^= k[i];
|
u[i] ^= k[i];
|
||||||
@@ -254,13 +258,13 @@ void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
|
|||||||
/* first l - 1 blocks */
|
/* first l - 1 blocks */
|
||||||
for (b = 1; b < l; b++)
|
for (b = 1; b < l; b++)
|
||||||
{
|
{
|
||||||
derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_sha256 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, SHA256_DIGESTSIZE);
|
memcpy (dk, hmac.u, SHA256_DIGESTSIZE);
|
||||||
dk += SHA256_DIGESTSIZE;
|
dk += SHA256_DIGESTSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* last block */
|
/* last block */
|
||||||
derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_sha256 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, r);
|
memcpy (dk, hmac.u, r);
|
||||||
|
|
||||||
|
|
||||||
@@ -280,14 +284,12 @@ typedef struct hmac_sha512_ctx_struct
|
|||||||
sha512_ctx ctx;
|
sha512_ctx ctx;
|
||||||
sha512_ctx inner_digest_ctx; /*pre-computed inner digest context */
|
sha512_ctx inner_digest_ctx; /*pre-computed inner digest context */
|
||||||
sha512_ctx outer_digest_ctx; /*pre-computed outer digest context */
|
sha512_ctx outer_digest_ctx; /*pre-computed outer digest context */
|
||||||
char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the SHA512 hash */
|
char k[SHA512_BLOCKSIZE]; /* enough to hold (salt_len + 4) and also the SHA512 hash */
|
||||||
char u[SHA512_DIGESTSIZE];
|
char u[SHA512_DIGESTSIZE];
|
||||||
} hmac_sha512_ctx;
|
} hmac_sha512_ctx;
|
||||||
|
|
||||||
void hmac_sha512_internal
|
void hmac_sha512_internal
|
||||||
(
|
(
|
||||||
char *k, /* secret key */
|
|
||||||
int lk, /* length of the key in bytes */
|
|
||||||
char *d, /* data and also output buffer of at least 64 bytes */
|
char *d, /* data and also output buffer of at least 64 bytes */
|
||||||
int ld, /* length of data in bytes */
|
int ld, /* length of data in bytes */
|
||||||
hmac_sha512_ctx* hmac
|
hmac_sha512_ctx* hmac
|
||||||
@@ -322,9 +324,7 @@ void hmac_sha512
|
|||||||
{
|
{
|
||||||
hmac_sha512_ctx hmac;
|
hmac_sha512_ctx hmac;
|
||||||
sha512_ctx* ctx;
|
sha512_ctx* ctx;
|
||||||
char* buf = hmac.k; /* there is enough space to hold SHA512_BLOCKSIZE (128) bytes
|
char* buf = hmac.k;
|
||||||
* because k is followed by u in hmac_sha512_ctx
|
|
||||||
*/
|
|
||||||
int b;
|
int b;
|
||||||
char key[SHA512_DIGESTSIZE];
|
char key[SHA512_DIGESTSIZE];
|
||||||
|
|
||||||
@@ -367,14 +367,14 @@ void hmac_sha512
|
|||||||
|
|
||||||
sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, ctx);
|
sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, ctx);
|
||||||
|
|
||||||
hmac_sha512_internal (k, lk, d, ld, &hmac);
|
hmac_sha512_internal (d, ld, &hmac);
|
||||||
|
|
||||||
/* Prevent leaks */
|
/* Prevent leaks */
|
||||||
burn (&hmac, sizeof(hmac));
|
burn (&hmac, sizeof(hmac));
|
||||||
burn (key, sizeof(key));
|
burn (key, sizeof(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void derive_u_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, uint32 iterations, int b, hmac_sha512_ctx* hmac)
|
static void derive_u_sha512 (char *salt, int salt_len, uint32 iterations, int b, hmac_sha512_ctx* hmac)
|
||||||
{
|
{
|
||||||
char* k = hmac->k;
|
char* k = hmac->k;
|
||||||
char* u = hmac->u;
|
char* u = hmac->u;
|
||||||
@@ -383,16 +383,16 @@ static void derive_u_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, u
|
|||||||
/* iteration 1 */
|
/* iteration 1 */
|
||||||
memcpy (k, salt, salt_len); /* salt */
|
memcpy (k, salt, salt_len); /* salt */
|
||||||
/* big-endian block number */
|
/* big-endian block number */
|
||||||
memset (&k[salt_len], 0, 3);
|
b = bswap_32 (b);
|
||||||
k[salt_len + 3] = (char) b;
|
memcpy (&k[salt_len], &b, 4);
|
||||||
|
|
||||||
hmac_sha512_internal (pwd, pwd_len, k, salt_len + 4, hmac);
|
hmac_sha512_internal (k, salt_len + 4, hmac);
|
||||||
memcpy (u, k, SHA512_DIGESTSIZE);
|
memcpy (u, k, SHA512_DIGESTSIZE);
|
||||||
|
|
||||||
/* remaining iterations */
|
/* remaining iterations */
|
||||||
for (c = 1; c < iterations; c++)
|
for (c = 1; c < iterations; c++)
|
||||||
{
|
{
|
||||||
hmac_sha512_internal (pwd, pwd_len, k, SHA512_DIGESTSIZE, hmac);
|
hmac_sha512_internal (k, SHA512_DIGESTSIZE, hmac);
|
||||||
for (i = 0; i < SHA512_DIGESTSIZE; i++)
|
for (i = 0; i < SHA512_DIGESTSIZE; i++)
|
||||||
{
|
{
|
||||||
u[i] ^= k[i];
|
u[i] ^= k[i];
|
||||||
@@ -405,9 +405,7 @@ void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
|
|||||||
{
|
{
|
||||||
hmac_sha512_ctx hmac;
|
hmac_sha512_ctx hmac;
|
||||||
sha512_ctx* ctx;
|
sha512_ctx* ctx;
|
||||||
char* buf = hmac.k; /* there is enough space to hold SHA512_BLOCKSIZE (128) bytes
|
char* buf = hmac.k;
|
||||||
* because k is followed by u in hmac_sha512_ctx
|
|
||||||
*/
|
|
||||||
int b, l, r;
|
int b, l, r;
|
||||||
char key[SHA512_DIGESTSIZE];
|
char key[SHA512_DIGESTSIZE];
|
||||||
|
|
||||||
@@ -464,13 +462,13 @@ void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, uint32
|
|||||||
/* first l - 1 blocks */
|
/* first l - 1 blocks */
|
||||||
for (b = 1; b < l; b++)
|
for (b = 1; b < l; b++)
|
||||||
{
|
{
|
||||||
derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_sha512 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, SHA512_DIGESTSIZE);
|
memcpy (dk, hmac.u, SHA512_DIGESTSIZE);
|
||||||
dk += SHA512_DIGESTSIZE;
|
dk += SHA512_DIGESTSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* last block */
|
/* last block */
|
||||||
derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_sha512 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, r);
|
memcpy (dk, hmac.u, r);
|
||||||
|
|
||||||
|
|
||||||
@@ -492,7 +490,7 @@ typedef struct hmac_ripemd160_ctx_struct
|
|||||||
char u[RIPEMD160_DIGESTSIZE];
|
char u[RIPEMD160_DIGESTSIZE];
|
||||||
} hmac_ripemd160_ctx;
|
} hmac_ripemd160_ctx;
|
||||||
|
|
||||||
void hmac_ripemd160_internal (char *key, int keylen, char *input_digest, int len, hmac_ripemd160_ctx* hmac)
|
void hmac_ripemd160_internal (char *input_digest, int len, hmac_ripemd160_ctx* hmac)
|
||||||
{
|
{
|
||||||
RMD160_CTX* context = &(hmac->context);
|
RMD160_CTX* context = &(hmac->context);
|
||||||
|
|
||||||
@@ -561,7 +559,7 @@ void hmac_ripemd160 (char *key, int keylen, char *input_digest, int len)
|
|||||||
RMD160Init(ctx); /* init context for 2nd pass */
|
RMD160Init(ctx); /* init context for 2nd pass */
|
||||||
RMD160Update(ctx, k_pad, RIPEMD160_BLOCKSIZE); /* start with outer pad */
|
RMD160Update(ctx, k_pad, RIPEMD160_BLOCKSIZE); /* start with outer pad */
|
||||||
|
|
||||||
hmac_ripemd160_internal (key, keylen, input_digest, len, &hmac);
|
hmac_ripemd160_internal (input_digest, len, &hmac);
|
||||||
|
|
||||||
burn (&hmac, sizeof(hmac));
|
burn (&hmac, sizeof(hmac));
|
||||||
burn (tk, sizeof(tk));
|
burn (tk, sizeof(tk));
|
||||||
@@ -569,7 +567,7 @@ void hmac_ripemd160 (char *key, int keylen, char *input_digest, int len)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, uint32 iterations, int b, hmac_ripemd160_ctx* hmac)
|
static void derive_u_ripemd160 (char *salt, int salt_len, uint32 iterations, int b, hmac_ripemd160_ctx* hmac)
|
||||||
{
|
{
|
||||||
char* k = hmac->k;
|
char* k = hmac->k;
|
||||||
char* u = hmac->u;
|
char* u = hmac->u;
|
||||||
@@ -595,16 +593,22 @@ static void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len
|
|||||||
memcpy (k, salt, salt_len); /* salt */
|
memcpy (k, salt, salt_len); /* salt */
|
||||||
|
|
||||||
/* big-endian block number */
|
/* big-endian block number */
|
||||||
|
#ifdef TC_WINDOWS_BOOT
|
||||||
|
/* specific case of 16-bit bootloader: b is a 16-bit integer that is always < 256*/
|
||||||
memset (&k[salt_len], 0, 3);
|
memset (&k[salt_len], 0, 3);
|
||||||
k[salt_len + 3] = (char) b;
|
k[salt_len + 3] = (char) b;
|
||||||
|
#else
|
||||||
|
b = bswap_32 (b);
|
||||||
|
memcpy (&k[salt_len], &b, 4);
|
||||||
|
#endif
|
||||||
|
|
||||||
hmac_ripemd160_internal (pwd, pwd_len, k, salt_len + 4, hmac);
|
hmac_ripemd160_internal (k, salt_len + 4, hmac);
|
||||||
memcpy (u, k, RIPEMD160_DIGESTSIZE);
|
memcpy (u, k, RIPEMD160_DIGESTSIZE);
|
||||||
|
|
||||||
/* remaining iterations */
|
/* remaining iterations */
|
||||||
while ( c > 1)
|
while ( c > 1)
|
||||||
{
|
{
|
||||||
hmac_ripemd160_internal (pwd, pwd_len, k, RIPEMD160_DIGESTSIZE, hmac);
|
hmac_ripemd160_internal (k, RIPEMD160_DIGESTSIZE, hmac);
|
||||||
for (i = 0; i < RIPEMD160_DIGESTSIZE; i++)
|
for (i = 0; i < RIPEMD160_DIGESTSIZE; i++)
|
||||||
{
|
{
|
||||||
u[i] ^= k[i];
|
u[i] ^= k[i];
|
||||||
@@ -676,13 +680,13 @@ void derive_key_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, uin
|
|||||||
/* first l - 1 blocks */
|
/* first l - 1 blocks */
|
||||||
for (b = 1; b < l; b++)
|
for (b = 1; b < l; b++)
|
||||||
{
|
{
|
||||||
derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_ripemd160 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, RIPEMD160_DIGESTSIZE);
|
memcpy (dk, hmac.u, RIPEMD160_DIGESTSIZE);
|
||||||
dk += RIPEMD160_DIGESTSIZE;
|
dk += RIPEMD160_DIGESTSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* last block */
|
/* last block */
|
||||||
derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_ripemd160 (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, r);
|
memcpy (dk, hmac.u, r);
|
||||||
|
|
||||||
|
|
||||||
@@ -707,8 +711,6 @@ typedef struct hmac_whirlpool_ctx_struct
|
|||||||
|
|
||||||
void hmac_whirlpool_internal
|
void hmac_whirlpool_internal
|
||||||
(
|
(
|
||||||
char *k, /* secret key */
|
|
||||||
int lk, /* length of the key in bytes */
|
|
||||||
char *d, /* input/output data. d pointer is guaranteed to be at least 64-bytes long */
|
char *d, /* input/output data. d pointer is guaranteed to be at least 64-bytes long */
|
||||||
int ld, /* length of input data in bytes */
|
int ld, /* length of input data in bytes */
|
||||||
hmac_whirlpool_ctx* hmac /* HMAC-Whirlpool context which holds temporary variables */
|
hmac_whirlpool_ctx* hmac /* HMAC-Whirlpool context which holds temporary variables */
|
||||||
@@ -791,7 +793,7 @@ void hmac_whirlpool
|
|||||||
|
|
||||||
WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE, ctx);
|
WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE, ctx);
|
||||||
|
|
||||||
hmac_whirlpool_internal(k, lk, d, ld, &hmac);
|
hmac_whirlpool_internal(d, ld, &hmac);
|
||||||
|
|
||||||
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
||||||
if (NT_SUCCESS (saveStatus) && HasISSE())
|
if (NT_SUCCESS (saveStatus) && HasISSE())
|
||||||
@@ -801,7 +803,7 @@ void hmac_whirlpool
|
|||||||
burn(&hmac, sizeof(hmac));
|
burn(&hmac, sizeof(hmac));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void derive_u_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, uint32 iterations, int b, hmac_whirlpool_ctx* hmac)
|
static void derive_u_whirlpool (char *salt, int salt_len, uint32 iterations, int b, hmac_whirlpool_ctx* hmac)
|
||||||
{
|
{
|
||||||
char* u = hmac->u;
|
char* u = hmac->u;
|
||||||
char* k = hmac->k;
|
char* k = hmac->k;
|
||||||
@@ -810,16 +812,16 @@ static void derive_u_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len
|
|||||||
/* iteration 1 */
|
/* iteration 1 */
|
||||||
memcpy (k, salt, salt_len); /* salt */
|
memcpy (k, salt, salt_len); /* salt */
|
||||||
/* big-endian block number */
|
/* big-endian block number */
|
||||||
memset (&k[salt_len], 0, 3);
|
b = bswap_32 (b);
|
||||||
k[salt_len + 3] = (char) b;
|
memcpy (&k[salt_len], &b, 4);
|
||||||
|
|
||||||
hmac_whirlpool_internal (pwd, pwd_len, k, salt_len + 4, hmac);
|
hmac_whirlpool_internal (k, salt_len + 4, hmac);
|
||||||
memcpy (u, k, WHIRLPOOL_DIGESTSIZE);
|
memcpy (u, k, WHIRLPOOL_DIGESTSIZE);
|
||||||
|
|
||||||
/* remaining iterations */
|
/* remaining iterations */
|
||||||
for (c = 1; c < iterations; c++)
|
for (c = 1; c < iterations; c++)
|
||||||
{
|
{
|
||||||
hmac_whirlpool_internal (pwd, pwd_len, k, WHIRLPOOL_DIGESTSIZE, hmac);
|
hmac_whirlpool_internal (k, WHIRLPOOL_DIGESTSIZE, hmac);
|
||||||
for (i = 0; i < WHIRLPOOL_DIGESTSIZE; i++)
|
for (i = 0; i < WHIRLPOOL_DIGESTSIZE; i++)
|
||||||
{
|
{
|
||||||
u[i] ^= k[i];
|
u[i] ^= k[i];
|
||||||
@@ -893,13 +895,13 @@ void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, uin
|
|||||||
/* first l - 1 blocks */
|
/* first l - 1 blocks */
|
||||||
for (b = 1; b < l; b++)
|
for (b = 1; b < l; b++)
|
||||||
{
|
{
|
||||||
derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_whirlpool (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, WHIRLPOOL_DIGESTSIZE);
|
memcpy (dk, hmac.u, WHIRLPOOL_DIGESTSIZE);
|
||||||
dk += WHIRLPOOL_DIGESTSIZE;
|
dk += WHIRLPOOL_DIGESTSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* last block */
|
/* last block */
|
||||||
derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_whirlpool (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, r);
|
memcpy (dk, hmac.u, r);
|
||||||
|
|
||||||
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
||||||
@@ -924,8 +926,6 @@ typedef struct hmac_streebog_ctx_struct
|
|||||||
|
|
||||||
void hmac_streebog_internal
|
void hmac_streebog_internal
|
||||||
(
|
(
|
||||||
char *k, /* secret key */
|
|
||||||
int lk, /* length of the key in bytes */
|
|
||||||
char *d, /* input/output data. d pointer is guaranteed to be at least 64-bytes long */
|
char *d, /* input/output data. d pointer is guaranteed to be at least 64-bytes long */
|
||||||
int ld, /* length of input data in bytes */
|
int ld, /* length of input data in bytes */
|
||||||
hmac_streebog_ctx* hmac /* HMAC-Whirlpool context which holds temporary variables */
|
hmac_streebog_ctx* hmac /* HMAC-Whirlpool context which holds temporary variables */
|
||||||
@@ -1008,7 +1008,7 @@ void hmac_streebog
|
|||||||
|
|
||||||
STREEBOG_add (ctx, (unsigned char *) buf, STREEBOG_BLOCKSIZE);
|
STREEBOG_add (ctx, (unsigned char *) buf, STREEBOG_BLOCKSIZE);
|
||||||
|
|
||||||
hmac_streebog_internal(k, lk, d, ld, &hmac);
|
hmac_streebog_internal(d, ld, &hmac);
|
||||||
|
|
||||||
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
||||||
if (NT_SUCCESS (saveStatus) && (HasSSE2() || HasSSE41()))
|
if (NT_SUCCESS (saveStatus) && (HasSSE2() || HasSSE41()))
|
||||||
@@ -1018,7 +1018,7 @@ void hmac_streebog
|
|||||||
burn(&hmac, sizeof(hmac));
|
burn(&hmac, sizeof(hmac));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void derive_u_streebog (char *pwd, int pwd_len, char *salt, int salt_len, uint32 iterations, int b, hmac_streebog_ctx* hmac)
|
static void derive_u_streebog (char *salt, int salt_len, uint32 iterations, int b, hmac_streebog_ctx* hmac)
|
||||||
{
|
{
|
||||||
char* u = hmac->u;
|
char* u = hmac->u;
|
||||||
char* k = hmac->k;
|
char* k = hmac->k;
|
||||||
@@ -1027,16 +1027,16 @@ static void derive_u_streebog (char *pwd, int pwd_len, char *salt, int salt_len,
|
|||||||
/* iteration 1 */
|
/* iteration 1 */
|
||||||
memcpy (k, salt, salt_len); /* salt */
|
memcpy (k, salt, salt_len); /* salt */
|
||||||
/* big-endian block number */
|
/* big-endian block number */
|
||||||
memset (&k[salt_len], 0, 3);
|
b = bswap_32 (b);
|
||||||
k[salt_len + 3] = (char) b;
|
memcpy (&k[salt_len], &b, 4);
|
||||||
|
|
||||||
hmac_streebog_internal (pwd, pwd_len, k, salt_len + 4, hmac);
|
hmac_streebog_internal (k, salt_len + 4, hmac);
|
||||||
memcpy (u, k, STREEBOG_DIGESTSIZE);
|
memcpy (u, k, STREEBOG_DIGESTSIZE);
|
||||||
|
|
||||||
/* remaining iterations */
|
/* remaining iterations */
|
||||||
for (c = 1; c < iterations; c++)
|
for (c = 1; c < iterations; c++)
|
||||||
{
|
{
|
||||||
hmac_streebog_internal (pwd, pwd_len, k, STREEBOG_DIGESTSIZE, hmac);
|
hmac_streebog_internal (k, STREEBOG_DIGESTSIZE, hmac);
|
||||||
for (i = 0; i < STREEBOG_DIGESTSIZE; i++)
|
for (i = 0; i < STREEBOG_DIGESTSIZE; i++)
|
||||||
{
|
{
|
||||||
u[i] ^= k[i];
|
u[i] ^= k[i];
|
||||||
@@ -1110,13 +1110,13 @@ void derive_key_streebog (char *pwd, int pwd_len, char *salt, int salt_len, uint
|
|||||||
/* first l - 1 blocks */
|
/* first l - 1 blocks */
|
||||||
for (b = 1; b < l; b++)
|
for (b = 1; b < l; b++)
|
||||||
{
|
{
|
||||||
derive_u_streebog (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_streebog (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, STREEBOG_DIGESTSIZE);
|
memcpy (dk, hmac.u, STREEBOG_DIGESTSIZE);
|
||||||
dk += STREEBOG_DIGESTSIZE;
|
dk += STREEBOG_DIGESTSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* last block */
|
/* last block */
|
||||||
derive_u_streebog (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
|
derive_u_streebog (salt, salt_len, iterations, b, &hmac);
|
||||||
memcpy (dk, hmac.u, r);
|
memcpy (dk, hmac.u, r);
|
||||||
|
|
||||||
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
#if defined (DEVICE_DRIVER) && !defined (_WIN64)
|
||||||
|
|||||||
+2
-2
@@ -108,7 +108,7 @@ int Randinit ()
|
|||||||
|
|
||||||
if (pRandPool == NULL)
|
if (pRandPool == NULL)
|
||||||
{
|
{
|
||||||
pRandPool = (unsigned char *) TCalloc (RANDOMPOOL_ALLOCSIZE);
|
pRandPool = (unsigned char *) _aligned_malloc (RANDOMPOOL_ALLOCSIZE, 16);
|
||||||
if (pRandPool == NULL)
|
if (pRandPool == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@@ -203,7 +203,7 @@ freePool:
|
|||||||
if (pRandPool != NULL)
|
if (pRandPool != NULL)
|
||||||
{
|
{
|
||||||
burn (pRandPool, RANDOMPOOL_ALLOCSIZE);
|
burn (pRandPool, RANDOMPOOL_ALLOCSIZE);
|
||||||
TCfree (pRandPool);
|
_aligned_free (pRandPool);
|
||||||
pRandPool = NULL;
|
pRandPool = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,12 @@
|
|||||||
#define IDR_EFI_LEGACYSPEAKER 569
|
#define IDR_EFI_LEGACYSPEAKER 569
|
||||||
#define IDR_EFI_DCSBML 570
|
#define IDR_EFI_DCSBML 570
|
||||||
#define IDR_EFI_DCSRE 571
|
#define IDR_EFI_DCSRE 571
|
||||||
|
#define IDR_EFI_DCSBOOT32 572
|
||||||
|
#define IDR_EFI_DCSINT32 573
|
||||||
|
#define IDR_EFI_DCSCFG32 574
|
||||||
|
#define IDR_EFI_LEGACYSPEAKER32 575
|
||||||
|
#define IDR_EFI_DCSBML32 576
|
||||||
|
#define IDR_EFI_DCSRE32 577
|
||||||
#define IDC_HW_AES_LABEL_LINK 5000
|
#define IDC_HW_AES_LABEL_LINK 5000
|
||||||
#define IDC_HW_AES 5001
|
#define IDC_HW_AES 5001
|
||||||
#define IDC_PARALLELIZATION_LABEL_LINK 5002
|
#define IDC_PARALLELIZATION_LABEL_LINK 5002
|
||||||
@@ -220,7 +226,7 @@
|
|||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NO_MFC 1
|
#define _APS_NO_MFC 1
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 572
|
#define _APS_NEXT_RESOURCE_VALUE 578
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 5141
|
#define _APS_NEXT_CONTROL_VALUE 5141
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
|||||||
+4
-4
@@ -55,15 +55,15 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
|
|||||||
#define TC_APP_NAME "VeraCrypt"
|
#define TC_APP_NAME "VeraCrypt"
|
||||||
|
|
||||||
// Version displayed to user
|
// Version displayed to user
|
||||||
#define VERSION_STRING "1.18"
|
#define VERSION_STRING "1.19"
|
||||||
|
|
||||||
// Version number to compare against driver
|
// Version number to compare against driver
|
||||||
#define VERSION_NUM 0x0118
|
#define VERSION_NUM 0x0119
|
||||||
|
|
||||||
// Release date
|
// Release date
|
||||||
#define TC_STR_RELEASE_DATE L"August 17th, 2016"
|
#define TC_STR_RELEASE_DATE L"October 17th, 2016"
|
||||||
#define TC_RELEASE_DATE_YEAR 2016
|
#define TC_RELEASE_DATE_YEAR 2016
|
||||||
#define TC_RELEASE_DATE_MONTH 8
|
#define TC_RELEASE_DATE_MONTH 10
|
||||||
|
|
||||||
#define BYTES_PER_KB 1024LL
|
#define BYTES_PER_KB 1024LL
|
||||||
#define BYTES_PER_MB 1048576LL
|
#define BYTES_PER_MB 1048576LL
|
||||||
|
|||||||
+176
-2
@@ -376,6 +376,71 @@ CAMELLIA_TEST camellia_vectors[CAMELLIA_TEST_COUNT] = {
|
|||||||
0xAD, 0x5C, 0x4D, 0x84
|
0xAD, 0x5C, 0x4D, 0x84
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#if defined(CIPHER_GOST89)
|
||||||
|
// GOST89 ECB test vectors
|
||||||
|
#define GOST89_TEST_COUNT 1
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned char key[32];
|
||||||
|
unsigned char plaintext[16];
|
||||||
|
unsigned char ciphertext[16];
|
||||||
|
} GOST89_TEST;
|
||||||
|
|
||||||
|
GOST89_TEST gost89_vectors[GOST89_TEST_COUNT] = {
|
||||||
|
{
|
||||||
|
0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44,
|
||||||
|
0x33, 0x22, 0x11, 0x00, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
|
||||||
|
0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0xFE, 0xDC, 0xBA, 0x98,
|
||||||
|
0x76, 0x54, 0x32, 0x10, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88,
|
||||||
|
0x8F, 0xC6, 0xFE, 0xB8, 0x91, 0x51, 0x4C, 0x37, 0x4D, 0x51, 0x46, 0xEF,
|
||||||
|
0x02, 0x9D, 0xBD, 0x9F
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Kuznyechik ECB test vectors
|
||||||
|
#define KUZNYECHIK_TEST_COUNT 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned char key[32];
|
||||||
|
unsigned char plaintext[16];
|
||||||
|
unsigned char ciphertext[16];
|
||||||
|
} KUZNYECHIK_TEST;
|
||||||
|
|
||||||
|
KUZNYECHIK_TEST kuznyechik_vectors[KUZNYECHIK_TEST_COUNT] = {
|
||||||
|
{
|
||||||
|
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33,
|
||||||
|
0x44, 0x55, 0x66, 0x77, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
|
||||||
|
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x11, 0x22, 0x33, 0x44,
|
||||||
|
0x55, 0x66, 0x77, 0x00, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88,
|
||||||
|
0x7F, 0x67, 0x9D, 0x90, 0xBE, 0xBC, 0x24, 0x30, 0x5A, 0x46, 0x8D, 0x42,
|
||||||
|
0xB9, 0xD4, 0xED, 0xCD
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33,
|
||||||
|
0x44, 0x55, 0x66, 0x77, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
|
||||||
|
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x00, 0x11, 0x22, 0x33,
|
||||||
|
0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xEE, 0xFF, 0x0A,
|
||||||
|
0xB4, 0x29, 0x91, 0x2C, 0x6E, 0x00, 0x32, 0xF9, 0x28, 0x54, 0x52, 0xD7,
|
||||||
|
0x67, 0x18, 0xD0, 0x8B
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33,
|
||||||
|
0x44, 0x55, 0x66, 0x77, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
|
||||||
|
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x11, 0x22, 0x33, 0x44,
|
||||||
|
0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xEE, 0xFF, 0x0A, 0x00,
|
||||||
|
0xF0, 0xCA, 0x33, 0x54, 0x9D, 0x24, 0x7C, 0xEE, 0xF3, 0xF5, 0xA5, 0x31,
|
||||||
|
0x3B, 0xD4, 0xB1, 0x57
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33,
|
||||||
|
0x44, 0x55, 0x66, 0x77, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
|
||||||
|
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x22, 0x33, 0x44, 0x55,
|
||||||
|
0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xEE, 0xFF, 0x0A, 0x00, 0x11,
|
||||||
|
0xD0, 0xB0, 0x9C, 0xCD, 0xE8, 0x30, 0xB9, 0xEB, 0x3A, 0x02, 0xC4, 0xC5,
|
||||||
|
0xAA, 0x8A, 0xDA, 0x98
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Test vectors from FIPS 198a, RFC 4231, RFC 2104, RFC 2202, and other sources. */
|
/* Test vectors from FIPS 198a, RFC 4231, RFC 2104, RFC 2202, and other sources. */
|
||||||
@@ -781,6 +846,60 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(CIPHER_GOST89)
|
||||||
|
else if (wcscmp (name, L"GOST89") == 0)
|
||||||
|
{
|
||||||
|
switch (testCase)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (crc != 0x12194ef5)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (crc != 0xda8d429b)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (crc != 0xdbf0b12e)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (crc != 0xb986eb4a)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else if (wcscmp (name, L"Kuznyechik") == 0)
|
||||||
|
{
|
||||||
|
switch (testCase)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (crc != 0x6b86e72e)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (crc != 0xa4f8637d)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (crc != 0xfd83e76d)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (crc != 0xb24fc47b)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (wcscmp (name, L"AES-Twofish") == 0)
|
else if (wcscmp (name, L"AES-Twofish") == 0)
|
||||||
{
|
{
|
||||||
switch (testCase)
|
switch (testCase)
|
||||||
@@ -981,6 +1100,20 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
nTestsPerformed++;
|
nTestsPerformed++;
|
||||||
}
|
}
|
||||||
|
#if defined(CIPHER_GOST89)
|
||||||
|
else if (wcscmp (name, L"GOST89") == 0)
|
||||||
|
{
|
||||||
|
if (crc != 0x9e8653cb)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else if (wcscmp (name, L"Kuznyechik") == 0)
|
||||||
|
{
|
||||||
|
if (crc != 0xd6d39cdb)
|
||||||
|
return FALSE;
|
||||||
|
nTestsPerformed++;
|
||||||
|
}
|
||||||
else if (wcscmp (name, L"AES-Twofish") == 0)
|
else if (wcscmp (name, L"AES-Twofish") == 0)
|
||||||
{
|
{
|
||||||
if (crc != 0x14ce7385)
|
if (crc != 0x14ce7385)
|
||||||
@@ -1023,9 +1156,9 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
|
|||||||
nTestsPerformed++;
|
nTestsPerformed++;
|
||||||
}
|
}
|
||||||
#if defined(CIPHER_GOST89)
|
#if defined(CIPHER_GOST89)
|
||||||
return (nTestsPerformed == 100);
|
return (nTestsPerformed == 110);
|
||||||
#else
|
#else
|
||||||
return (nTestsPerformed == 95);
|
return (nTestsPerformed == 105);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1149,6 +1282,47 @@ static BOOL DoAutoTestAlgorithms (void)
|
|||||||
if (i != CAMELLIA_TEST_COUNT)
|
if (i != CAMELLIA_TEST_COUNT)
|
||||||
bFailed = TRUE;
|
bFailed = TRUE;
|
||||||
|
|
||||||
|
/* Kuznyechik */
|
||||||
|
|
||||||
|
for (i = 0; i < KUZNYECHIK_TEST_COUNT; i++)
|
||||||
|
{
|
||||||
|
int cipher = KUZNYECHIK;
|
||||||
|
memcpy(key, kuznyechik_vectors[i].key, 32);
|
||||||
|
memcpy(tmp, kuznyechik_vectors[i].plaintext, 16);
|
||||||
|
CipherInit(cipher, key, ks_tmp);
|
||||||
|
|
||||||
|
EncipherBlock(cipher, tmp, ks_tmp);
|
||||||
|
if (memcmp(kuznyechik_vectors[i].ciphertext, tmp, 16) != 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
DecipherBlock(cipher, tmp, ks_tmp);
|
||||||
|
if (memcmp(kuznyechik_vectors[i].plaintext, tmp, 16) != 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i != KUZNYECHIK_TEST_COUNT)
|
||||||
|
bFailed = TRUE;
|
||||||
|
|
||||||
|
#if defined(CIPHER_GOST89)
|
||||||
|
/* GOST89 */
|
||||||
|
|
||||||
|
for (i = 0; i < GOST89_TEST_COUNT; i++)
|
||||||
|
{
|
||||||
|
int cipher = GOST89;
|
||||||
|
memcpy(key, gost89_vectors[i].key, 32);
|
||||||
|
memcpy(tmp, gost89_vectors[i].plaintext, 16);
|
||||||
|
gost_set_key(key, (gost_kds*)ks_tmp, 0);
|
||||||
|
|
||||||
|
EncipherBlock(cipher, tmp, ks_tmp);
|
||||||
|
if (memcmp(gost89_vectors[i].ciphertext, tmp, 16) != 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
DecipherBlock(cipher, tmp, ks_tmp);
|
||||||
|
if (memcmp(gost89_vectors[i].plaintext, tmp, 16) != 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i != GOST89_TEST_COUNT)
|
||||||
|
bFailed = TRUE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* PKCS #5 and HMACs */
|
/* PKCS #5 and HMACs */
|
||||||
if (!test_pkcs5 ())
|
if (!test_pkcs5 ())
|
||||||
|
|||||||
+25
-18
@@ -249,6 +249,7 @@ int ReadVolumeHeader (BOOL bBoot, char *encryptedHeader, Password *password, int
|
|||||||
#if !defined(DEVICE_DRIVER)
|
#if !defined(DEVICE_DRIVER)
|
||||||
VirtualLock (&keyInfo, sizeof (keyInfo));
|
VirtualLock (&keyInfo, sizeof (keyInfo));
|
||||||
VirtualLock (&dk, sizeof (dk));
|
VirtualLock (&dk, sizeof (dk));
|
||||||
|
VirtualLock (&header, sizeof (header));
|
||||||
#endif
|
#endif
|
||||||
#endif // !defined(_UEFI)
|
#endif // !defined(_UEFI)
|
||||||
|
|
||||||
@@ -571,10 +572,12 @@ err:
|
|||||||
ret:
|
ret:
|
||||||
burn (&keyInfo, sizeof (keyInfo));
|
burn (&keyInfo, sizeof (keyInfo));
|
||||||
burn (dk, sizeof(dk));
|
burn (dk, sizeof(dk));
|
||||||
|
burn (header, sizeof(header));
|
||||||
|
|
||||||
#if !defined(DEVICE_DRIVER) && !defined(_UEFI)
|
#if !defined(DEVICE_DRIVER) && !defined(_UEFI)
|
||||||
VirtualUnlock (&keyInfo, sizeof (keyInfo));
|
VirtualUnlock (&keyInfo, sizeof (keyInfo));
|
||||||
VirtualUnlock (&dk, sizeof (dk));
|
VirtualUnlock (&dk, sizeof (dk));
|
||||||
|
VirtualUnlock (&header, sizeof (header));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(_UEFI)
|
#if !defined(_UEFI)
|
||||||
@@ -620,9 +623,6 @@ void ComputeBootloaderFingerprint (byte *bootLoaderBuf, unsigned int bootLoaderS
|
|||||||
WHIRLPOOL_add (bootLoaderBuf + TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH, (TC_BOOT_SECTOR_USER_CONFIG_OFFSET - (TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)), &whirlpool);
|
WHIRLPOOL_add (bootLoaderBuf + TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH, (TC_BOOT_SECTOR_USER_CONFIG_OFFSET - (TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)), &whirlpool);
|
||||||
sha512_hash (bootLoaderBuf + TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH, (TC_BOOT_SECTOR_USER_CONFIG_OFFSET - (TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)), &sha2);
|
sha512_hash (bootLoaderBuf + TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH, (TC_BOOT_SECTOR_USER_CONFIG_OFFSET - (TC_BOOT_SECTOR_USER_MESSAGE_OFFSET + TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH)), &sha2);
|
||||||
|
|
||||||
WHIRLPOOL_add (bootLoaderBuf + TC_BOOT_SECTOR_USER_CONFIG_OFFSET + 1, (TC_MAX_MBR_BOOT_CODE_SIZE - (TC_BOOT_SECTOR_USER_CONFIG_OFFSET + 1)), &whirlpool);
|
|
||||||
sha512_hash (bootLoaderBuf + TC_BOOT_SECTOR_USER_CONFIG_OFFSET + 1, (TC_MAX_MBR_BOOT_CODE_SIZE - (TC_BOOT_SECTOR_USER_CONFIG_OFFSET + 1)), &sha2);
|
|
||||||
|
|
||||||
WHIRLPOOL_add (bootLoaderBuf + TC_SECTOR_SIZE_BIOS, (bootLoaderSize - TC_SECTOR_SIZE_BIOS), &whirlpool);
|
WHIRLPOOL_add (bootLoaderBuf + TC_SECTOR_SIZE_BIOS, (bootLoaderSize - TC_SECTOR_SIZE_BIOS), &whirlpool);
|
||||||
sha512_hash (bootLoaderBuf + TC_SECTOR_SIZE_BIOS, (bootLoaderSize - TC_SECTOR_SIZE_BIOS), &sha2);
|
sha512_hash (bootLoaderBuf + TC_SECTOR_SIZE_BIOS, (bootLoaderSize - TC_SECTOR_SIZE_BIOS), &sha2);
|
||||||
|
|
||||||
@@ -867,7 +867,8 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return ERR_CIPHER_INIT_WEAK_KEY;
|
retVal = ERR_CIPHER_INIT_WEAK_KEY;
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -909,7 +910,8 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return ERR_CIPHER_INIT_WEAK_KEY;
|
retVal = ERR_CIPHER_INIT_WEAK_KEY;
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password)
|
if (password)
|
||||||
@@ -958,7 +960,8 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return ERR_CIPHER_INIT_WEAK_KEY;
|
retVal = ERR_CIPHER_INIT_WEAK_KEY;
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1042,14 +1045,15 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
if (retVal != ERR_SUCCESS)
|
if (retVal != ERR_SUCCESS)
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return retVal;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode of operation
|
// Mode of operation
|
||||||
if (!EAInitMode (cryptoInfo))
|
if (!EAInitMode (cryptoInfo))
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return ERR_OUTOFMEMORY;
|
retVal = ERR_OUTOFMEMORY;
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1066,7 +1070,7 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
if (retVal != ERR_SUCCESS)
|
if (retVal != ERR_SUCCESS)
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return retVal;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy (cryptoInfo->master_keydata, keyInfo.master_keydata, MASTER_KEYDATA_SIZE);
|
memcpy (cryptoInfo->master_keydata, keyInfo.master_keydata, MASTER_KEYDATA_SIZE);
|
||||||
@@ -1083,7 +1087,8 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
if (!EAInitMode (cryptoInfo))
|
if (!EAInitMode (cryptoInfo))
|
||||||
{
|
{
|
||||||
crypto_close (cryptoInfo);
|
crypto_close (cryptoInfo);
|
||||||
return ERR_OUTOFMEMORY;
|
retVal = ERR_OUTOFMEMORY;
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1129,10 +1134,16 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
|||||||
}
|
}
|
||||||
#endif // #ifdef VOLFORMAT
|
#endif // #ifdef VOLFORMAT
|
||||||
|
|
||||||
|
*retInfo = cryptoInfo;
|
||||||
|
|
||||||
|
err:
|
||||||
burn (dk, sizeof(dk));
|
burn (dk, sizeof(dk));
|
||||||
burn (&keyInfo, sizeof (keyInfo));
|
burn (&keyInfo, sizeof (keyInfo));
|
||||||
|
#if !defined(_UEFI)
|
||||||
|
VirtualUnlock (&keyInfo, sizeof (keyInfo));
|
||||||
|
VirtualUnlock (&dk, sizeof (dk));
|
||||||
|
#endif // !defined(_UEFI)
|
||||||
|
|
||||||
*retInfo = cryptoInfo;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1239,7 +1250,7 @@ BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header)
|
|||||||
// Writes randomly generated data to unused/reserved header areas.
|
// Writes randomly generated data to unused/reserved header areas.
|
||||||
// When bPrimaryOnly is TRUE, then only the primary header area (not the backup header area) is filled with random data.
|
// When bPrimaryOnly is TRUE, then only the primary header area (not the backup header area) is filled with random data.
|
||||||
// When bBackupOnly is TRUE, only the backup header area (not the primary header area) is filled with random data.
|
// When bBackupOnly is TRUE, only the backup header area (not the primary header area) is filled with random data.
|
||||||
int WriteRandomDataToReservedHeaderAreas (HWND hwndDlg, HANDLE dev, CRYPTO_INFO *cryptoInfo, uint64 dataAreaSize, BOOL bPrimaryOnly, BOOL bBackupOnly, BOOL bInPlaceEnc)
|
int WriteRandomDataToReservedHeaderAreas (HWND hwndDlg, HANDLE dev, CRYPTO_INFO *cryptoInfo, uint64 dataAreaSize, BOOL bPrimaryOnly, BOOL bBackupOnly)
|
||||||
{
|
{
|
||||||
char temporaryKey[MASTER_KEYDATA_SIZE];
|
char temporaryKey[MASTER_KEYDATA_SIZE];
|
||||||
char originalK2[MASTER_KEYDATA_SIZE];
|
char originalK2[MASTER_KEYDATA_SIZE];
|
||||||
@@ -1298,12 +1309,8 @@ int WriteRandomDataToReservedHeaderAreas (HWND hwndDlg, HANDLE dev, CRYPTO_INFO
|
|||||||
goto final_seq;
|
goto final_seq;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (backupHeaders || !bInPlaceEnc)
|
// encrypt random data instead of existing data for better entropy
|
||||||
{
|
RandgetBytesFull (hwndDlg, buf + TC_VOLUME_HEADER_EFFECTIVE_SIZE, sizeof (buf) - TC_VOLUME_HEADER_EFFECTIVE_SIZE, FALSE, TRUE);
|
||||||
// encrypt random data instead of existing data for better entropy, except in case of primary
|
|
||||||
// header of an in-place encrypted disk
|
|
||||||
RandgetBytesFull (hwndDlg, buf + TC_VOLUME_HEADER_EFFECTIVE_SIZE, sizeof (buf) - TC_VOLUME_HEADER_EFFECTIVE_SIZE, FALSE, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
EncryptBuffer (buf + TC_VOLUME_HEADER_EFFECTIVE_SIZE, sizeof (buf) - TC_VOLUME_HEADER_EFFECTIVE_SIZE, cryptoInfo);
|
EncryptBuffer (buf + TC_VOLUME_HEADER_EFFECTIVE_SIZE, sizeof (buf) - TC_VOLUME_HEADER_EFFECTIVE_SIZE, cryptoInfo);
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ void ComputeBootloaderFingerprint (byte *bootLoaderBuf, unsigned int bootLoaderS
|
|||||||
int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *encryptedHeader, int ea, int mode, Password *password, int pkcs5_prf, int pim, char *masterKeydata, PCRYPTO_INFO *retInfo, unsigned __int64 volumeSize, unsigned __int64 hiddenVolumeSize, unsigned __int64 encryptedAreaStart, unsigned __int64 encryptedAreaLength, uint16 requiredProgramVersion, uint32 headerFlags, uint32 sectorSize, BOOL bWipeMode);
|
int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *encryptedHeader, int ea, int mode, Password *password, int pkcs5_prf, int pim, char *masterKeydata, PCRYPTO_INFO *retInfo, unsigned __int64 volumeSize, unsigned __int64 hiddenVolumeSize, unsigned __int64 encryptedAreaStart, unsigned __int64 encryptedAreaLength, uint16 requiredProgramVersion, uint32 headerFlags, uint32 sectorSize, BOOL bWipeMode);
|
||||||
BOOL ReadEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header, DWORD *bytesRead);
|
BOOL ReadEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header, DWORD *bytesRead);
|
||||||
BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header);
|
BOOL WriteEffectiveVolumeHeader (BOOL device, HANDLE fileHandle, byte *header);
|
||||||
int WriteRandomDataToReservedHeaderAreas (HWND hwndDlg, HANDLE dev, CRYPTO_INFO *cryptoInfo, uint64 dataAreaSize, BOOL bPrimaryOnly, BOOL bBackupOnly, BOOL bInPlaceEnc);
|
int WriteRandomDataToReservedHeaderAreas (HWND hwndDlg, HANDLE dev, CRYPTO_INFO *cryptoInfo, uint64 dataAreaSize, BOOL bPrimaryOnly, BOOL bBackupOnly);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // !TC_HEADER_Volume_VolumeHeader
|
#endif // !TC_HEADER_Volume_VolumeHeader
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,382 +0,0 @@
|
|||||||
// XUnzip.h Version 1.3
|
|
||||||
//
|
|
||||||
// Authors: Mark Adler et al. (see below)
|
|
||||||
//
|
|
||||||
// Modified by: Lucian Wischik
|
|
||||||
// lu@wischik.com
|
|
||||||
//
|
|
||||||
// Version 1.0 - Turned C files into just a single CPP file
|
|
||||||
// - Made them compile cleanly as C++ files
|
|
||||||
// - Gave them simpler APIs
|
|
||||||
// - Added the ability to zip/unzip directly in memory without
|
|
||||||
// any intermediate files
|
|
||||||
//
|
|
||||||
// Modified by: Hans Dietrich
|
|
||||||
// hdietrich@gmail.com
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Lucian Wischik's comments:
|
|
||||||
// --------------------------
|
|
||||||
// THIS FILE is almost entirely based upon code by info-zip.
|
|
||||||
// It has been modified by Lucian Wischik.
|
|
||||||
// The original code may be found at http://www.info-zip.org
|
|
||||||
// The original copyright text follows.
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Original authors' comments:
|
|
||||||
// ---------------------------
|
|
||||||
// This is version 2002-Feb-16 of the Info-ZIP copyright and license. The
|
|
||||||
// definitive version of this document should be available at
|
|
||||||
// ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely.
|
|
||||||
//
|
|
||||||
// Copyright (c) 1990-2002 Info-ZIP. All rights reserved.
|
|
||||||
//
|
|
||||||
// For the purposes of this copyright and license, "Info-ZIP" is defined as
|
|
||||||
// the following set of individuals:
|
|
||||||
//
|
|
||||||
// Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
|
|
||||||
// Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase,
|
|
||||||
// Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
|
|
||||||
// David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
|
|
||||||
// Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
|
|
||||||
// Kai Uwe Rommel, Steve Salisbury, Dave Smith, Christian Spieler,
|
|
||||||
// Antoine Verheijen, Paul von Behren, Rich Wales, Mike White
|
|
||||||
//
|
|
||||||
// This software is provided "as is", without warranty of any kind, express
|
|
||||||
// or implied. In no event shall Info-ZIP or its contributors be held liable
|
|
||||||
// for any direct, indirect, incidental, special or consequential damages
|
|
||||||
// arising out of the use of or inability to use this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
// definition, disclaimer, and this list of conditions.
|
|
||||||
//
|
|
||||||
// 2. Redistributions in binary form (compiled executables) must reproduce
|
|
||||||
// the above copyright notice, definition, disclaimer, and this list of
|
|
||||||
// conditions in documentation and/or other materials provided with the
|
|
||||||
// distribution. The sole exception to this condition is redistribution
|
|
||||||
// of a standard UnZipSFX binary as part of a self-extracting archive;
|
|
||||||
// that is permitted without inclusion of this license, as long as the
|
|
||||||
// normal UnZipSFX banner has not been removed from the binary or disabled.
|
|
||||||
//
|
|
||||||
// 3. Altered versions--including, but not limited to, ports to new
|
|
||||||
// operating systems, existing ports with new graphical interfaces, and
|
|
||||||
// dynamic, shared, or static library versions--must be plainly marked
|
|
||||||
// as such and must not be misrepresented as being the original source.
|
|
||||||
// Such altered versions also must not be misrepresented as being
|
|
||||||
// Info-ZIP releases--including, but not limited to, labeling of the
|
|
||||||
// altered versions with the names "Info-ZIP" (or any variation thereof,
|
|
||||||
// including, but not limited to, different capitalizations),
|
|
||||||
// "Pocket UnZip", "WiZ" or "MacZip" without the explicit permission of
|
|
||||||
// Info-ZIP. Such altered versions are further prohibited from
|
|
||||||
// misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or
|
|
||||||
// of the Info-ZIP URL(s).
|
|
||||||
//
|
|
||||||
// 4. Info-ZIP retains the right to use the names "Info-ZIP", "Zip", "UnZip",
|
|
||||||
// "UnZipSFX", "WiZ", "Pocket UnZip", "Pocket Zip", and "MacZip" for its
|
|
||||||
// own source and binary releases.
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef XUNZIP_H
|
|
||||||
#define XUNZIP_H
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef XZIP_H
|
|
||||||
DECLARE_HANDLE(HZIP); // An HZIP identifies a zip file that has been opened
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef DWORD ZRESULT;
|
|
||||||
// return codes from any of the zip functions. Listed later.
|
|
||||||
|
|
||||||
#define ZIP_HANDLE 1
|
|
||||||
#define ZIP_FILENAME 2
|
|
||||||
#define ZIP_MEMORY 3
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{ int index; // index of this file within the zip
|
|
||||||
char name[MAX_PATH]; // filename within the zip
|
|
||||||
DWORD attr; // attributes, as in GetFileAttributes.
|
|
||||||
FILETIME atime,ctime,mtime;// access, create, modify filetimes
|
|
||||||
long comp_size; // sizes of item, compressed and uncompressed. These
|
|
||||||
long unc_size; // may be -1 if not yet known (e.g. being streamed in)
|
|
||||||
} ZIPENTRY;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{ int index; // index of this file within the zip
|
|
||||||
TCHAR name[MAX_PATH]; // filename within the zip
|
|
||||||
DWORD attr; // attributes, as in GetFileAttributes.
|
|
||||||
FILETIME atime,ctime,mtime;// access, create, modify filetimes
|
|
||||||
long comp_size; // sizes of item, compressed and uncompressed. These
|
|
||||||
long unc_size; // may be -1 if not yet known (e.g. being streamed in)
|
|
||||||
} ZIPENTRYW;
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// OpenZip()
|
|
||||||
//
|
|
||||||
// Purpose: Open an existing zip archive file
|
|
||||||
//
|
|
||||||
// Parameters: z - archive file name if flags is ZIP_FILENAME; for other
|
|
||||||
// uses see below
|
|
||||||
// len - for memory (ZIP_MEMORY) should be the buffer size;
|
|
||||||
// for other uses, should be 0
|
|
||||||
// flags - indicates usage, see below; for files, this will be
|
|
||||||
// ZIP_FILENAME
|
|
||||||
//
|
|
||||||
// Returns: HZIP - non-zero if zip archive opened ok, otherwise 0
|
|
||||||
//
|
|
||||||
HZIP OpenZip(void *z, unsigned int len, DWORD flags);
|
|
||||||
// OpenZip - opens a zip file and returns a handle with which you can
|
|
||||||
// subsequently examine its contents. You can open a zip file from:
|
|
||||||
// from a pipe: OpenZip(hpipe_read,0, ZIP_HANDLE);
|
|
||||||
// from a file (by handle): OpenZip(hfile,0, ZIP_HANDLE);
|
|
||||||
// from a file (by name): OpenZip("c:\\test.zip",0, ZIP_FILENAME);
|
|
||||||
// from a memory block: OpenZip(bufstart, buflen, ZIP_MEMORY);
|
|
||||||
// If the file is opened through a pipe, then items may only be
|
|
||||||
// accessed in increasing order, and an item may only be unzipped once,
|
|
||||||
// although GetZipItem can be called immediately before and after unzipping
|
|
||||||
// it. If it's opened i n any other way, then full random access is possible.
|
|
||||||
// Note: pipe input is not yet implemented.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// GetZipItem()
|
|
||||||
//
|
|
||||||
// Purpose: Get information about an item in an open zip archive
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle of open zip archive
|
|
||||||
// index - index number (0 based) of item in zip
|
|
||||||
// ze - pointer to a ZIPENTRY (if ANSI) or ZIPENTRYW struct
|
|
||||||
// (if Unicode)
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define GetZipItem GetZipItemW
|
|
||||||
#else
|
|
||||||
#define GetZipItem GetZipItemA
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ZRESULT GetZipItemA(HZIP hz, int index, ZIPENTRY *ze);
|
|
||||||
ZRESULT GetZipItemW(HZIP hz, int index, ZIPENTRYW *ze);
|
|
||||||
// GetZipItem - call this to get information about an item in the zip.
|
|
||||||
// If index is -1 and the file wasn't opened through a pipe,
|
|
||||||
// then it returns information about the whole zipfile
|
|
||||||
// (and in particular ze.index returns the number of index items).
|
|
||||||
// Note: the item might be a directory (ze.attr & FILE_ATTRIBUTE_DIRECTORY)
|
|
||||||
// See below for notes on what happens when you unzip such an item.
|
|
||||||
// Note: if you are opening the zip through a pipe, then random access
|
|
||||||
// is not possible and GetZipItem(-1) fails and you can't discover the number
|
|
||||||
// of items except by calling GetZipItem on each one of them in turn,
|
|
||||||
// starting at 0, until eventually the call fails. Also, in the event that
|
|
||||||
// you are opening through a pipe and the zip was itself created into a pipe,
|
|
||||||
// then then comp_size and sometimes unc_size as well may not be known until
|
|
||||||
// after the item has been unzipped.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// FindZipItem()
|
|
||||||
//
|
|
||||||
// Purpose: Find item by name and return information about it
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle of open zip archive
|
|
||||||
// name - name of file to look for inside zip archive
|
|
||||||
// ic - TRUE = case insensitive
|
|
||||||
// index - pointer to index number returned, or -1
|
|
||||||
// ze - pointer to a ZIPENTRY (if ANSI) or ZIPENTRYW struct
|
|
||||||
// (if Unicode)
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define FindZipItem FindZipItemW
|
|
||||||
#else
|
|
||||||
#define FindZipItem FindZipItemA
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ZRESULT FindZipItemA(HZIP hz, const TCHAR *name, bool ic, int *index, ZIPENTRY *ze);
|
|
||||||
ZRESULT FindZipItemW(HZIP hz, const TCHAR *name, bool ic, int *index, ZIPENTRYW *ze);
|
|
||||||
// FindZipItem - finds an item by name. ic means 'insensitive to case'.
|
|
||||||
// It returns the index of the item, and returns information about it.
|
|
||||||
// If nothing was found, then index is set to -1 and the function returns
|
|
||||||
// an error code.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// UnzipItem()
|
|
||||||
//
|
|
||||||
// Purpose: Find item by index and unzip it
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle of open zip archive
|
|
||||||
// index - index number of file to unzip
|
|
||||||
// dst - target file name of unzipped file
|
|
||||||
// len - for memory (ZIP_MEMORY. length of buffer;
|
|
||||||
// otherwise 0
|
|
||||||
// flags - indicates usage, see below; for files, this will be
|
|
||||||
// ZIP_FILENAME
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
|
|
||||||
ZRESULT UnzipItem(HZIP hz, int index, void *dst, unsigned int len, DWORD flags);
|
|
||||||
// UnzipItem - given an index to an item, unzips it. You can unzip to:
|
|
||||||
// to a pipe: UnzipItem(hz,i, hpipe_write,0,ZIP_HANDLE);
|
|
||||||
// to a file (by handle): UnzipItem(hz,i, hfile,0,ZIP_HANDLE);
|
|
||||||
// to a file (by name): UnzipItem(hz,i, ze.name,0,ZIP_FILENAME);
|
|
||||||
// to a memory block: UnzipItem(hz,i, buf,buflen,ZIP_MEMORY);
|
|
||||||
// In the final case, if the buffer isn't large enough to hold it all,
|
|
||||||
// then the return code indicates that more is yet to come. If it was
|
|
||||||
// large enough, and you want to know precisely how big, GetZipItem.
|
|
||||||
// Note: zip files are normally stored with relative pathnames. If you
|
|
||||||
// unzip with ZIP_FILENAME a relative pathname then the item gets created
|
|
||||||
// relative to the current directory - it first ensures that all necessary
|
|
||||||
// subdirectories have been created. Also, the item may itself be a directory.
|
|
||||||
// If you unzip a directory with ZIP_FILENAME, then the directory gets created.
|
|
||||||
// If you unzip it to a handle or a memory block, then nothing gets created
|
|
||||||
// and it emits 0 bytes.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// CloseZip()
|
|
||||||
//
|
|
||||||
// Purpose: Close an open zip archive
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle to an open zip archive
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
ZRESULT CloseZip(HZIP hz);
|
|
||||||
// CloseZip - the zip handle must be closed with this function.
|
|
||||||
|
|
||||||
unsigned int FormatZipMessage(ZRESULT code, char *buf,unsigned int len);
|
|
||||||
// FormatZipMessage - given an error code, formats it as a string.
|
|
||||||
// It returns the length of the error message. If buf/len points
|
|
||||||
// to a real buffer, then it also writes as much as possible into there.
|
|
||||||
|
|
||||||
|
|
||||||
// These are the result codes:
|
|
||||||
#define ZR_OK 0x00000000 // nb. the pseudo-code zr-recent is never returned,
|
|
||||||
#define ZR_RECENT 0x00000001 // but can be passed to FormatZipMessage.
|
|
||||||
// The following come from general system stuff (e.g. files not openable)
|
|
||||||
#define ZR_GENMASK 0x0000FF00
|
|
||||||
#define ZR_NODUPH 0x00000100 // couldn't duplicate the handle
|
|
||||||
#define ZR_NOFILE 0x00000200 // couldn't create/open the file
|
|
||||||
#define ZR_NOALLOC 0x00000300 // failed to allocate some resource
|
|
||||||
#define ZR_WRITE 0x00000400 // a general error writing to the file
|
|
||||||
#define ZR_NOTFOUND 0x00000500 // couldn't find that file in the zip
|
|
||||||
#define ZR_MORE 0x00000600 // there's still more data to be unzipped
|
|
||||||
#define ZR_CORRUPT 0x00000700 // the zipfile is corrupt or not a zipfile
|
|
||||||
#define ZR_READ 0x00000800 // a general error reading the file
|
|
||||||
// The following come from mistakes on the part of the caller
|
|
||||||
#define ZR_CALLERMASK 0x00FF0000
|
|
||||||
#define ZR_ARGS 0x00010000 // general mistake with the arguments
|
|
||||||
#define ZR_NOTMMAP 0x00020000 // tried to ZipGetMemory, but that only works on mmap zipfiles, which yours wasn't
|
|
||||||
#define ZR_MEMSIZE 0x00030000 // the memory size is too small
|
|
||||||
#define ZR_FAILED 0x00040000 // the thing was already failed when you called this function
|
|
||||||
#define ZR_ENDED 0x00050000 // the zip creation has already been closed
|
|
||||||
#define ZR_MISSIZE 0x00060000 // the indicated input file size turned out mistaken
|
|
||||||
#define ZR_PARTIALUNZ 0x00070000 // the file had already been partially unzipped
|
|
||||||
#define ZR_ZMODE 0x00080000 // tried to mix creating/opening a zip
|
|
||||||
// The following come from bugs within the zip library itself
|
|
||||||
#define ZR_BUGMASK 0xFF000000
|
|
||||||
#define ZR_NOTINITED 0x01000000 // initialisation didn't work
|
|
||||||
#define ZR_SEEK 0x02000000 // trying to seek in an unseekable file
|
|
||||||
#define ZR_NOCHANGE 0x04000000 // changed its mind on storage, but not allowed
|
|
||||||
#define ZR_FLATE 0x05000000 // an internal error in the de/inflation code
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// e.g.
|
|
||||||
//
|
|
||||||
// SetCurrentDirectory("c:\\docs\\stuff");
|
|
||||||
// HZIP hz = OpenZip("c:\\stuff.zip",0,ZIP_FILENAME);
|
|
||||||
// ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
|
|
||||||
// for (int i=0; i<numitems; i++)
|
|
||||||
// { GetZipItem(hz,i,&ze);
|
|
||||||
// UnzipItem(hz,i,ze.name,0,ZIP_FILENAME);
|
|
||||||
// }
|
|
||||||
// CloseZip(hz);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// HRSRC hrsrc = FindResource(hInstance,MAKEINTRESOURCE(1),RT_RCDATA);
|
|
||||||
// HANDLE hglob = LoadResource(hInstance,hrsrc);
|
|
||||||
// void *zipbuf=LockResource(hglob);
|
|
||||||
// unsigned int ziplen=SizeofResource(hInstance,hrsrc);
|
|
||||||
// HZIP hz = OpenZip(zipbuf, ziplen, ZIP_MEMORY);
|
|
||||||
// - unzip to a membuffer -
|
|
||||||
// ZIPENTRY ze; int i; FindZipItem(hz,"file.dat",&i,&ze);
|
|
||||||
// char *ibuf = new char[ze.unc_size];
|
|
||||||
// UnzipItem(hz,i, ibuf, ze.unc_size,ZIP_MEMORY);
|
|
||||||
// delete[] buf;
|
|
||||||
// - unzip to a fixed membuff -
|
|
||||||
// ZIPENTRY ze; int i; FindZipItem(hz,"file.dat",&i,&ze);
|
|
||||||
// char ibuf[1024]; ZIPRESULT zr=ZR_MORE; unsigned long totsize=0;
|
|
||||||
// while (zr==ZR_MORE)
|
|
||||||
// { zr = UnzipItem(hz,i, ibuf,1024,ZIP_MEMORY);
|
|
||||||
// unsigned long bufsize=1024; if (zr==ZR_OK) bufsize=ze.unc_size-totsize;
|
|
||||||
// totsize+=bufsize;
|
|
||||||
// }
|
|
||||||
// - unzip to a pipe -
|
|
||||||
// HANDLE hthread=CreateWavReaderThread(&hread,&hwrite);
|
|
||||||
// FindZipItem(hz,"sound.wav",&i,&ze);
|
|
||||||
// UnzipItem(hz,i, hwrite,0,ZIP_HANDLE);
|
|
||||||
// CloseHandle(hwrite);
|
|
||||||
// WaitForSingleObject(hthread,INFINITE);
|
|
||||||
// CloseHandle(hread); CloseHandle(hthread);
|
|
||||||
// - finished -
|
|
||||||
// CloseZip(hz);
|
|
||||||
// // note: no need to free resources obtained through Find/Load/LockResource
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// SetCurrentDirectory("c:\\docs\\pipedzipstuff");
|
|
||||||
// HANDLE hread,hwrite; CreatePipe(&hread,&hwrite);
|
|
||||||
// CreateZipWriterThread(hwrite);
|
|
||||||
// HZIP hz = OpenZip(hread,0,ZIP_HANDLE);
|
|
||||||
// for (int i=0; ; i++)
|
|
||||||
// { ZIPENTRY ze; ZRESULT res = GetZipItem(hz,i,&ze);
|
|
||||||
// if (res!=ZE_OK) break; // no more
|
|
||||||
// UnzipItem(hz,i, ze.name,0,ZIP_FILENAME);
|
|
||||||
// }
|
|
||||||
// CloseZip(hz);
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Now we indulge in a little skullduggery so that the code works whether
|
|
||||||
// the user has included just zip or both zip and unzip.
|
|
||||||
// Idea: if header files for both zip and unzip are present, then presumably
|
|
||||||
// the cpp files for zip and unzip are both present, so we will call
|
|
||||||
// one or the other of them based on a dynamic choice. If the header file
|
|
||||||
// for only one is present, then we will bind to that particular one.
|
|
||||||
HZIP OpenZipU(void *z,unsigned int len,DWORD flags);
|
|
||||||
ZRESULT CloseZipU(HZIP hz);
|
|
||||||
unsigned int FormatZipMessageU(ZRESULT code, char *buf,unsigned int len);
|
|
||||||
bool IsZipHandleU(HZIP hz);
|
|
||||||
#define OpenZip OpenZipU
|
|
||||||
|
|
||||||
#ifdef XZIP_H
|
|
||||||
#undef CloseZip
|
|
||||||
#define CloseZip(hz) (IsZipHandleU(hz)?CloseZipU(hz):CloseZipZ(hz))
|
|
||||||
#else
|
|
||||||
#define CloseZip CloseZipU
|
|
||||||
#define FormatZipMessage FormatZipMessageU
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif //XUNZIP_H
|
|
||||||
-3215
File diff suppressed because it is too large
Load Diff
@@ -1,323 +0,0 @@
|
|||||||
// XZip.h Version 1.3
|
|
||||||
//
|
|
||||||
// Authors: Mark Adler et al. (see below)
|
|
||||||
//
|
|
||||||
// Modified by: Lucian Wischik
|
|
||||||
// lu@wischik.com
|
|
||||||
//
|
|
||||||
// Version 1.0 - Turned C files into just a single CPP file
|
|
||||||
// - Made them compile cleanly as C++ files
|
|
||||||
// - Gave them simpler APIs
|
|
||||||
// - Added the ability to zip/unzip directly in memory without
|
|
||||||
// any intermediate files
|
|
||||||
//
|
|
||||||
// Modified by: Hans Dietrich
|
|
||||||
// hdietrich@gmail.com
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Lucian Wischik's comments:
|
|
||||||
// --------------------------
|
|
||||||
// THIS FILE is almost entirely based upon code by info-zip.
|
|
||||||
// It has been modified by Lucian Wischik.
|
|
||||||
// The original code may be found at http://www.info-zip.org
|
|
||||||
// The original copyright text follows.
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Original authors' comments:
|
|
||||||
// ---------------------------
|
|
||||||
// This is version 2002-Feb-16 of the Info-ZIP copyright and license. The
|
|
||||||
// definitive version of this document should be available at
|
|
||||||
// ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely.
|
|
||||||
//
|
|
||||||
// Copyright (c) 1990-2002 Info-ZIP. All rights reserved.
|
|
||||||
//
|
|
||||||
// For the purposes of this copyright and license, "Info-ZIP" is defined as
|
|
||||||
// the following set of individuals:
|
|
||||||
//
|
|
||||||
// Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
|
|
||||||
// Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase,
|
|
||||||
// Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
|
|
||||||
// David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
|
|
||||||
// Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
|
|
||||||
// Kai Uwe Rommel, Steve Salisbury, Dave Smith, Christian Spieler,
|
|
||||||
// Antoine Verheijen, Paul von Behren, Rich Wales, Mike White
|
|
||||||
//
|
|
||||||
// This software is provided "as is", without warranty of any kind, express
|
|
||||||
// or implied. In no event shall Info-ZIP or its contributors be held liable
|
|
||||||
// for any direct, indirect, incidental, special or consequential damages
|
|
||||||
// arising out of the use of or inability to use this software.
|
|
||||||
//
|
|
||||||
// Permission is granted to anyone to use this software for any purpose,
|
|
||||||
// including commercial applications, and to alter it and redistribute it
|
|
||||||
// freely, subject to the following restrictions:
|
|
||||||
//
|
|
||||||
// 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
// definition, disclaimer, and this list of conditions.
|
|
||||||
//
|
|
||||||
// 2. Redistributions in binary form (compiled executables) must reproduce
|
|
||||||
// the above copyright notice, definition, disclaimer, and this list of
|
|
||||||
// conditions in documentation and/or other materials provided with the
|
|
||||||
// distribution. The sole exception to this condition is redistribution
|
|
||||||
// of a standard UnZipSFX binary as part of a self-extracting archive;
|
|
||||||
// that is permitted without inclusion of this license, as long as the
|
|
||||||
// normal UnZipSFX banner has not been removed from the binary or disabled.
|
|
||||||
//
|
|
||||||
// 3. Altered versions--including, but not limited to, ports to new
|
|
||||||
// operating systems, existing ports with new graphical interfaces, and
|
|
||||||
// dynamic, shared, or static library versions--must be plainly marked
|
|
||||||
// as such and must not be misrepresented as being the original source.
|
|
||||||
// Such altered versions also must not be misrepresented as being
|
|
||||||
// Info-ZIP releases--including, but not limited to, labeling of the
|
|
||||||
// altered versions with the names "Info-ZIP" (or any variation thereof,
|
|
||||||
// including, but not limited to, different capitalizations),
|
|
||||||
// "Pocket UnZip", "WiZ" or "MacZip" without the explicit permission of
|
|
||||||
// Info-ZIP. Such altered versions are further prohibited from
|
|
||||||
// misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or
|
|
||||||
// of the Info-ZIP URL(s).
|
|
||||||
//
|
|
||||||
// 4. Info-ZIP retains the right to use the names "Info-ZIP", "Zip", "UnZip",
|
|
||||||
// "UnZipSFX", "WiZ", "Pocket UnZip", "Pocket Zip", and "MacZip" for its
|
|
||||||
// own source and binary releases.
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef XZIP_H
|
|
||||||
#define XZIP_H
|
|
||||||
|
|
||||||
// ZIP functions -- for creating zip files
|
|
||||||
// This file is a repackaged form of the Info-Zip source code available
|
|
||||||
// at www.info-zip.org. The original copyright notice may be found in
|
|
||||||
// zip.cpp. The repackaging was done by Lucian Wischik to simplify its
|
|
||||||
// use in Windows/C++.
|
|
||||||
|
|
||||||
#ifndef XUNZIP_H
|
|
||||||
DECLARE_HANDLE(HZIP); // An HZIP identifies a zip file that is being created
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef DWORD ZRESULT; // result codes from any of the zip functions. Listed later.
|
|
||||||
|
|
||||||
// flag values passed to some functions
|
|
||||||
#define ZIP_HANDLE 1
|
|
||||||
#define ZIP_FILENAME 2
|
|
||||||
#define ZIP_MEMORY 3
|
|
||||||
#define ZIP_FOLDER 4
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// CreateZip()
|
|
||||||
//
|
|
||||||
// Purpose: Create a zip archive file
|
|
||||||
//
|
|
||||||
// Parameters: z - archive file name if flags is ZIP_FILENAME; for other
|
|
||||||
// uses see below
|
|
||||||
// len - for memory (ZIP_MEMORY) should be the buffer size;
|
|
||||||
// for other uses, should be 0
|
|
||||||
// flags - indicates usage, see below; for files, this will be
|
|
||||||
// ZIP_FILENAME
|
|
||||||
//
|
|
||||||
// Returns: HZIP - non-zero if zip archive created ok, otherwise 0
|
|
||||||
//
|
|
||||||
HZIP CreateZip(void *z, unsigned int len, DWORD flags);
|
|
||||||
// CreateZip - call this to start the creation of a zip file.
|
|
||||||
// As the zip is being created, it will be stored somewhere:
|
|
||||||
// to a pipe: CreateZip(hpipe_write, 0,ZIP_HANDLE);
|
|
||||||
// in a file (by handle): CreateZip(hfile, 0,ZIP_HANDLE);
|
|
||||||
// in a file (by name): CreateZip("c:\\test.zip", 0,ZIP_FILENAME);
|
|
||||||
// in memory: CreateZip(buf, len,ZIP_MEMORY);
|
|
||||||
// or in pagefile memory: CreateZip(0, len,ZIP_MEMORY);
|
|
||||||
// The final case stores it in memory backed by the system paging file,
|
|
||||||
// where the zip may not exceed len bytes. This is a bit friendlier than
|
|
||||||
// allocating memory with new[]: it won't lead to fragmentation, and the
|
|
||||||
// memory won't be touched unless needed.
|
|
||||||
// Note: because pipes don't allow random access, the structure of a zipfile
|
|
||||||
// created into a pipe is slightly different from that created into a file
|
|
||||||
// or memory. In particular, the compressed-size of the item cannot be
|
|
||||||
// stored in the zipfile until after the item itself. (Also, for an item added
|
|
||||||
// itself via a pipe, the uncompressed-size might not either be known until
|
|
||||||
// after.) This is not normally a problem. But if you try to unzip via a pipe
|
|
||||||
// as well, then the unzipper will not know these things about the item until
|
|
||||||
// after it has been unzipped. Therefore: for unzippers which don't just write
|
|
||||||
// each item to disk or to a pipe, but instead pre-allocate memory space into
|
|
||||||
// which to unzip them, then either you have to create the zip not to a pipe,
|
|
||||||
// or you have to add items not from a pipe, or at least when adding items
|
|
||||||
// from a pipe you have to specify the length.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// ZipAdd()
|
|
||||||
//
|
|
||||||
// Purpose: Add a file to a zip archive
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle to an open zip archive
|
|
||||||
// dstzn - name used inside the zip archive to identify the file
|
|
||||||
// src - for a file (ZIP_FILENAME) this specifies the filename
|
|
||||||
// to be added to the archive; for other uses, see below
|
|
||||||
// len - for memory (ZIP_MEMORY) this specifies the buffer
|
|
||||||
// length; for other uses, this should be 0
|
|
||||||
// flags - indicates usage, see below; for files, this will be
|
|
||||||
// ZIP_FILENAME
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
ZRESULT ZipAdd(HZIP hz, const TCHAR *dstzn, void *src, unsigned int len, DWORD flags);
|
|
||||||
// ZipAdd - call this for each file to be added to the zip.
|
|
||||||
// dstzn is the name that the file will be stored as in the zip file.
|
|
||||||
// The file to be added to the zip can come
|
|
||||||
// from a pipe: ZipAdd(hz,"file.dat", hpipe_read,0,ZIP_HANDLE);
|
|
||||||
// from a file: ZipAdd(hz,"file.dat", hfile,0,ZIP_HANDLE);
|
|
||||||
// from a fname: ZipAdd(hz,"file.dat", "c:\\docs\\origfile.dat",0,ZIP_FILENAME);
|
|
||||||
// from memory: ZipAdd(hz,"subdir\\file.dat", buf,len,ZIP_MEMORY);
|
|
||||||
// (folder): ZipAdd(hz,"subdir", 0,0,ZIP_FOLDER);
|
|
||||||
// Note: if adding an item from a pipe, and if also creating the zip file itself
|
|
||||||
// to a pipe, then you might wish to pass a non-zero length to the ZipAdd
|
|
||||||
// function. This will let the zipfile store the items size ahead of the
|
|
||||||
// compressed item itself, which in turn makes it easier when unzipping the
|
|
||||||
// zipfile into a pipe.
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// CloseZip()
|
|
||||||
//
|
|
||||||
// Purpose: Close an open zip archive
|
|
||||||
//
|
|
||||||
// Parameters: hz - handle to an open zip archive
|
|
||||||
//
|
|
||||||
// Returns: ZRESULT - ZR_OK if success, otherwise some other value
|
|
||||||
//
|
|
||||||
ZRESULT CloseZip(HZIP hz);
|
|
||||||
// CloseZip - the zip handle must be closed with this function.
|
|
||||||
|
|
||||||
|
|
||||||
ZRESULT ZipGetMemory(HZIP hz, void **buf, unsigned long *len);
|
|
||||||
// ZipGetMemory - If the zip was created in memory, via ZipCreate(0,ZIP_MEMORY),
|
|
||||||
// then this function will return information about that memory block.
|
|
||||||
// buf will receive a pointer to its start, and len its length.
|
|
||||||
// Note: you can't add any more after calling this.
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int FormatZipMessage(ZRESULT code, char *buf,unsigned int len);
|
|
||||||
// FormatZipMessage - given an error code, formats it as a string.
|
|
||||||
// It returns the length of the error message. If buf/len points
|
|
||||||
// to a real buffer, then it also writes as much as possible into there.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// These are the result codes:
|
|
||||||
#define ZR_OK 0x00000000 // nb. the pseudo-code zr-recent is never returned,
|
|
||||||
#define ZR_RECENT 0x00000001 // but can be passed to FormatZipMessage.
|
|
||||||
// The following come from general system stuff (e.g. files not openable)
|
|
||||||
#define ZR_GENMASK 0x0000FF00
|
|
||||||
#define ZR_NODUPH 0x00000100 // couldn't duplicate the handle
|
|
||||||
#define ZR_NOFILE 0x00000200 // couldn't create/open the file
|
|
||||||
#define ZR_NOALLOC 0x00000300 // failed to allocate some resource
|
|
||||||
#define ZR_WRITE 0x00000400 // a general error writing to the file
|
|
||||||
#define ZR_NOTFOUND 0x00000500 // couldn't find that file in the zip
|
|
||||||
#define ZR_MORE 0x00000600 // there's still more data to be unzipped
|
|
||||||
#define ZR_CORRUPT 0x00000700 // the zipfile is corrupt or not a zipfile
|
|
||||||
#define ZR_READ 0x00000800 // a general error reading the file
|
|
||||||
// The following come from mistakes on the part of the caller
|
|
||||||
#define ZR_CALLERMASK 0x00FF0000
|
|
||||||
#define ZR_ARGS 0x00010000 // general mistake with the arguments
|
|
||||||
#define ZR_NOTMMAP 0x00020000 // tried to ZipGetMemory, but that only works on mmap zipfiles, which yours wasn't
|
|
||||||
#define ZR_MEMSIZE 0x00030000 // the memory size is too small
|
|
||||||
#define ZR_FAILED 0x00040000 // the thing was already failed when you called this function
|
|
||||||
#define ZR_ENDED 0x00050000 // the zip creation has already been closed
|
|
||||||
#define ZR_MISSIZE 0x00060000 // the indicated input file size turned out mistaken
|
|
||||||
#define ZR_PARTIALUNZ 0x00070000 // the file had already been partially unzipped
|
|
||||||
#define ZR_ZMODE 0x00080000 // tried to mix creating/opening a zip
|
|
||||||
// The following come from bugs within the zip library itself
|
|
||||||
#define ZR_BUGMASK 0xFF000000
|
|
||||||
#define ZR_NOTINITED 0x01000000 // initialisation didn't work
|
|
||||||
#define ZR_SEEK 0x02000000 // trying to seek in an unseekable file
|
|
||||||
#define ZR_NOCHANGE 0x04000000 // changed its mind on storage, but not allowed
|
|
||||||
#define ZR_FLATE 0x05000000 // an internal error in the de/inflation code
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// e.g.
|
|
||||||
//
|
|
||||||
// (1) Traditional use, creating a zipfile from existing files
|
|
||||||
// HZIP hz = CreateZip("c:\\temp.zip",0,ZIP_FILENAME);
|
|
||||||
// ZipAdd(hz,"src1.txt", "c:\\src1.txt",0,ZIP_FILENAME);
|
|
||||||
// ZipAdd(hz,"src2.bmp", "c:\\src2_origfn.bmp",0,ZIP_FILENAME);
|
|
||||||
// CloseZip(hz);
|
|
||||||
//
|
|
||||||
// (2) Memory use, creating an auto-allocated mem-based zip file from various sources
|
|
||||||
// HZIP hz = CreateZip(0,100000,ZIP_MEMORY);
|
|
||||||
// // adding a conventional file...
|
|
||||||
// ZipAdd(hz,"src1.txt", "c:\\src1.txt",0,ZIP_FILENAME);
|
|
||||||
// // adding something from memory...
|
|
||||||
// char buf[1000]; for (int i=0; i<1000; i++) buf[i]=(char)(i&0x7F);
|
|
||||||
// ZipAdd(hz,"file.dat", buf,1000,ZIP_MEMORY);
|
|
||||||
// // adding something from a pipe...
|
|
||||||
// HANDLE hread,hwrite; CreatePipe(&hread,&write,NULL,0);
|
|
||||||
// HANDLE hthread = CreateThread(ThreadFunc,(void*)hwrite);
|
|
||||||
// ZipAdd(hz,"unz3.dat", hread,0,ZIP_HANDLE);
|
|
||||||
// WaitForSingleObject(hthread,INFINITE);
|
|
||||||
// CloseHandle(hthread); CloseHandle(hread);
|
|
||||||
// ... meanwhile DWORD CALLBACK ThreadFunc(void *dat)
|
|
||||||
// { HANDLE hwrite = (HANDLE)dat;
|
|
||||||
// char buf[1000]={17};
|
|
||||||
// DWORD writ; WriteFile(hwrite,buf,1000,&writ,NULL);
|
|
||||||
// CloseHandle(hwrite);
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
// // and now that the zip is created, let's do something with it:
|
|
||||||
// void *zbuf; unsigned long zlen; ZipGetMemory(hz,&zbuf,&zlen);
|
|
||||||
// HANDLE hfz = CreateFile("test2.zip",GENERIC_WRITE,CREATE_ALWAYS);
|
|
||||||
// DWORD writ; WriteFile(hfz,zbuf,zlen,&writ,NULL);
|
|
||||||
// CloseHandle(hfz);
|
|
||||||
// CloseZip(hz);
|
|
||||||
//
|
|
||||||
// (3) Handle use, for file handles and pipes
|
|
||||||
// HANDLE hzread,hzwrite; CreatePipe(&hzread,&hzwrite);
|
|
||||||
// HANDLE hthread = CreateThread(ZipReceiverThread,(void*)hread);
|
|
||||||
// HZIP hz = ZipCreate(hzwrite,ZIP_HANDLE);
|
|
||||||
// // ... add to it
|
|
||||||
// CloseZip(hz);
|
|
||||||
// CloseHandle(hzwrite);
|
|
||||||
// WaitForSingleObject(hthread,INFINITE);
|
|
||||||
// CloseHandle(hthread);
|
|
||||||
// ... meanwhile DWORD CALLBACK ThreadFunc(void *dat)
|
|
||||||
// { HANDLE hread = (HANDLE)dat;
|
|
||||||
// char buf[1000];
|
|
||||||
// while (true)
|
|
||||||
// { DWORD red; ReadFile(hread,buf,1000,&red,NULL);
|
|
||||||
// // ... and do something with this zip data we're receiving
|
|
||||||
// if (red==0) break;
|
|
||||||
// }
|
|
||||||
// CloseHandle(hread);
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
// Now we indulge in a little skullduggery so that the code works whether
|
|
||||||
// the user has included just zip or both zip and unzip.
|
|
||||||
// Idea: if header files for both zip and unzip are present, then presumably
|
|
||||||
// the cpp files for zip and unzip are both present, so we will call
|
|
||||||
// one or the other of them based on a dynamic choice. If the header file
|
|
||||||
// for only one is present, then we will bind to that particular one.
|
|
||||||
HZIP CreateZipZ(void *z,unsigned int len,DWORD flags);
|
|
||||||
ZRESULT CloseZipZ(HZIP hz);
|
|
||||||
unsigned int FormatZipMessageZ(ZRESULT code, char *buf,unsigned int len);
|
|
||||||
bool IsZipHandleZ(HZIP hz);
|
|
||||||
BOOL AddFolderContent(HZIP hZip, TCHAR* AbsolutePath, TCHAR* DirToAdd);
|
|
||||||
|
|
||||||
#define CreateZip CreateZipZ
|
|
||||||
|
|
||||||
#ifdef XUNZIP_H
|
|
||||||
#undef CloseZip
|
|
||||||
#define CloseZip(hz) (IsZipHandleZ(hz)?CloseZipZ(hz):CloseZipU(hz))
|
|
||||||
#else
|
|
||||||
#define CloseZip CloseZipZ
|
|
||||||
#define FormatZipMessage FormatZipMessageZ
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif //XZIP_H
|
|
||||||
+2
-2
@@ -68,7 +68,7 @@ static void EncryptBufferXTSParallel (unsigned __int8 *buffer,
|
|||||||
{
|
{
|
||||||
unsigned __int8 finalCarry;
|
unsigned __int8 finalCarry;
|
||||||
unsigned __int8 whiteningValues [ENCRYPTION_DATA_UNIT_SIZE];
|
unsigned __int8 whiteningValues [ENCRYPTION_DATA_UNIT_SIZE];
|
||||||
unsigned __int8 whiteningValue [BYTES_PER_XTS_BLOCK];
|
CRYPTOPP_ALIGN_DATA(16) unsigned __int8 whiteningValue [BYTES_PER_XTS_BLOCK];
|
||||||
unsigned __int8 byteBufUnitNo [BYTES_PER_XTS_BLOCK];
|
unsigned __int8 byteBufUnitNo [BYTES_PER_XTS_BLOCK];
|
||||||
unsigned __int64 *whiteningValuesPtr64 = (unsigned __int64 *) whiteningValues;
|
unsigned __int64 *whiteningValuesPtr64 = (unsigned __int64 *) whiteningValues;
|
||||||
unsigned __int64 *whiteningValuePtr64 = (unsigned __int64 *) whiteningValue;
|
unsigned __int64 *whiteningValuePtr64 = (unsigned __int64 *) whiteningValue;
|
||||||
@@ -208,7 +208,7 @@ static void EncryptBufferXTSNonParallel (unsigned __int8 *buffer,
|
|||||||
int cipher)
|
int cipher)
|
||||||
{
|
{
|
||||||
unsigned __int8 finalCarry;
|
unsigned __int8 finalCarry;
|
||||||
unsigned __int8 whiteningValue [BYTES_PER_XTS_BLOCK];
|
CRYPTOPP_ALIGN_DATA(16) unsigned __int8 whiteningValue [BYTES_PER_XTS_BLOCK];
|
||||||
unsigned __int8 byteBufUnitNo [BYTES_PER_XTS_BLOCK];
|
unsigned __int8 byteBufUnitNo [BYTES_PER_XTS_BLOCK];
|
||||||
unsigned __int64 *whiteningValuePtr64 = (unsigned __int64 *) whiteningValue;
|
unsigned __int64 *whiteningValuePtr64 = (unsigned __int64 *) whiteningValue;
|
||||||
unsigned __int64 *bufPtr = (unsigned __int64 *) buffer;
|
unsigned __int64 *bufPtr = (unsigned __int64 *) buffer;
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
|
||||||
|
|
||||||
|
The authors can be contacted at <libzip@nih.at>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
1.1.3 [2016-05-28]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix build on Windows when using autoconf.
|
||||||
|
|
||||||
|
1.1.2 [2016-02-19]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Improve support for 3MF files
|
||||||
|
|
||||||
|
1.1.1 [2016-02-07]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Build fixes for Linux
|
||||||
|
* Fix some warnings reported by PVS-Studio
|
||||||
|
|
||||||
|
1.1 [2016-01-26]
|
||||||
|
================
|
||||||
|
|
||||||
|
* ziptool(1): command line tool to modify zip archives
|
||||||
|
* Speedups for archives with many entries
|
||||||
|
* Coverity fixes
|
||||||
|
* Better APK support
|
||||||
|
* Support for running tests on Windows
|
||||||
|
* More build fixes for Windows
|
||||||
|
* Portability fixes
|
||||||
|
* Documentation improvements
|
||||||
|
|
||||||
|
1.0.1 [2015-05-04]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Build fixes for Windows.
|
||||||
|
|
||||||
|
1.0 [2015-05-03]
|
||||||
|
================
|
||||||
|
|
||||||
|
* Implemented an I/O abstraction layer.
|
||||||
|
* Added support for native Windows API for files.
|
||||||
|
* Added support for setting the last modification time for a file.
|
||||||
|
* Added a new type zip_error_t for errors.
|
||||||
|
* Added more typedefs for structs.
|
||||||
|
* Torrentzip support was removed.
|
||||||
|
* CVE-2015-2331 was fixed.
|
||||||
|
* Addressed all Coverity CIDs.
|
||||||
|
|
||||||
|
0.11.2 [2013-12-19]
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Support querying/setting operating system and external attributes.
|
||||||
|
* For newly added files, set operating system to UNIX, permissions
|
||||||
|
to 0666 (0777 for directories).
|
||||||
|
* Fix bug when writing zip archives containing files bigger than 4GB.
|
||||||
|
|
||||||
|
0.11.1 [2013-04-27]
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix bugs in zip_set_file_compression().
|
||||||
|
* Include Xcode build infrastructure.
|
||||||
|
|
||||||
|
0.11 [2013-03-23]
|
||||||
|
=================
|
||||||
|
|
||||||
|
* Added Zip64 support (large file support)
|
||||||
|
* Added UTF-8 support for file names, file comments, and archive comments
|
||||||
|
* Changed API for name and comment related functions for UTF-8 support
|
||||||
|
* Added zip_discard()
|
||||||
|
* Added ZIP_TRUNCATE for zip_open()
|
||||||
|
* Added zip_set_file_compression()
|
||||||
|
* Added API for accessing and modifying extra fields
|
||||||
|
* Improved API type consistency
|
||||||
|
* Use gcc4's visibility __attribute__
|
||||||
|
* More changes for Windows support
|
||||||
|
* Additional test cases
|
||||||
|
|
||||||
|
0.10.1 [2012-03-20]
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fixed CVE-2012-1162
|
||||||
|
* Fixed CVE-2012-1163
|
||||||
|
|
||||||
|
0.10 [2010-03-18]
|
||||||
|
=================
|
||||||
|
|
||||||
|
* Added zip_get_num_entries(), deprecated zip_get_num_files().
|
||||||
|
* Better windows support.
|
||||||
|
* Support for traditional PKWARE encryption added.
|
||||||
|
* Fix opening archives with more than 65535 entries.
|
||||||
|
* Fix some memory leaks.
|
||||||
|
* Fix cmake build and installation
|
||||||
|
* Fix memory leak in error case in zip_open()
|
||||||
|
* Fixed CVE-2011-0421 (no security implications though)
|
||||||
|
* More documentation.
|
||||||
|
|
||||||
|
0.9.3 [2010-02-01]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Include m4/ directory in distribution; some packagers need it.
|
||||||
|
|
||||||
|
0.9.2 [2010-01-31]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Avoid passing uninitialized data to deflate().
|
||||||
|
* Fix memory leak when closing zip archives.
|
||||||
|
|
||||||
|
0.9.1 [2010-01-24]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix infinite loop on reading some broken files.
|
||||||
|
* Optimization in time conversion (don't call localtime()).
|
||||||
|
* Clear data descriptor flag in central directory, fixing Open Office files.
|
||||||
|
* Allow more than 64k entries.
|
||||||
|
|
||||||
|
0.9 [2008-07-25]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* on Windows, explictly set dllimport/dllexport
|
||||||
|
* remove erroneous references to GPL
|
||||||
|
* add support for torrentzip
|
||||||
|
* new functions: zip_get_archive_flag, zip_set_archive_flag
|
||||||
|
* zip_source_zip: add flag to force recompression
|
||||||
|
* zip_sorce_file: only keep file open while reading from it
|
||||||
|
|
||||||
|
0.8 [2007-06-06]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* fix for zip archives larger than 2GiB
|
||||||
|
* fix zip_error_strerror to include libzip error string
|
||||||
|
* add support for reading streamed zip files
|
||||||
|
* new functions: zip_add_dir, zip_error_clear, zip_file_error_clear
|
||||||
|
* add basic support for building with CMake (incomplete)
|
||||||
|
|
||||||
|
0.7.1 [2006-05-18]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* bugfix for zip_close
|
||||||
|
|
||||||
|
0.7 [2006-05-06]
|
||||||
|
================
|
||||||
|
|
||||||
|
* struct zip_stat increased for future encryption support
|
||||||
|
* zip_add return value changed (now returns new index of added file)
|
||||||
|
* shared library major bump because of previous two
|
||||||
|
* added functions for reading and writing file and archive comments.
|
||||||
|
New functions: zip_get_archive_comment, zip_get_file_comment,
|
||||||
|
zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive
|
||||||
|
|
||||||
|
0.6.1 [2005-07-14]
|
||||||
|
==================
|
||||||
|
|
||||||
|
* various bug fixes
|
||||||
|
|
||||||
|
0.6 [2005-06-09]
|
||||||
|
================
|
||||||
|
|
||||||
|
* first standalone release
|
||||||
|
* changed license to three-clause BSD
|
||||||
|
* overhauled API
|
||||||
|
* added man pages
|
||||||
|
* install zipcmp and zipmerge
|
||||||
@@ -0,0 +1,181 @@
|
|||||||
|
#ifndef _HAD_LIBZIP_COMPAT_H
|
||||||
|
#define _HAD_LIBZIP_COMPAT_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
compat.h -- compatibility defines.
|
||||||
|
Copyright (C) 1999-2016 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* to have *_MAX definitions for all types when compiling with g++ */
|
||||||
|
#define __STDC_LIMIT_MACROS
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define ZIP_EXTERN __declspec(dllexport)
|
||||||
|
/* for dup(), close(), etc. */
|
||||||
|
#include <io.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STDBOOL_H
|
||||||
|
#include <stdbool.h>
|
||||||
|
#else
|
||||||
|
typedef char bool;
|
||||||
|
#define true 1
|
||||||
|
#define false 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
/* at least MinGW does not provide EOPNOTSUPP, see
|
||||||
|
* http://sourceforge.net/p/mingw/bugs/263/
|
||||||
|
*/
|
||||||
|
#ifndef EOPNOTSUPP
|
||||||
|
#define EOPNOTSUPP EINVAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* at least MinGW does not provide EOVERFLOW, see
|
||||||
|
* http://sourceforge.net/p/mingw/bugs/242/
|
||||||
|
*/
|
||||||
|
#ifndef EOVERFLOW
|
||||||
|
#define EOVERFLOW EFBIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#if defined(HAVE__CLOSE)
|
||||||
|
#define close _close
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE__DUP)
|
||||||
|
#define dup _dup
|
||||||
|
#endif
|
||||||
|
/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
|
||||||
|
#if defined(HAVE__FDOPEN)
|
||||||
|
#define fdopen _fdopen
|
||||||
|
#endif
|
||||||
|
#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
|
||||||
|
#define fileno _fileno
|
||||||
|
#endif
|
||||||
|
/* Windows' open() doesn't understand Unix permissions */
|
||||||
|
#if defined(HAVE__OPEN)
|
||||||
|
#define open(a, b, c) _open((a), (b))
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE__SNPRINTF)
|
||||||
|
#define snprintf _snprintf
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE__STRDUP)
|
||||||
|
#if !defined(HAVE_STRDUP) || defined(_WIN32)
|
||||||
|
#undef strdup
|
||||||
|
#define strdup _strdup
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
|
||||||
|
#define _setmode setmode
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_FSEEKO
|
||||||
|
#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_FTELLO
|
||||||
|
#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
|
||||||
|
#elif defined(HAVE_STRICMP)
|
||||||
|
#define strcasecmp stricmp
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SIZEOF_OFF_T == 8
|
||||||
|
#define ZIP_OFF_MAX ZIP_INT64_MAX
|
||||||
|
#define ZIP_OFF_MIN ZIP_INT64_MIN
|
||||||
|
#elif SIZEOF_OFF_T == 4
|
||||||
|
#define ZIP_OFF_MAX ZIP_INT32_MAX
|
||||||
|
#define ZIP_OFF_MIN ZIP_INT32_MIN
|
||||||
|
#elif SIZEOF_OFF_T == 2
|
||||||
|
#define ZIP_OFF_MAX ZIP_INT16_MAX
|
||||||
|
#define ZIP_OFF_MIN ZIP_INT16_MIN
|
||||||
|
#else
|
||||||
|
#error unsupported size of off_t
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
|
||||||
|
#define ZIP_FSEEK_MAX ZIP_OFF_MAX
|
||||||
|
#define ZIP_FSEEK_MIN ZIP_OFF_MIN
|
||||||
|
#else
|
||||||
|
#include <limits.h>
|
||||||
|
#define ZIP_FSEEK_MAX LONG_MAX
|
||||||
|
#define ZIP_FSEEK_MIN LONG_MIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SIZE_MAX
|
||||||
|
#if SIZEOF_SIZE_T == 8
|
||||||
|
#define SIZE_MAX ZIP_INT64_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == 4
|
||||||
|
#define SIZE_MAX ZIP_INT32_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == 2
|
||||||
|
#define SIZE_MAX ZIP_INT16_MAX
|
||||||
|
#else
|
||||||
|
#error unsupported size of size_t
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRId64
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define PRId64 "I64d"
|
||||||
|
#else
|
||||||
|
#define PRId64 "lld"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRIu64
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define PRIu64 "I64u"
|
||||||
|
#else
|
||||||
|
#define PRIu64 "llu"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef S_ISDIR
|
||||||
|
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* compat.h */
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
#ifndef HAD_CONFIG_H
|
||||||
|
#define HAD_CONFIG_H
|
||||||
|
#ifndef _HAD_ZIPCONF_H
|
||||||
|
#include "zipconf.h"
|
||||||
|
#endif
|
||||||
|
/* BEGIN DEFINES */
|
||||||
|
/* #undef HAVE___PROGNAME */
|
||||||
|
#define HAVE__CLOSE
|
||||||
|
#define HAVE__DUP
|
||||||
|
#define HAVE__FDOPEN
|
||||||
|
#define HAVE__FILENO
|
||||||
|
#define HAVE__OPEN
|
||||||
|
#define HAVE__SETMODE
|
||||||
|
#define HAVE__SNPRINTF
|
||||||
|
#define HAVE__STRDUP
|
||||||
|
#define HAVE__STRICMP
|
||||||
|
#define HAVE_FILENO
|
||||||
|
/* #undef HAVE_FSEEKO */
|
||||||
|
/* #undef HAVE_FTELLO */
|
||||||
|
/* #undef HAVE_GETPROGNAME */
|
||||||
|
#define HAVE_OPEN
|
||||||
|
/* #undef HAVE_MKSTEMP */
|
||||||
|
#define HAVE_SETMODE
|
||||||
|
/* #undef HAVE_SNPRINTF */
|
||||||
|
/* #undef HAVE_SSIZE_T_LIBZIP */
|
||||||
|
/* #undef HAVE_STRCASECMP */
|
||||||
|
#define HAVE_STRDUP
|
||||||
|
#define HAVE_STRICMP
|
||||||
|
/* #undef HAVE_STRUCT_TM_TM_ZONE */
|
||||||
|
/* #undef HAVE_STDBOOL_H */
|
||||||
|
/* #undef HAVE_STRINGS_H */
|
||||||
|
/* #undef HAVE_UNISTD_H */
|
||||||
|
#define __INT8_LIBZIP 1
|
||||||
|
#define INT8_T_LIBZIP 1
|
||||||
|
#define UINT8_T_LIBZIP 1
|
||||||
|
#define __INT16_LIBZIP 2
|
||||||
|
#define INT16_T_LIBZIP 2
|
||||||
|
#define UINT16_T_LIBZIP 2
|
||||||
|
#define __INT32_LIBZIP 4
|
||||||
|
#define INT32_T_LIBZIP 4
|
||||||
|
#define UINT32_T_LIBZIP 4
|
||||||
|
#define __INT64_LIBZIP 8
|
||||||
|
#define INT64_T_LIBZIP 8
|
||||||
|
#define UINT64_T_LIBZIP 8
|
||||||
|
#define SIZEOF_OFF_T 4
|
||||||
|
#ifdef _WIN64
|
||||||
|
#define SIZE_T_LIBZIP 8
|
||||||
|
#else
|
||||||
|
#define SIZE_T_LIBZIP 4
|
||||||
|
#endif
|
||||||
|
/* #undef SSIZE_T_LIBZIP */
|
||||||
|
/* #undef HAVE_DIRENT_H */
|
||||||
|
/* #undef HAVE_NDIR_H */
|
||||||
|
/* #undef HAVE_SYS_DIR_H */
|
||||||
|
/* #undef HAVE_SYS_NDIR_H */
|
||||||
|
/* END DEFINES */
|
||||||
|
#define PACKAGE "libzip"
|
||||||
|
#define VERSION "1.1.3"
|
||||||
|
|
||||||
|
#ifndef HAVE_SSIZE_T_LIBZIP
|
||||||
|
# if SIZE_T_LIBZIP == INT_LIBZIP
|
||||||
|
typedef int ssize_t;
|
||||||
|
# elif SIZE_T_LIBZIP == LONG_LIBZIP
|
||||||
|
typedef long ssize_t;
|
||||||
|
# elif SIZE_T_LIBZIP == LONG_LONG_LIBZIP
|
||||||
|
typedef long long ssize_t;
|
||||||
|
# else
|
||||||
|
#error no suitable type for ssize_t found
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* HAD_CONFIG_H */
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
/* Adapted from NetBSB libc by Dieter Baron */
|
||||||
|
|
||||||
|
/* NetBSD: gettemp.c,v 1.13 2003/12/05 00:57:36 uebayasi Exp */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1987, 1993
|
||||||
|
* The Regents of the University of California. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <io.h>
|
||||||
|
#endif
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifndef O_BINARY
|
||||||
|
#define O_BINARY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_mkstemp(char *path)
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
int ret;
|
||||||
|
ret = _creat(_mktemp(path), _S_IREAD|_S_IWRITE);
|
||||||
|
if (ret == -1) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
int fd;
|
||||||
|
char *start, *trv;
|
||||||
|
struct stat sbuf;
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
/* To guarantee multiple calls generate unique names even if
|
||||||
|
the file is not created. 676 different possibilities with 7
|
||||||
|
or more X's, 26 with 6 or less. */
|
||||||
|
static char xtra[2] = "aa";
|
||||||
|
int xcnt = 0;
|
||||||
|
|
||||||
|
pid = getpid();
|
||||||
|
|
||||||
|
/* Move to end of path and count trailing X's. */
|
||||||
|
for (trv = path; *trv; ++trv)
|
||||||
|
if (*trv == 'X')
|
||||||
|
xcnt++;
|
||||||
|
else
|
||||||
|
xcnt = 0;
|
||||||
|
|
||||||
|
/* Use at least one from xtra. Use 2 if more than 6 X's. */
|
||||||
|
if (*(trv - 1) == 'X')
|
||||||
|
*--trv = xtra[0];
|
||||||
|
if (xcnt > 6 && *(trv - 1) == 'X')
|
||||||
|
*--trv = xtra[1];
|
||||||
|
|
||||||
|
/* Set remaining X's to pid digits with 0's to the left. */
|
||||||
|
while (*--trv == 'X') {
|
||||||
|
*trv = (pid % 10) + '0';
|
||||||
|
pid /= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* update xtra for next call. */
|
||||||
|
if (xtra[0] != 'z')
|
||||||
|
xtra[0]++;
|
||||||
|
else {
|
||||||
|
xtra[0] = 'a';
|
||||||
|
if (xtra[1] != 'z')
|
||||||
|
xtra[1]++;
|
||||||
|
else
|
||||||
|
xtra[1] = 'a';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* check the target directory; if you have six X's and it
|
||||||
|
* doesn't exist this runs for a *very* long time.
|
||||||
|
*/
|
||||||
|
for (start = trv + 1;; --trv) {
|
||||||
|
if (trv <= path)
|
||||||
|
break;
|
||||||
|
if (*trv == '/') {
|
||||||
|
*trv = '\0';
|
||||||
|
if (stat(path, &sbuf))
|
||||||
|
return (0);
|
||||||
|
if (!S_ISDIR(sbuf.st_mode)) {
|
||||||
|
errno = ENOTDIR;
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
*trv = '/';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
if ((fd=open(path, O_CREAT|O_EXCL|O_RDWR|O_BINARY, 0600)) >= 0)
|
||||||
|
return (fd);
|
||||||
|
if (errno != EEXIST)
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
/* tricky little algorithm for backward compatibility */
|
||||||
|
for (trv = start;;) {
|
||||||
|
if (!*trv)
|
||||||
|
return (0);
|
||||||
|
if (*trv == 'z')
|
||||||
|
*trv++ = 'a';
|
||||||
|
else {
|
||||||
|
if (isdigit((unsigned char)*trv))
|
||||||
|
*trv = 'a';
|
||||||
|
else
|
||||||
|
++*trv;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*NOTREACHED*/
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@@ -0,0 +1,422 @@
|
|||||||
|
#ifndef _HAD_ZIP_H
|
||||||
|
#define _HAD_ZIP_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
zip.h -- exported declarations.
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef ZIP_EXTERN
|
||||||
|
# ifndef ZIP_STATIC
|
||||||
|
# ifdef _WIN32
|
||||||
|
# define ZIP_EXTERN __declspec(dllimport)
|
||||||
|
# elif defined(__GNUC__) && __GNUC__ >= 4
|
||||||
|
# define ZIP_EXTERN __attribute__ ((visibility ("default")))
|
||||||
|
# else
|
||||||
|
# define ZIP_EXTERN
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define ZIP_EXTERN
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#if 0
|
||||||
|
} /* fix autoindent */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <zipconf.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
/* flags for zip_open */
|
||||||
|
|
||||||
|
#define ZIP_CREATE 1
|
||||||
|
#define ZIP_EXCL 2
|
||||||
|
#define ZIP_CHECKCONS 4
|
||||||
|
#define ZIP_TRUNCATE 8
|
||||||
|
#define ZIP_RDONLY 16
|
||||||
|
|
||||||
|
|
||||||
|
/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
|
||||||
|
|
||||||
|
#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
|
||||||
|
#define ZIP_FL_NODIR 2u /* ignore directory component */
|
||||||
|
#define ZIP_FL_COMPRESSED 4u /* read compressed data */
|
||||||
|
#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
|
||||||
|
#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
|
||||||
|
#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
|
||||||
|
#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
|
||||||
|
#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
|
||||||
|
#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
|
||||||
|
#define ZIP_FL_LOCAL 256u /* in local header */
|
||||||
|
#define ZIP_FL_CENTRAL 512u /* in central directory */
|
||||||
|
/* 1024u reserved for internal use */
|
||||||
|
#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
|
||||||
|
#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
|
||||||
|
#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
|
||||||
|
|
||||||
|
/* archive global flags flags */
|
||||||
|
|
||||||
|
#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
|
||||||
|
|
||||||
|
|
||||||
|
/* create a new extra field */
|
||||||
|
|
||||||
|
#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
|
||||||
|
#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
|
||||||
|
|
||||||
|
|
||||||
|
/* libzip error codes */
|
||||||
|
|
||||||
|
#define ZIP_ER_OK 0 /* N No error */
|
||||||
|
#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
|
||||||
|
#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
|
||||||
|
#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
|
||||||
|
#define ZIP_ER_SEEK 4 /* S Seek error */
|
||||||
|
#define ZIP_ER_READ 5 /* S Read error */
|
||||||
|
#define ZIP_ER_WRITE 6 /* S Write error */
|
||||||
|
#define ZIP_ER_CRC 7 /* N CRC error */
|
||||||
|
#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
|
||||||
|
#define ZIP_ER_NOENT 9 /* N No such file */
|
||||||
|
#define ZIP_ER_EXISTS 10 /* N File already exists */
|
||||||
|
#define ZIP_ER_OPEN 11 /* S Can't open file */
|
||||||
|
#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
|
||||||
|
#define ZIP_ER_ZLIB 13 /* Z Zlib error */
|
||||||
|
#define ZIP_ER_MEMORY 14 /* N Malloc failure */
|
||||||
|
#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
|
||||||
|
#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
|
||||||
|
#define ZIP_ER_EOF 17 /* N Premature end of file */
|
||||||
|
#define ZIP_ER_INVAL 18 /* N Invalid argument */
|
||||||
|
#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
|
||||||
|
#define ZIP_ER_INTERNAL 20 /* N Internal error */
|
||||||
|
#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
|
||||||
|
#define ZIP_ER_REMOVE 22 /* S Can't remove file */
|
||||||
|
#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
|
||||||
|
#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
|
||||||
|
#define ZIP_ER_RDONLY 25 /* N Read-only archive */
|
||||||
|
#define ZIP_ER_NOPASSWD 26 /* N No password provided */
|
||||||
|
#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
|
||||||
|
#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
|
||||||
|
#define ZIP_ER_INUSE 29 /* N Resource still in use */
|
||||||
|
#define ZIP_ER_TELL 30 /* S Tell error */
|
||||||
|
|
||||||
|
/* type of system error value */
|
||||||
|
|
||||||
|
#define ZIP_ET_NONE 0 /* sys_err unused */
|
||||||
|
#define ZIP_ET_SYS 1 /* sys_err is errno */
|
||||||
|
#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
|
||||||
|
|
||||||
|
/* compression methods */
|
||||||
|
|
||||||
|
#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
|
||||||
|
#define ZIP_CM_STORE 0 /* stored (uncompressed) */
|
||||||
|
#define ZIP_CM_SHRINK 1 /* shrunk */
|
||||||
|
#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
|
||||||
|
#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
|
||||||
|
#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
|
||||||
|
#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
|
||||||
|
#define ZIP_CM_IMPLODE 6 /* imploded */
|
||||||
|
/* 7 - Reserved for Tokenizing compression algorithm */
|
||||||
|
#define ZIP_CM_DEFLATE 8 /* deflated */
|
||||||
|
#define ZIP_CM_DEFLATE64 9 /* deflate64 */
|
||||||
|
#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
|
||||||
|
/* 11 - Reserved by PKWARE */
|
||||||
|
#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
|
||||||
|
/* 13 - Reserved by PKWARE */
|
||||||
|
#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
|
||||||
|
/* 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_WAVPACK 97 /* WavPack compressed data */
|
||||||
|
#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
|
||||||
|
|
||||||
|
/* encryption methods */
|
||||||
|
|
||||||
|
#define ZIP_EM_NONE 0 /* not encrypted */
|
||||||
|
#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
|
||||||
|
#if 0 /* Strong Encryption Header not parsed yet */
|
||||||
|
#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
|
||||||
|
#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
|
||||||
|
#define ZIP_EM_3DES_168 0x6603
|
||||||
|
#define ZIP_EM_3DES_112 0x6609
|
||||||
|
#define ZIP_EM_AES_128 0x660e
|
||||||
|
#define ZIP_EM_AES_192 0x660f
|
||||||
|
#define ZIP_EM_AES_256 0x6610
|
||||||
|
#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
|
||||||
|
#define ZIP_EM_RC4 0x6801
|
||||||
|
#endif
|
||||||
|
#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
|
||||||
|
|
||||||
|
#define ZIP_OPSYS_DOS 0x00u
|
||||||
|
#define ZIP_OPSYS_AMIGA 0x01u
|
||||||
|
#define ZIP_OPSYS_OPENVMS 0x02u
|
||||||
|
#define ZIP_OPSYS_UNIX 0x03u
|
||||||
|
#define ZIP_OPSYS_VM_CMS 0x04u
|
||||||
|
#define ZIP_OPSYS_ATARI_ST 0x05u
|
||||||
|
#define ZIP_OPSYS_OS_2 0x06u
|
||||||
|
#define ZIP_OPSYS_MACINTOSH 0x07u
|
||||||
|
#define ZIP_OPSYS_Z_SYSTEM 0x08u
|
||||||
|
#define ZIP_OPSYS_CPM 0x09u
|
||||||
|
#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
|
||||||
|
#define ZIP_OPSYS_MVS 0x0bu
|
||||||
|
#define ZIP_OPSYS_VSE 0x0cu
|
||||||
|
#define ZIP_OPSYS_ACORN_RISC 0x0du
|
||||||
|
#define ZIP_OPSYS_VFAT 0x0eu
|
||||||
|
#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
|
||||||
|
#define ZIP_OPSYS_BEOS 0x10u
|
||||||
|
#define ZIP_OPSYS_TANDEM 0x11u
|
||||||
|
#define ZIP_OPSYS_OS_400 0x12u
|
||||||
|
#define ZIP_OPSYS_OS_X 0x13u
|
||||||
|
|
||||||
|
#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
|
||||||
|
|
||||||
|
|
||||||
|
enum zip_source_cmd {
|
||||||
|
ZIP_SOURCE_OPEN, /* prepare for reading */
|
||||||
|
ZIP_SOURCE_READ, /* read data */
|
||||||
|
ZIP_SOURCE_CLOSE, /* reading is done */
|
||||||
|
ZIP_SOURCE_STAT, /* get meta information */
|
||||||
|
ZIP_SOURCE_ERROR, /* get error information */
|
||||||
|
ZIP_SOURCE_FREE, /* cleanup and free resources */
|
||||||
|
ZIP_SOURCE_SEEK, /* set position for reading */
|
||||||
|
ZIP_SOURCE_TELL, /* get read position */
|
||||||
|
ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
|
||||||
|
ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
|
||||||
|
ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
|
||||||
|
ZIP_SOURCE_WRITE, /* write data */
|
||||||
|
ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
|
||||||
|
ZIP_SOURCE_TELL_WRITE, /* get write position */
|
||||||
|
ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
|
||||||
|
ZIP_SOURCE_REMOVE /* remove file */
|
||||||
|
};
|
||||||
|
typedef enum zip_source_cmd zip_source_cmd_t;
|
||||||
|
|
||||||
|
#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (1<<(cmd))
|
||||||
|
|
||||||
|
#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
|
||||||
|
|
||||||
|
#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
|
||||||
|
|
||||||
|
#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
|
||||||
|
| ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
|
||||||
|
|
||||||
|
/* for use by sources */
|
||||||
|
struct zip_source_args_seek {
|
||||||
|
zip_int64_t offset;
|
||||||
|
int whence;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct zip_source_args_seek zip_source_args_seek_t;
|
||||||
|
#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type *)NULL : (type *)(data))
|
||||||
|
|
||||||
|
|
||||||
|
/* error information */
|
||||||
|
/* use zip_error_*() to access */
|
||||||
|
struct zip_error {
|
||||||
|
int zip_err; /* libzip error code (ZIP_ER_*) */
|
||||||
|
int sys_err; /* copy of errno (E*) or zlib error code */
|
||||||
|
char *str; /* string representation or NULL */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ZIP_STAT_NAME 0x0001u
|
||||||
|
#define ZIP_STAT_INDEX 0x0002u
|
||||||
|
#define ZIP_STAT_SIZE 0x0004u
|
||||||
|
#define ZIP_STAT_COMP_SIZE 0x0008u
|
||||||
|
#define ZIP_STAT_MTIME 0x0010u
|
||||||
|
#define ZIP_STAT_CRC 0x0020u
|
||||||
|
#define ZIP_STAT_COMP_METHOD 0x0040u
|
||||||
|
#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
|
||||||
|
#define ZIP_STAT_FLAGS 0x0100u
|
||||||
|
|
||||||
|
struct zip_stat {
|
||||||
|
zip_uint64_t valid; /* which fields have valid values */
|
||||||
|
const char *name; /* name of the file */
|
||||||
|
zip_uint64_t index; /* index within archive */
|
||||||
|
zip_uint64_t size; /* size of file (uncompressed) */
|
||||||
|
zip_uint64_t comp_size; /* size of file (compressed) */
|
||||||
|
time_t mtime; /* modification time */
|
||||||
|
zip_uint32_t crc; /* crc of file data */
|
||||||
|
zip_uint16_t comp_method; /* compression method used */
|
||||||
|
zip_uint16_t encryption_method; /* encryption method used */
|
||||||
|
zip_uint32_t flags; /* reserved for future use */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct zip;
|
||||||
|
struct zip_file;
|
||||||
|
struct zip_source;
|
||||||
|
|
||||||
|
typedef struct zip zip_t;
|
||||||
|
typedef struct zip_error zip_error_t;
|
||||||
|
typedef struct zip_file zip_file_t;
|
||||||
|
typedef struct zip_source zip_source_t;
|
||||||
|
typedef struct zip_stat zip_stat_t;
|
||||||
|
|
||||||
|
typedef zip_uint32_t zip_flags_t;
|
||||||
|
|
||||||
|
typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t);
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef ZIP_DISABLE_DEPRECATED
|
||||||
|
ZIP_EXTERN zip_int64_t zip_add(zip_t *, const char *, zip_source_t *); /* use zip_file_add */
|
||||||
|
ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *, const char *); /* use zip_dir_add */
|
||||||
|
ZIP_EXTERN const char *zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
|
||||||
|
ZIP_EXTERN int zip_get_num_files(zip_t *); /* use zip_get_num_entries instead */
|
||||||
|
ZIP_EXTERN int zip_rename(zip_t *, zip_uint64_t, const char *); /* use zip_file_rename */
|
||||||
|
ZIP_EXTERN int zip_replace(zip_t *, zip_uint64_t, zip_source_t *); /* use zip_file_replace */
|
||||||
|
ZIP_EXTERN int zip_set_file_comment(zip_t *, zip_uint64_t, const char *, int); /* use zip_file_set_comment */
|
||||||
|
ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
|
||||||
|
ZIP_EXTERN void zip_error_get(zip_t *, int *, int *); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
|
||||||
|
ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
|
||||||
|
ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ZIP_EXTERN int zip_archive_set_tempdir(zip_t *, const char *);
|
||||||
|
ZIP_EXTERN int zip_close(zip_t *);
|
||||||
|
ZIP_EXTERN int zip_delete(zip_t *, zip_uint64_t);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *, const char *, zip_flags_t);
|
||||||
|
ZIP_EXTERN void zip_discard(zip_t *);
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_error_t *zip_get_error(zip_t *);
|
||||||
|
ZIP_EXTERN void zip_error_clear(zip_t *);
|
||||||
|
ZIP_EXTERN int zip_error_code_zip(const zip_error_t *);
|
||||||
|
ZIP_EXTERN int zip_error_code_system(const zip_error_t *);
|
||||||
|
ZIP_EXTERN void zip_error_fini(zip_error_t *);
|
||||||
|
ZIP_EXTERN void zip_error_init(zip_error_t *);
|
||||||
|
ZIP_EXTERN void zip_error_init_with_code(zip_error_t *, int);
|
||||||
|
ZIP_EXTERN void zip_error_set(zip_error_t *, int, int);
|
||||||
|
ZIP_EXTERN const char *zip_error_strerror(zip_error_t *);
|
||||||
|
ZIP_EXTERN int zip_error_system_type(const zip_error_t *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *, void *, zip_uint64_t);
|
||||||
|
|
||||||
|
ZIP_EXTERN int zip_fclose(zip_file_t *);
|
||||||
|
ZIP_EXTERN zip_t *zip_fdopen(int, int, int *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_file_add(zip_t *, const char *, zip_source_t *, zip_flags_t);
|
||||||
|
ZIP_EXTERN void zip_file_error_clear(zip_file_t *);
|
||||||
|
ZIP_EXTERN int zip_file_extra_field_delete(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN int zip_file_extra_field_set(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *, zip_uint64_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
|
||||||
|
ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
|
||||||
|
ZIP_EXTERN const char *zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_error_t *zip_file_get_error(zip_file_t *);
|
||||||
|
ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *);
|
||||||
|
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_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);
|
||||||
|
ZIP_EXTERN const char *zip_file_strerror(zip_file_t *);
|
||||||
|
ZIP_EXTERN zip_file_t *zip_fopen(zip_t *, const char *, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *);
|
||||||
|
ZIP_EXTERN zip_file_t *zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_file_t *zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *, void *, zip_uint64_t);
|
||||||
|
ZIP_EXTERN const char *zip_get_archive_comment(zip_t *, int *, zip_flags_t);
|
||||||
|
ZIP_EXTERN int zip_get_archive_flag(zip_t *, zip_flags_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN const char *zip_get_name(zip_t *, zip_uint64_t, zip_flags_t);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t);
|
||||||
|
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_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 *);
|
||||||
|
ZIP_EXTERN int zip_set_file_compression(zip_t *, zip_uint64_t, zip_int32_t, zip_uint32_t);
|
||||||
|
ZIP_EXTERN int zip_source_begin_write(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t, int);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *);
|
||||||
|
ZIP_EXTERN int zip_source_close(zip_source_t *);
|
||||||
|
ZIP_EXTERN int zip_source_commit_write(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_error_t *zip_source_error(zip_source_t *src);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *);
|
||||||
|
ZIP_EXTERN void zip_source_free(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_function(zip_t *, zip_source_callback, void *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_function_create(zip_source_callback, void *, zip_error_t *);
|
||||||
|
ZIP_EXTERN int zip_source_is_deleted(zip_source_t *);
|
||||||
|
ZIP_EXTERN void zip_source_keep(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
|
||||||
|
ZIP_EXTERN int zip_source_open(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *, void *, zip_uint64_t);
|
||||||
|
ZIP_EXTERN void zip_source_rollback_write(zip_source_t *);
|
||||||
|
ZIP_EXTERN int zip_source_seek(zip_source_t *, zip_int64_t, int);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *, zip_uint64_t, zip_error_t *);
|
||||||
|
ZIP_EXTERN int zip_source_seek_write(zip_source_t *, zip_int64_t, int);
|
||||||
|
ZIP_EXTERN int zip_source_stat(zip_source_t *, zip_stat_t *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *);
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *);
|
||||||
|
#ifdef _WIN32
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32handle(zip_t *, void *, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32handle_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *);
|
||||||
|
#endif
|
||||||
|
ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t);
|
||||||
|
ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
|
||||||
|
ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *);
|
||||||
|
ZIP_EXTERN int zip_stat_index(zip_t *, zip_uint64_t, zip_flags_t, zip_stat_t *);
|
||||||
|
ZIP_EXTERN void zip_stat_init(zip_stat_t *);
|
||||||
|
ZIP_EXTERN const char *zip_strerror(zip_t *);
|
||||||
|
ZIP_EXTERN int zip_unchange(zip_t *, zip_uint64_t);
|
||||||
|
ZIP_EXTERN int zip_unchange_all(zip_t *);
|
||||||
|
ZIP_EXTERN int zip_unchange_archive(zip_t *);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _HAD_ZIP_H */
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
zip_add.c -- add file via callback function
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define _ZIP_COMPILING_DEPRECATED
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
NOTE: Return type is signed so we can return -1 on error.
|
||||||
|
The index can not be larger than ZIP_INT64_MAX since the size
|
||||||
|
of the central directory cannot be larger than
|
||||||
|
ZIP_UINT64_MAX, and each entry is larger than 2 bytes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_int64_t
|
||||||
|
zip_add(zip_t *za, const char *name, zip_source_t *source)
|
||||||
|
{
|
||||||
|
return zip_file_add(za, name, source, 0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
zip_add_dir.c -- add directory
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define _ZIP_COMPILING_DEPRECATED
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_int64_t
|
||||||
|
zip_add_dir(zip_t *za, const char *name)
|
||||||
|
{
|
||||||
|
return zip_dir_add(za, name, 0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
zip_add_entry.c -- create and init struct zip_entry
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */
|
||||||
|
|
||||||
|
zip_int64_t
|
||||||
|
_zip_add_entry(zip_t *za)
|
||||||
|
{
|
||||||
|
zip_uint64_t idx;
|
||||||
|
|
||||||
|
if (za->nentry+1 >= za->nentry_alloc) {
|
||||||
|
zip_entry_t *rentries;
|
||||||
|
zip_uint64_t nalloc = za->nentry_alloc;
|
||||||
|
zip_uint64_t additional_entries = 2 * nalloc;
|
||||||
|
zip_uint64_t realloc_size;
|
||||||
|
|
||||||
|
if (additional_entries < 16) {
|
||||||
|
additional_entries = 16;
|
||||||
|
}
|
||||||
|
else if (additional_entries > 1024) {
|
||||||
|
additional_entries = 1024;
|
||||||
|
}
|
||||||
|
/* neither + nor * overflows can happen: nentry_alloc * sizeof(struct zip_entry) < UINT64_MAX */
|
||||||
|
nalloc += additional_entries;
|
||||||
|
realloc_size = sizeof(struct zip_entry) * (size_t)nalloc;
|
||||||
|
|
||||||
|
if (sizeof(struct zip_entry) * (size_t)za->nentry_alloc > realloc_size) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
rentries = (zip_entry_t *)realloc(za->entry, sizeof(struct zip_entry) * (size_t)nalloc);
|
||||||
|
if (!rentries) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
za->entry = rentries;
|
||||||
|
za->nentry_alloc = nalloc;
|
||||||
|
}
|
||||||
|
|
||||||
|
idx = za->nentry++;
|
||||||
|
|
||||||
|
_zip_entry_init(za->entry+idx);
|
||||||
|
|
||||||
|
return (zip_int64_t)idx;
|
||||||
|
}
|
||||||
@@ -0,0 +1,321 @@
|
|||||||
|
/*
|
||||||
|
zip_buffer.c -- bounds checked access to memory buffer
|
||||||
|
Copyright (C) 2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
zip_uint8_t *
|
||||||
|
_zip_buffer_data(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_buffer_free(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
if (buffer == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buffer->free_data) {
|
||||||
|
free(buffer->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
_zip_buffer_eof(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->ok && buffer->offset == buffer->size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint8_t *
|
||||||
|
_zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data;
|
||||||
|
|
||||||
|
if (!buffer->ok || buffer->offset + length < length || buffer->offset + length > buffer->size) {
|
||||||
|
buffer->ok = false;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
data = buffer->data + buffer->offset;
|
||||||
|
buffer->offset += length;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint16_t
|
||||||
|
_zip_buffer_get_16(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 2);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (zip_uint16_t)(data[0] + (data[1] << 8));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint32_t
|
||||||
|
_zip_buffer_get_32(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 4);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ((((((zip_uint32_t)data[3] << 8) + data[2]) << 8) + data[1]) << 8) + data[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint64_t
|
||||||
|
_zip_buffer_get_64(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 8);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ((zip_uint64_t)data[7] << 56) + ((zip_uint64_t)data[6] << 48) + ((zip_uint64_t)data[5] << 40) + ((zip_uint64_t)data[4] << 32) + ((zip_uint64_t)data[3] << 24) + ((zip_uint64_t)data[2] << 16) + ((zip_uint64_t)data[1] << 8) + (zip_uint64_t)data[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint8_t
|
||||||
|
_zip_buffer_get_8(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 1);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return data[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint64_t
|
||||||
|
_zip_buffer_left(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->ok ? buffer->size - buffer->offset : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_buffer_t *
|
||||||
|
_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size)
|
||||||
|
{
|
||||||
|
bool free_data = (data == NULL);
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
if ((data = (zip_uint8_t *)malloc(size)) == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buffer = (zip_buffer_t *)malloc(sizeof(*buffer))) == NULL) {
|
||||||
|
if (free_data) {
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer->ok = true;
|
||||||
|
buffer->data = data;
|
||||||
|
buffer->size = size;
|
||||||
|
buffer->offset = 0;
|
||||||
|
buffer->free_data = free_data;
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_buffer_t *
|
||||||
|
_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error)
|
||||||
|
{
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new(buf, size)) == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_MEMORY, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_zip_read(src, buffer->data, size, error) < 0) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_uint64_t
|
||||||
|
_zip_buffer_offset(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->ok ? buffer->offset : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
_zip_buffer_ok(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length)
|
||||||
|
{
|
||||||
|
zip_uint8_t *dst = _zip_buffer_get(buffer, length);
|
||||||
|
|
||||||
|
if (dst == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(dst, src, length);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 2);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data[0] = (zip_uint8_t)(i & 0xff);
|
||||||
|
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 4);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data[0] = (zip_uint8_t)(i & 0xff);
|
||||||
|
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
|
||||||
|
data[2] = (zip_uint8_t)((i >> 16) & 0xff);
|
||||||
|
data[3] = (zip_uint8_t)((i >> 24) & 0xff);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 8);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data[0] = (zip_uint8_t)(i & 0xff);
|
||||||
|
data[1] = (zip_uint8_t)((i >> 8) & 0xff);
|
||||||
|
data[2] = (zip_uint8_t)((i >> 16) & 0xff);
|
||||||
|
data[3] = (zip_uint8_t)((i >> 24) & 0xff);
|
||||||
|
data[4] = (zip_uint8_t)((i >> 32) & 0xff);
|
||||||
|
data[5] = (zip_uint8_t)((i >> 40) & 0xff);
|
||||||
|
data[6] = (zip_uint8_t)((i >> 48) & 0xff);
|
||||||
|
data[7] = (zip_uint8_t)((i >> 56) & 0xff);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i)
|
||||||
|
{
|
||||||
|
zip_uint8_t *data = _zip_buffer_get(buffer, 1);
|
||||||
|
|
||||||
|
if (data == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data[0] = i;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset)
|
||||||
|
{
|
||||||
|
if (offset > buffer->size) {
|
||||||
|
buffer->ok = false;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer->ok = true;
|
||||||
|
buffer->offset = offset;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length) {
|
||||||
|
zip_uint64_t offset = buffer->offset + length;
|
||||||
|
|
||||||
|
if (offset < buffer->offset) {
|
||||||
|
buffer->ok = false;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return _zip_buffer_set_offset(buffer, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
zip_uint64_t
|
||||||
|
_zip_buffer_size(zip_buffer_t *buffer)
|
||||||
|
{
|
||||||
|
return buffer->size;
|
||||||
|
}
|
||||||
@@ -0,0 +1,492 @@
|
|||||||
|
/*
|
||||||
|
zip_close.c -- close zip archive and update changes
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#ifdef HAVE_STRINGS_H
|
||||||
|
#include <strings.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* max deflate size increase: size + ceil(size/16k)*5+6 */
|
||||||
|
#define MAX_DEFLATE_SIZE_32 4293656963u
|
||||||
|
|
||||||
|
static int add_data(zip_t *, zip_source_t *, zip_dirent_t *);
|
||||||
|
static int copy_data(zip_t *, zip_uint64_t);
|
||||||
|
static int copy_source(zip_t *, zip_source_t *);
|
||||||
|
static int write_cdir(zip_t *, const zip_filelist_t *, zip_uint64_t);
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_close(zip_t *za)
|
||||||
|
{
|
||||||
|
zip_uint64_t i, j, survivors;
|
||||||
|
zip_int64_t off;
|
||||||
|
int error;
|
||||||
|
zip_filelist_t *filelist;
|
||||||
|
int changed;
|
||||||
|
|
||||||
|
if (za == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
changed = _zip_changed(za, &survivors);
|
||||||
|
|
||||||
|
/* don't create zip files with no entries */
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zip_discard(za);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!changed) {
|
||||||
|
zip_discard(za);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (survivors > za->nentry) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((filelist=(zip_filelist_t *)malloc(sizeof(filelist[0])*(size_t)survivors)) == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* create list of files with index into original archive */
|
||||||
|
for (i=j=0; i<za->nentry; i++) {
|
||||||
|
if (za->entry[i].deleted)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (j >= survivors) {
|
||||||
|
free(filelist);
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
filelist[j].idx = i;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
if (j < survivors) {
|
||||||
|
free(filelist);
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (zip_source_begin_write(za->src) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, 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;
|
||||||
|
|
||||||
|
i = filelist[j].idx;
|
||||||
|
entry = za->entry+i;
|
||||||
|
|
||||||
|
new_data = (ZIP_ENTRY_DATA_CHANGED(entry) || ZIP_ENTRY_CHANGED(entry, ZIP_DIRENT_COMP_METHOD));
|
||||||
|
|
||||||
|
/* create new local directory entry */
|
||||||
|
if (entry->changes == NULL) {
|
||||||
|
if ((entry->changes=_zip_dirent_clone(entry->orig)) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
de = entry->changes;
|
||||||
|
|
||||||
|
if (_zip_read_local_ef(za, i) < 0) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((off = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
de->offset = (zip_uint64_t)off;
|
||||||
|
|
||||||
|
if (new_data) {
|
||||||
|
zip_source_t *zs;
|
||||||
|
|
||||||
|
zs = NULL;
|
||||||
|
if (!ZIP_ENTRY_DATA_CHANGED(entry)) {
|
||||||
|
if ((zs=_zip_source_zip_new(za, za, i, ZIP_FL_UNCHANGED, 0, 0, NULL)) == NULL) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add_data writes dirent */
|
||||||
|
if (add_data(za, zs ? zs : entry->source, de) < 0) {
|
||||||
|
error = 1;
|
||||||
|
if (zs)
|
||||||
|
zip_source_free(zs);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (zs)
|
||||||
|
zip_source_free(zs);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
zip_uint64_t offset;
|
||||||
|
|
||||||
|
/* when copying data, all sizes are known -> no data descriptor needed */
|
||||||
|
de->bitflags &= (zip_uint16_t)~ZIP_GPBF_DATA_DESCRIPTOR;
|
||||||
|
if (_zip_dirent_write(za, de, ZIP_FL_LOCAL) < 0) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((offset=_zip_file_get_offset(za, i, &za->error)) == 0) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (zip_source_seek(za->src, (zip_int64_t)offset, SEEK_SET) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (copy_data(za, de->comp_size) < 0) {
|
||||||
|
error = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!error) {
|
||||||
|
if (write_cdir(za, filelist, survivors) < 0)
|
||||||
|
error = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(filelist);
|
||||||
|
|
||||||
|
if (!error) {
|
||||||
|
if (zip_source_commit_write(za->src) != 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
error = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
zip_source_rollback_write(za->src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
zip_discard(za);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de)
|
||||||
|
{
|
||||||
|
zip_int64_t offstart, offdata, offend;
|
||||||
|
struct zip_stat st;
|
||||||
|
zip_source_t *s2;
|
||||||
|
int ret;
|
||||||
|
int is_zip64;
|
||||||
|
zip_flags_t flags;
|
||||||
|
|
||||||
|
if (zip_source_stat(src, &st) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((st.valid & ZIP_STAT_COMP_METHOD) == 0) {
|
||||||
|
st.valid |= ZIP_STAT_COMP_METHOD;
|
||||||
|
st.comp_method = ZIP_CM_STORE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method != ZIP_CM_STORE)
|
||||||
|
de->comp_method = st.comp_method;
|
||||||
|
else if (de->comp_method == ZIP_CM_STORE && (st.valid & ZIP_STAT_SIZE)) {
|
||||||
|
st.valid |= ZIP_STAT_COMP_SIZE;
|
||||||
|
st.comp_size = st.size;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* we'll recompress */
|
||||||
|
st.valid &= ~ZIP_STAT_COMP_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
flags = ZIP_EF_LOCAL;
|
||||||
|
|
||||||
|
if ((st.valid & ZIP_STAT_SIZE) == 0)
|
||||||
|
flags |= ZIP_FL_FORCE_ZIP64;
|
||||||
|
else {
|
||||||
|
de->uncomp_size = st.size;
|
||||||
|
|
||||||
|
if ((st.valid & ZIP_STAT_COMP_SIZE) == 0) {
|
||||||
|
if (( ((de->comp_method == ZIP_CM_DEFLATE || ZIP_CM_IS_DEFAULT(de->comp_method)) && st.size > MAX_DEFLATE_SIZE_32)
|
||||||
|
|| (de->comp_method != ZIP_CM_STORE && de->comp_method != ZIP_CM_DEFLATE && !ZIP_CM_IS_DEFAULT(de->comp_method))))
|
||||||
|
flags |= ZIP_FL_FORCE_ZIP64;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
de->comp_size = st.comp_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((offstart = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* as long as we don't support non-seekable output, clear data descriptor bit */
|
||||||
|
de->bitflags &= (zip_uint16_t)~ZIP_GPBF_DATA_DESCRIPTOR;
|
||||||
|
if ((is_zip64=_zip_dirent_write(za, de, flags)) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
|
||||||
|
if (st.comp_method == ZIP_CM_STORE || (ZIP_CM_IS_DEFAULT(de->comp_method) && st.comp_method != de->comp_method)) {
|
||||||
|
zip_source_t *s_store, *s_crc;
|
||||||
|
zip_compression_implementation comp_impl;
|
||||||
|
|
||||||
|
if (st.comp_method != ZIP_CM_STORE) {
|
||||||
|
if ((comp_impl=_zip_get_compression_implementation(st.comp_method)) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if ((s_store=comp_impl(za, src, st.comp_method, ZIP_CODEC_DECODE)) == NULL) {
|
||||||
|
/* error set by comp_impl */
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* to have the same reference count to src as in the case where it's not stored */
|
||||||
|
zip_source_keep(src);
|
||||||
|
s_store = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
s_crc = zip_source_crc(za, s_store, 0);
|
||||||
|
zip_source_free(s_store);
|
||||||
|
if (s_crc == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (de->comp_method != ZIP_CM_STORE && ((st.valid & ZIP_STAT_SIZE) == 0 || st.size != 0)) {
|
||||||
|
if ((comp_impl=_zip_get_compression_implementation(de->comp_method)) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_COMPNOTSUPP, 0);
|
||||||
|
zip_source_free(s_crc);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
s2 = comp_impl(za, s_crc, de->comp_method, ZIP_CODEC_ENCODE);
|
||||||
|
zip_source_free(s_crc);
|
||||||
|
if (s2 == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
s2 = s_crc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
zip_source_keep(src);
|
||||||
|
s2 = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((offdata = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = copy_source(za, s2);
|
||||||
|
|
||||||
|
if (zip_source_stat(s2, &st) < 0)
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
|
zip_source_free(s2);
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if ((offend = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (zip_source_seek_write(za->src, offstart, SEEK_SET) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((st.valid & (ZIP_STAT_COMP_METHOD|ZIP_STAT_CRC|ZIP_STAT_SIZE)) != (ZIP_STAT_COMP_METHOD|ZIP_STAT_CRC|ZIP_STAT_SIZE)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((de->changed & ZIP_DIRENT_LAST_MOD) == 0) {
|
||||||
|
if (st.valid & ZIP_STAT_MTIME)
|
||||||
|
de->last_mod = st.mtime;
|
||||||
|
else
|
||||||
|
time(&de->last_mod);
|
||||||
|
}
|
||||||
|
de->comp_method = st.comp_method;
|
||||||
|
de->crc = st.crc;
|
||||||
|
de->uncomp_size = st.size;
|
||||||
|
de->comp_size = (zip_uint64_t)(offend - offdata);
|
||||||
|
|
||||||
|
if ((ret=_zip_dirent_write(za, de, flags)) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (is_zip64 != ret) {
|
||||||
|
/* Zip64 mismatch between preliminary file header written before data and final file header written afterwards */
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (zip_source_seek_write(za->src, offend, SEEK_SET) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
copy_data(zip_t *za, zip_uint64_t len)
|
||||||
|
{
|
||||||
|
zip_uint8_t buf[BUFSIZE];
|
||||||
|
size_t n;
|
||||||
|
|
||||||
|
while (len > 0) {
|
||||||
|
n = len > sizeof(buf) ? sizeof(buf) : len;
|
||||||
|
if (_zip_read(za->src, buf, n, &za->error) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_zip_write(za, buf, n) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
len -= n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
copy_source(zip_t *za, zip_source_t *src)
|
||||||
|
{
|
||||||
|
zip_uint8_t buf[BUFSIZE];
|
||||||
|
zip_int64_t n;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (zip_source_open(src) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
while ((n=zip_source_read(src, buf, sizeof(buf))) > 0) {
|
||||||
|
if (_zip_write(za, buf, (zip_uint64_t)n) < 0) {
|
||||||
|
ret = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, src);
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
zip_source_close(src);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
write_cdir(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors)
|
||||||
|
{
|
||||||
|
zip_int64_t cd_start, end, size;
|
||||||
|
|
||||||
|
if ((cd_start = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((size=_zip_cdir_write(za, filelist, survivors)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((end = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_changed(const zip_t *za, zip_uint64_t *survivorsp)
|
||||||
|
{
|
||||||
|
int changed;
|
||||||
|
zip_uint64_t i, survivors;
|
||||||
|
|
||||||
|
changed = 0;
|
||||||
|
survivors = 0;
|
||||||
|
|
||||||
|
if (za->comment_changed || za->ch_flags != za->flags)
|
||||||
|
changed = 1;
|
||||||
|
|
||||||
|
for (i=0; i<za->nentry; i++) {
|
||||||
|
if (za->entry[i].deleted || za->entry[i].source || (za->entry[i].changes && za->entry[i].changes->changed != 0))
|
||||||
|
changed = 1;
|
||||||
|
if (!za->entry[i].deleted)
|
||||||
|
survivors++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (survivorsp)
|
||||||
|
*survivorsp = survivors;
|
||||||
|
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
zip_delete.c -- delete file from zip archive
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_delete(zip_t *za, zip_uint64_t idx)
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
if (idx >= za->nentry) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INVAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ZIP_IS_RDONLY(za)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_RDONLY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((name=_zip_get_name(za, idx, 0, &za->error)) == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_hash_delete(za->names, (const zip_uint8_t *)name, &za->error)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* allow duplicate file names, because the file will
|
||||||
|
* be removed directly afterwards */
|
||||||
|
if (_zip_unchange(za, idx, 1) != 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
za->entry[idx].deleted = 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
zip_dir_add.c -- add directory
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* NOTE: Signed due to -1 on error. See zip_add.c for more details. */
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_int64_t
|
||||||
|
zip_dir_add(zip_t *za, const char *name, zip_flags_t flags)
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
zip_int64_t idx;
|
||||||
|
char *s;
|
||||||
|
zip_source_t *source;
|
||||||
|
|
||||||
|
if (ZIP_IS_RDONLY(za)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_RDONLY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INVAL, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s = NULL;
|
||||||
|
len = strlen(name);
|
||||||
|
|
||||||
|
if (name[len-1] != '/') {
|
||||||
|
if ((s=(char *)malloc(len+2)) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
strcpy(s, name);
|
||||||
|
s[len] = '/';
|
||||||
|
s[len+1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((source=zip_source_buffer(za, NULL, 0, 0)) == NULL) {
|
||||||
|
free(s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
idx = _zip_file_replace(za, ZIP_UINT64_MAX, s ? s : name, source, flags);
|
||||||
|
|
||||||
|
free(s);
|
||||||
|
|
||||||
|
if (idx < 0)
|
||||||
|
zip_source_free(source);
|
||||||
|
else {
|
||||||
|
if (zip_file_set_external_attributes(za, (zip_uint64_t)idx, 0, ZIP_OPSYS_DEFAULT, ZIP_EXT_ATTRIB_DEFAULT_DIR) < 0) {
|
||||||
|
zip_delete(za, (zip_uint64_t)idx);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
@@ -0,0 +1,913 @@
|
|||||||
|
/*
|
||||||
|
zip_dirent.c -- read directory entry (local or central), clean dirent
|
||||||
|
Copyright (C) 1999-2016 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#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 *);
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_cdir_free(zip_cdir_t *cd)
|
||||||
|
{
|
||||||
|
zip_uint64_t i;
|
||||||
|
|
||||||
|
if (!cd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i=0; i<cd->nentry; i++)
|
||||||
|
_zip_entry_finalize(cd->entry+i);
|
||||||
|
free(cd->entry);
|
||||||
|
_zip_string_free(cd->comment);
|
||||||
|
free(cd);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_cdir_t *
|
||||||
|
_zip_cdir_new(zip_uint64_t nentry, zip_error_t *error)
|
||||||
|
{
|
||||||
|
zip_cdir_t *cd;
|
||||||
|
zip_uint64_t i;
|
||||||
|
|
||||||
|
if ((cd=(zip_cdir_t *)malloc(sizeof(*cd))) == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_MEMORY, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nentry == 0)
|
||||||
|
cd->entry = NULL;
|
||||||
|
else if ((nentry > SIZE_MAX/sizeof(*(cd->entry))) || (cd->entry=(zip_entry_t *)malloc(sizeof(*(cd->entry))*(size_t)nentry)) == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_MEMORY, 0);
|
||||||
|
free(cd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0; i<nentry; i++)
|
||||||
|
_zip_entry_init(cd->entry+i);
|
||||||
|
|
||||||
|
cd->nentry = cd->nentry_alloc = nentry;
|
||||||
|
cd->size = cd->offset = 0;
|
||||||
|
cd->comment = NULL;
|
||||||
|
|
||||||
|
return cd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_int64_t
|
||||||
|
_zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors)
|
||||||
|
{
|
||||||
|
zip_uint64_t offset, size;
|
||||||
|
zip_string_t *comment;
|
||||||
|
zip_uint8_t buf[EOCDLEN + EOCD64LEN + EOCD64LOCLEN];
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
zip_int64_t off;
|
||||||
|
zip_uint64_t i;
|
||||||
|
bool is_zip64;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if ((off = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
offset = (zip_uint64_t)off;
|
||||||
|
|
||||||
|
is_zip64 = false;
|
||||||
|
|
||||||
|
for (i=0; i<survivors; i++) {
|
||||||
|
zip_entry_t *entry = za->entry+filelist[i].idx;
|
||||||
|
|
||||||
|
if ((ret=_zip_dirent_write(za, entry->changes ? entry->changes : entry->orig, ZIP_FL_CENTRAL)) < 0)
|
||||||
|
return -1;
|
||||||
|
if (ret)
|
||||||
|
is_zip64 = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((off = zip_source_tell_write(za->src)) < 0) {
|
||||||
|
_zip_error_set_from_source(&za->error, za->src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
size = (zip_uint64_t)off - offset;
|
||||||
|
|
||||||
|
if (offset > ZIP_UINT32_MAX || survivors > ZIP_UINT16_MAX)
|
||||||
|
is_zip64 = true;
|
||||||
|
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new(buf, sizeof(buf))) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_zip64) {
|
||||||
|
_zip_buffer_put(buffer, EOCD64_MAGIC, 4);
|
||||||
|
_zip_buffer_put_64(buffer, EOCD64LEN-12);
|
||||||
|
_zip_buffer_put_16(buffer, 45);
|
||||||
|
_zip_buffer_put_16(buffer, 45);
|
||||||
|
_zip_buffer_put_32(buffer, 0);
|
||||||
|
_zip_buffer_put_32(buffer, 0);
|
||||||
|
_zip_buffer_put_64(buffer, survivors);
|
||||||
|
_zip_buffer_put_64(buffer, survivors);
|
||||||
|
_zip_buffer_put_64(buffer, size);
|
||||||
|
_zip_buffer_put_64(buffer, offset);
|
||||||
|
_zip_buffer_put(buffer, EOCD64LOC_MAGIC, 4);
|
||||||
|
_zip_buffer_put_32(buffer, 0);
|
||||||
|
_zip_buffer_put_64(buffer, offset+size);
|
||||||
|
_zip_buffer_put_32(buffer, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_put(buffer, EOCD_MAGIC, 4);
|
||||||
|
_zip_buffer_put_32(buffer, 0);
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)(survivors >= ZIP_UINT16_MAX ? ZIP_UINT16_MAX : survivors));
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)(survivors >= ZIP_UINT16_MAX ? ZIP_UINT16_MAX : survivors));
|
||||||
|
_zip_buffer_put_32(buffer, size >= ZIP_UINT32_MAX ? ZIP_UINT32_MAX : (zip_uint32_t)size);
|
||||||
|
_zip_buffer_put_32(buffer, offset >= ZIP_UINT32_MAX ? ZIP_UINT32_MAX : (zip_uint32_t)offset);
|
||||||
|
|
||||||
|
comment = za->comment_changed ? za->comment_changes : za->comment_orig;
|
||||||
|
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)(comment ? comment->length : 0));
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(buffer)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_zip_write(za, _zip_buffer_data(buffer), _zip_buffer_offset(buffer)) < 0) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
|
||||||
|
if (comment) {
|
||||||
|
if (_zip_write(za, comment->raw, comment->length) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (zip_int64_t)size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_dirent_t *
|
||||||
|
_zip_dirent_clone(const zip_dirent_t *sde)
|
||||||
|
{
|
||||||
|
zip_dirent_t *tde;
|
||||||
|
|
||||||
|
if ((tde=(zip_dirent_t *)malloc(sizeof(*tde))) == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (sde)
|
||||||
|
memcpy(tde, sde, sizeof(*sde));
|
||||||
|
else
|
||||||
|
_zip_dirent_init(tde);
|
||||||
|
|
||||||
|
tde->changed = 0;
|
||||||
|
tde->cloned = 1;
|
||||||
|
|
||||||
|
return tde;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_dirent_finalize(zip_dirent_t *zde)
|
||||||
|
{
|
||||||
|
if (!zde->cloned || zde->changed & ZIP_DIRENT_FILENAME) {
|
||||||
|
_zip_string_free(zde->filename);
|
||||||
|
zde->filename = NULL;
|
||||||
|
}
|
||||||
|
if (!zde->cloned || zde->changed & ZIP_DIRENT_EXTRA_FIELD) {
|
||||||
|
_zip_ef_free(zde->extra_fields);
|
||||||
|
zde->extra_fields = NULL;
|
||||||
|
}
|
||||||
|
if (!zde->cloned || zde->changed & ZIP_DIRENT_COMMENT) {
|
||||||
|
_zip_string_free(zde->comment);
|
||||||
|
zde->comment = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_dirent_free(zip_dirent_t *zde)
|
||||||
|
{
|
||||||
|
if (zde == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_zip_dirent_finalize(zde);
|
||||||
|
free(zde);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_dirent_init(zip_dirent_t *de)
|
||||||
|
{
|
||||||
|
de->changed = 0;
|
||||||
|
de->local_extra_fields_read = 0;
|
||||||
|
de->cloned = 0;
|
||||||
|
|
||||||
|
de->version_madeby = 20 | (ZIP_OPSYS_DEFAULT << 8);
|
||||||
|
de->version_needed = 20; /* 2.0 */
|
||||||
|
de->bitflags = 0;
|
||||||
|
de->comp_method = ZIP_CM_DEFAULT;
|
||||||
|
de->last_mod = 0;
|
||||||
|
de->crc = 0;
|
||||||
|
de->comp_size = 0;
|
||||||
|
de->uncomp_size = 0;
|
||||||
|
de->filename = NULL;
|
||||||
|
de->extra_fields = NULL;
|
||||||
|
de->comment = NULL;
|
||||||
|
de->disk_number = 0;
|
||||||
|
de->int_attrib = 0;
|
||||||
|
de->ext_attrib = ZIP_EXT_ATTRIB_DEFAULT;
|
||||||
|
de->offset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
_zip_dirent_needs_zip64(const zip_dirent_t *de, zip_flags_t flags)
|
||||||
|
{
|
||||||
|
if (de->uncomp_size >= ZIP_UINT32_MAX || de->comp_size >= ZIP_UINT32_MAX
|
||||||
|
|| ((flags & ZIP_FL_CENTRAL) && de->offset >= ZIP_UINT32_MAX))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_dirent_t *
|
||||||
|
_zip_dirent_new(void)
|
||||||
|
{
|
||||||
|
zip_dirent_t *de;
|
||||||
|
|
||||||
|
if ((de=(zip_dirent_t *)malloc(sizeof(*de))) == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
_zip_dirent_init(de);
|
||||||
|
return de;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* _zip_dirent_read(zde, fp, bufp, left, localp, error):
|
||||||
|
Fills the zip directory entry zde.
|
||||||
|
|
||||||
|
If buffer is non-NULL, data is taken from there; otherwise data is read from fp as needed.
|
||||||
|
|
||||||
|
If local is true, it reads a local header instead of a central directory entry.
|
||||||
|
|
||||||
|
Returns size of dirent read if successful. On error, error is filled in and -1 is returned.
|
||||||
|
*/
|
||||||
|
|
||||||
|
zip_int64_t
|
||||||
|
_zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, bool local, zip_error_t *error)
|
||||||
|
{
|
||||||
|
zip_uint8_t buf[CDENTRYSIZE];
|
||||||
|
zip_uint16_t dostime, dosdate;
|
||||||
|
zip_uint32_t size, variable_size;
|
||||||
|
zip_uint16_t filename_len, comment_len, ef_len;
|
||||||
|
|
||||||
|
bool from_buffer = (buffer != NULL);
|
||||||
|
|
||||||
|
size = local ? LENTRYSIZE : CDENTRYSIZE;
|
||||||
|
|
||||||
|
if (buffer) {
|
||||||
|
if (_zip_buffer_left(buffer) < size) {
|
||||||
|
zip_error_set(error, ZIP_ER_NOZIP, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((buffer = _zip_buffer_new_from_source(src, size, buf, error)) == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(_zip_buffer_get(buffer, 4), (local ? LOCAL_MAGIC : CENTRAL_MAGIC), 4) != 0) {
|
||||||
|
zip_error_set(error, ZIP_ER_NOZIP, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* convert buffercontents to zip_dirent */
|
||||||
|
|
||||||
|
_zip_dirent_init(zde);
|
||||||
|
if (!local)
|
||||||
|
zde->version_madeby = _zip_buffer_get_16(buffer);
|
||||||
|
else
|
||||||
|
zde->version_madeby = 0;
|
||||||
|
zde->version_needed = _zip_buffer_get_16(buffer);
|
||||||
|
zde->bitflags = _zip_buffer_get_16(buffer);
|
||||||
|
zde->comp_method = _zip_buffer_get_16(buffer);
|
||||||
|
|
||||||
|
/* convert to time_t */
|
||||||
|
dostime = _zip_buffer_get_16(buffer);
|
||||||
|
dosdate = _zip_buffer_get_16(buffer);
|
||||||
|
zde->last_mod = _zip_d2u_time(dostime, dosdate);
|
||||||
|
|
||||||
|
zde->crc = _zip_buffer_get_32(buffer);
|
||||||
|
zde->comp_size = _zip_buffer_get_32(buffer);
|
||||||
|
zde->uncomp_size = _zip_buffer_get_32(buffer);
|
||||||
|
|
||||||
|
filename_len = _zip_buffer_get_16(buffer);
|
||||||
|
ef_len = _zip_buffer_get_16(buffer);
|
||||||
|
|
||||||
|
if (local) {
|
||||||
|
comment_len = 0;
|
||||||
|
zde->disk_number = 0;
|
||||||
|
zde->int_attrib = 0;
|
||||||
|
zde->ext_attrib = 0;
|
||||||
|
zde->offset = 0;
|
||||||
|
} else {
|
||||||
|
comment_len = _zip_buffer_get_16(buffer);
|
||||||
|
zde->disk_number = _zip_buffer_get_16(buffer);
|
||||||
|
zde->int_attrib = _zip_buffer_get_16(buffer);
|
||||||
|
zde->ext_attrib = _zip_buffer_get_32(buffer);
|
||||||
|
zde->offset = _zip_buffer_get_32(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(buffer)) {
|
||||||
|
zip_error_set(error, ZIP_ER_INTERNAL, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
zde->filename = NULL;
|
||||||
|
zde->extra_fields = NULL;
|
||||||
|
zde->comment = NULL;
|
||||||
|
|
||||||
|
variable_size = (zip_uint32_t)filename_len+(zip_uint32_t)ef_len+(zip_uint32_t)comment_len;
|
||||||
|
|
||||||
|
if (from_buffer) {
|
||||||
|
if (_zip_buffer_left(buffer) < variable_size) {
|
||||||
|
zip_error_set(error, ZIP_ER_INCONS, 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new_from_source(src, variable_size, NULL, error)) == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filename_len) {
|
||||||
|
zde->filename = _zip_read_string(buffer, src, filename_len, 1, error);
|
||||||
|
if (!zde->filename) {
|
||||||
|
if (zip_error_code_zip(error) == ZIP_ER_EOF) {
|
||||||
|
zip_error_set(error, ZIP_ER_INCONS, 0);
|
||||||
|
}
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (zde->bitflags & ZIP_GPBF_ENCODING_UTF_8) {
|
||||||
|
if (_zip_guess_encoding(zde->filename, ZIP_ENCODING_UTF8_KNOWN) == ZIP_ENCODING_ERROR) {
|
||||||
|
zip_error_set(error, ZIP_ER_INCONS, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ef_len) {
|
||||||
|
zip_uint8_t *ef = _zip_read_data(buffer, src, ef_len, 0, error);
|
||||||
|
|
||||||
|
if (ef == NULL) {
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (!_zip_ef_parse(ef, ef_len, local ? ZIP_EF_LOCAL : ZIP_EF_CENTRAL, &zde->extra_fields, error)) {
|
||||||
|
free(ef);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
free(ef);
|
||||||
|
if (local)
|
||||||
|
zde->local_extra_fields_read = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (comment_len) {
|
||||||
|
zde->comment = _zip_read_string(buffer, src, comment_len, 0, error);
|
||||||
|
if (!zde->comment) {
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (zde->bitflags & ZIP_GPBF_ENCODING_UTF_8) {
|
||||||
|
if (_zip_guess_encoding(zde->comment, ZIP_ENCODING_UTF8_KNOWN) == ZIP_ENCODING_ERROR) {
|
||||||
|
zip_error_set(error, ZIP_ER_INCONS, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
zde->filename = _zip_dirent_process_ef_utf_8(zde, ZIP_EF_UTF_8_NAME, zde->filename);
|
||||||
|
zde->comment = _zip_dirent_process_ef_utf_8(zde, ZIP_EF_UTF_8_COMMENT, zde->comment);
|
||||||
|
|
||||||
|
/* Zip64 */
|
||||||
|
|
||||||
|
if (zde->uncomp_size == ZIP_UINT32_MAX || zde->comp_size == ZIP_UINT32_MAX || zde->offset == ZIP_UINT32_MAX) {
|
||||||
|
zip_uint16_t got_len;
|
||||||
|
zip_buffer_t *ef_buffer;
|
||||||
|
const zip_uint8_t *ef = _zip_ef_get_by_id(zde->extra_fields, &got_len, ZIP_EF_ZIP64, 0, local ? ZIP_EF_LOCAL : ZIP_EF_CENTRAL, error);
|
||||||
|
/* TODO: if got_len == 0 && !ZIP64_EOCD: no error, 0xffffffff is valid value */
|
||||||
|
if (ef == NULL) {
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ef_buffer = _zip_buffer_new((zip_uint8_t *)ef, got_len)) == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_MEMORY, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (zde->uncomp_size == ZIP_UINT32_MAX)
|
||||||
|
zde->uncomp_size = _zip_buffer_get_64(ef_buffer);
|
||||||
|
else if (local) {
|
||||||
|
/* From appnote.txt: This entry in the Local header MUST
|
||||||
|
include BOTH original and compressed file size fields. */
|
||||||
|
(void)_zip_buffer_skip(ef_buffer, 8); /* error is caught by _zip_buffer_eof() call */
|
||||||
|
}
|
||||||
|
if (zde->comp_size == ZIP_UINT32_MAX)
|
||||||
|
zde->comp_size = _zip_buffer_get_64(ef_buffer);
|
||||||
|
if (!local) {
|
||||||
|
if (zde->offset == ZIP_UINT32_MAX)
|
||||||
|
zde->offset = _zip_buffer_get_64(ef_buffer);
|
||||||
|
if (zde->disk_number == ZIP_UINT16_MAX)
|
||||||
|
zde->disk_number = _zip_buffer_get_32(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_eof(ef_buffer)) {
|
||||||
|
zip_error_set(error, ZIP_ER_INCONS, 0);
|
||||||
|
_zip_buffer_free(ef_buffer);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
_zip_buffer_free(ef_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(buffer)) {
|
||||||
|
zip_error_set(error, ZIP_ER_INTERNAL, 0);
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (!from_buffer) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* zip_source_seek / zip_source_tell don't support values > ZIP_INT64_MAX */
|
||||||
|
if (zde->offset > ZIP_INT64_MAX) {
|
||||||
|
zip_error_set(error, ZIP_ER_SEEK, EFBIG);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
zde->extra_fields = _zip_ef_remove_internal(zde->extra_fields);
|
||||||
|
|
||||||
|
return (zip_int64_t)(size + variable_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static zip_string_t *
|
||||||
|
_zip_dirent_process_ef_utf_8(const zip_dirent_t *de, zip_uint16_t id, zip_string_t *str)
|
||||||
|
{
|
||||||
|
zip_uint16_t ef_len;
|
||||||
|
zip_uint32_t ef_crc;
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
|
||||||
|
const zip_uint8_t *ef = _zip_ef_get_by_id(de->extra_fields, &ef_len, id, 0, ZIP_EF_BOTH, NULL);
|
||||||
|
|
||||||
|
if (ef == NULL || ef_len < 5 || ef[0] != 1) {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new((zip_uint8_t *)ef, ef_len)) == NULL) {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_get_8(buffer);
|
||||||
|
ef_crc = _zip_buffer_get_32(buffer);
|
||||||
|
|
||||||
|
if (_zip_string_crc32(str) == ef_crc) {
|
||||||
|
zip_uint16_t len = (zip_uint16_t)_zip_buffer_left(buffer);
|
||||||
|
zip_string_t *ef_str = _zip_string_new(_zip_buffer_get(buffer, len), len, ZIP_FL_ENC_UTF_8, NULL);
|
||||||
|
|
||||||
|
if (ef_str != NULL) {
|
||||||
|
_zip_string_free(str);
|
||||||
|
str = ef_str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_int32_t
|
||||||
|
_zip_dirent_size(zip_source_t *src, zip_uint16_t flags, zip_error_t *error)
|
||||||
|
{
|
||||||
|
zip_int32_t size;
|
||||||
|
bool local = (flags & ZIP_EF_LOCAL) != 0;
|
||||||
|
int i;
|
||||||
|
zip_uint8_t b[6];
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
|
||||||
|
size = local ? LENTRYSIZE : CDENTRYSIZE;
|
||||||
|
|
||||||
|
if (zip_source_seek(src, local ? 26 : 28, SEEK_CUR) < 0) {
|
||||||
|
_zip_error_set_from_source(error, src);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new_from_source(src, local ? 4 : 6, b, error)) == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0; i<(local ? 2 : 3); i++) {
|
||||||
|
size += _zip_buffer_get_16(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_eof(buffer)) {
|
||||||
|
zip_error_set(error, ZIP_ER_INTERNAL, 0);
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* _zip_dirent_write
|
||||||
|
Writes zip directory entry.
|
||||||
|
|
||||||
|
If flags & ZIP_EF_LOCAL, it writes a local header instead of a central
|
||||||
|
directory entry. If flags & ZIP_EF_FORCE_ZIP64, a ZIP64 extra field is written, even if not needed.
|
||||||
|
|
||||||
|
Returns 0 if successful, 1 if successful and wrote ZIP64 extra field. On error, error is filled in and -1 is
|
||||||
|
returned.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int
|
||||||
|
_zip_dirent_write(zip_t *za, zip_dirent_t *de, zip_flags_t flags)
|
||||||
|
{
|
||||||
|
zip_uint16_t dostime, dosdate;
|
||||||
|
zip_encoding_type_t com_enc, name_enc;
|
||||||
|
zip_extra_field_t *ef;
|
||||||
|
zip_extra_field_t *ef64;
|
||||||
|
zip_uint32_t ef_total_size;
|
||||||
|
bool is_zip64;
|
||||||
|
bool is_really_zip64;
|
||||||
|
zip_uint8_t buf[CDENTRYSIZE];
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
|
||||||
|
ef = NULL;
|
||||||
|
|
||||||
|
name_enc = _zip_guess_encoding(de->filename, ZIP_ENCODING_UNKNOWN);
|
||||||
|
com_enc = _zip_guess_encoding(de->comment, ZIP_ENCODING_UNKNOWN);
|
||||||
|
|
||||||
|
if ((name_enc == ZIP_ENCODING_UTF8_KNOWN && com_enc == ZIP_ENCODING_ASCII) ||
|
||||||
|
(name_enc == ZIP_ENCODING_ASCII && com_enc == ZIP_ENCODING_UTF8_KNOWN) ||
|
||||||
|
(name_enc == ZIP_ENCODING_UTF8_KNOWN && com_enc == ZIP_ENCODING_UTF8_KNOWN))
|
||||||
|
de->bitflags |= ZIP_GPBF_ENCODING_UTF_8;
|
||||||
|
else {
|
||||||
|
de->bitflags &= (zip_uint16_t)~ZIP_GPBF_ENCODING_UTF_8;
|
||||||
|
if (name_enc == ZIP_ENCODING_UTF8_KNOWN) {
|
||||||
|
ef = _zip_ef_utf8(ZIP_EF_UTF_8_NAME, de->filename, &za->error);
|
||||||
|
if (ef == NULL)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if ((flags & ZIP_FL_LOCAL) == 0 && com_enc == ZIP_ENCODING_UTF8_KNOWN){
|
||||||
|
zip_extra_field_t *ef2 = _zip_ef_utf8(ZIP_EF_UTF_8_COMMENT, de->comment, &za->error);
|
||||||
|
if (ef2 == NULL) {
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
ef2->next = ef;
|
||||||
|
ef = ef2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is_really_zip64 = _zip_dirent_needs_zip64(de, flags);
|
||||||
|
is_zip64 = (flags & (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64)) == (ZIP_FL_LOCAL|ZIP_FL_FORCE_ZIP64) || is_really_zip64;
|
||||||
|
|
||||||
|
if (is_zip64) {
|
||||||
|
zip_uint8_t ef_zip64[EFZIP64SIZE];
|
||||||
|
zip_buffer_t *ef_buffer = _zip_buffer_new(ef_zip64, sizeof(ef_zip64));
|
||||||
|
if (ef_buffer == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & ZIP_FL_LOCAL) {
|
||||||
|
if ((flags & ZIP_FL_FORCE_ZIP64) || de->comp_size > ZIP_UINT32_MAX || de->uncomp_size > ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_64(ef_buffer, de->uncomp_size);
|
||||||
|
_zip_buffer_put_64(ef_buffer, de->comp_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((flags & ZIP_FL_FORCE_ZIP64) || de->comp_size > ZIP_UINT32_MAX || de->uncomp_size > ZIP_UINT32_MAX || de->offset > ZIP_UINT32_MAX) {
|
||||||
|
if (de->uncomp_size >= ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_64(ef_buffer, de->uncomp_size);
|
||||||
|
}
|
||||||
|
if (de->comp_size >= ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_64(ef_buffer, de->comp_size);
|
||||||
|
}
|
||||||
|
if (de->offset >= ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_64(ef_buffer, de->offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(ef_buffer)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
_zip_buffer_free(ef_buffer);
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ef64 = _zip_ef_new(ZIP_EF_ZIP64, (zip_uint16_t)(_zip_buffer_offset(ef_buffer)), ef_zip64, ZIP_EF_BOTH);
|
||||||
|
_zip_buffer_free(ef_buffer);
|
||||||
|
ef64->next = ef;
|
||||||
|
ef = ef64;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new(buf, sizeof(buf))) == NULL) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_put(buffer, (flags & ZIP_FL_LOCAL) ? LOCAL_MAGIC : CENTRAL_MAGIC, 4);
|
||||||
|
|
||||||
|
if ((flags & ZIP_FL_LOCAL) == 0) {
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)(is_really_zip64 ? 45 : de->version_madeby));
|
||||||
|
}
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)(is_really_zip64 ? 45 : de->version_needed));
|
||||||
|
_zip_buffer_put_16(buffer, de->bitflags&0xfff9); /* clear compression method specific flags */
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)de->comp_method);
|
||||||
|
|
||||||
|
_zip_u2d_time(de->last_mod, &dostime, &dosdate);
|
||||||
|
_zip_buffer_put_16(buffer, dostime);
|
||||||
|
_zip_buffer_put_16(buffer, dosdate);
|
||||||
|
|
||||||
|
_zip_buffer_put_32(buffer, de->crc);
|
||||||
|
|
||||||
|
if (((flags & ZIP_FL_LOCAL) == ZIP_FL_LOCAL) && ((de->comp_size >= ZIP_UINT32_MAX) || (de->uncomp_size >= ZIP_UINT32_MAX))) {
|
||||||
|
/* In local headers, if a ZIP64 EF is written, it MUST contain
|
||||||
|
* both compressed and uncompressed sizes (even if one of the
|
||||||
|
* two is smaller than 0xFFFFFFFF); on the other hand, those
|
||||||
|
* may only appear when the corresponding standard entry is
|
||||||
|
* 0xFFFFFFFF. (appnote.txt 4.5.3) */
|
||||||
|
_zip_buffer_put_32(buffer, ZIP_UINT32_MAX);
|
||||||
|
_zip_buffer_put_32(buffer, ZIP_UINT32_MAX);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (de->comp_size < ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_32(buffer, (zip_uint32_t)de->comp_size);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_zip_buffer_put_32(buffer, ZIP_UINT32_MAX);
|
||||||
|
}
|
||||||
|
if (de->uncomp_size < ZIP_UINT32_MAX) {
|
||||||
|
_zip_buffer_put_32(buffer, (zip_uint32_t)de->uncomp_size);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_zip_buffer_put_32(buffer, ZIP_UINT32_MAX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_put_16(buffer, _zip_string_length(de->filename));
|
||||||
|
/* TODO: check for overflow */
|
||||||
|
ef_total_size = (zip_uint32_t)_zip_ef_size(de->extra_fields, flags) + (zip_uint32_t)_zip_ef_size(ef, ZIP_EF_BOTH);
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)ef_total_size);
|
||||||
|
|
||||||
|
if ((flags & ZIP_FL_LOCAL) == 0) {
|
||||||
|
_zip_buffer_put_16(buffer, _zip_string_length(de->comment));
|
||||||
|
_zip_buffer_put_16(buffer, (zip_uint16_t)de->disk_number);
|
||||||
|
_zip_buffer_put_16(buffer, de->int_attrib);
|
||||||
|
_zip_buffer_put_32(buffer, de->ext_attrib);
|
||||||
|
if (de->offset < ZIP_UINT32_MAX)
|
||||||
|
_zip_buffer_put_32(buffer, (zip_uint32_t)de->offset);
|
||||||
|
else
|
||||||
|
_zip_buffer_put_32(buffer, ZIP_UINT32_MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(buffer)) {
|
||||||
|
zip_error_set(&za->error, ZIP_ER_INTERNAL, 0);
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_zip_write(za, buf, _zip_buffer_offset(buffer)) < 0) {
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
|
||||||
|
if (de->filename) {
|
||||||
|
if (_zip_string_write(za, de->filename) < 0) {
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ef) {
|
||||||
|
if (_zip_ef_write(za, ef, ZIP_EF_BOTH) < 0) {
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_zip_ef_free(ef);
|
||||||
|
if (de->extra_fields) {
|
||||||
|
if (_zip_ef_write(za, de->extra_fields, flags) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((flags & ZIP_FL_LOCAL) == 0) {
|
||||||
|
if (de->comment) {
|
||||||
|
if (_zip_string_write(za, de->comment) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return is_zip64;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static time_t
|
||||||
|
_zip_d2u_time(zip_uint16_t dtime, zip_uint16_t ddate)
|
||||||
|
{
|
||||||
|
struct tm tm;
|
||||||
|
|
||||||
|
memset(&tm, 0, sizeof(tm));
|
||||||
|
|
||||||
|
/* let mktime decide if DST is in effect */
|
||||||
|
tm.tm_isdst = -1;
|
||||||
|
|
||||||
|
tm.tm_year = ((ddate>>9)&127) + 1980 - 1900;
|
||||||
|
tm.tm_mon = ((ddate>>5)&15) - 1;
|
||||||
|
tm.tm_mday = ddate&31;
|
||||||
|
|
||||||
|
tm.tm_hour = (dtime>>11)&31;
|
||||||
|
tm.tm_min = (dtime>>5)&63;
|
||||||
|
tm.tm_sec = (dtime<<1)&62;
|
||||||
|
|
||||||
|
return mktime(&tm);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static zip_extra_field_t *
|
||||||
|
_zip_ef_utf8(zip_uint16_t id, zip_string_t *str, zip_error_t *error)
|
||||||
|
{
|
||||||
|
const zip_uint8_t *raw;
|
||||||
|
zip_uint32_t len;
|
||||||
|
zip_buffer_t *buffer;
|
||||||
|
zip_extra_field_t *ef;
|
||||||
|
|
||||||
|
if ((raw=_zip_string_get(str, &len, ZIP_FL_ENC_RAW, NULL)) == NULL) {
|
||||||
|
/* error already set */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (len+5 > ZIP_UINT16_MAX) {
|
||||||
|
zip_error_set(error, ZIP_ER_INVAL, 0); /* TODO: better error code? */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buffer = _zip_buffer_new(NULL, len+5)) == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_MEMORY, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
_zip_buffer_put_8(buffer, 1);
|
||||||
|
_zip_buffer_put_32(buffer, _zip_string_crc32(str));
|
||||||
|
_zip_buffer_put(buffer, raw, len);
|
||||||
|
|
||||||
|
if (!_zip_buffer_ok(buffer)) {
|
||||||
|
zip_error_set(error, ZIP_ER_INTERNAL, 0);
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ef = _zip_ef_new(id, (zip_uint16_t)(_zip_buffer_offset(buffer)), _zip_buffer_data(buffer), ZIP_EF_BOTH);
|
||||||
|
_zip_buffer_free(buffer);
|
||||||
|
|
||||||
|
return ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_dirent_t *
|
||||||
|
_zip_get_dirent(zip_t *za, zip_uint64_t idx, zip_flags_t flags, zip_error_t *error)
|
||||||
|
{
|
||||||
|
if (error == NULL)
|
||||||
|
error = &za->error;
|
||||||
|
|
||||||
|
if (idx >= za->nentry) {
|
||||||
|
zip_error_set(error, ZIP_ER_INVAL, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((flags & ZIP_FL_UNCHANGED) || za->entry[idx].changes == NULL) {
|
||||||
|
if (za->entry[idx].orig == NULL) {
|
||||||
|
zip_error_set(error, ZIP_ER_INVAL, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (za->entry[idx].deleted && (flags & ZIP_FL_UNCHANGED) == 0) {
|
||||||
|
zip_error_set(error, ZIP_ER_DELETED, 0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return za->entry[idx].orig;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return za->entry[idx].changes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_u2d_time(time_t intime, zip_uint16_t *dtime, zip_uint16_t *ddate)
|
||||||
|
{
|
||||||
|
struct tm *tm;
|
||||||
|
|
||||||
|
tm = localtime(&intime);
|
||||||
|
if (tm->tm_year < 80) {
|
||||||
|
tm->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));
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
zip_discard.c -- discard and free struct zip
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* zip_discard:
|
||||||
|
frees the space allocated to a zipfile struct, and closes the
|
||||||
|
corresponding file. */
|
||||||
|
|
||||||
|
void
|
||||||
|
zip_discard(zip_t *za)
|
||||||
|
{
|
||||||
|
zip_uint64_t i;
|
||||||
|
|
||||||
|
if (za == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (za->src) {
|
||||||
|
zip_source_close(za->src);
|
||||||
|
zip_source_free(za->src);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(za->default_password);
|
||||||
|
_zip_string_free(za->comment_orig);
|
||||||
|
_zip_string_free(za->comment_changes);
|
||||||
|
|
||||||
|
_zip_hash_free(za->names);
|
||||||
|
|
||||||
|
if (za->entry) {
|
||||||
|
for (i=0; i<za->nentry; i++)
|
||||||
|
_zip_entry_finalize(za->entry+i);
|
||||||
|
free(za->entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0; i<za->nopen_source; i++) {
|
||||||
|
_zip_source_invalidate(za->open_source[i]);
|
||||||
|
}
|
||||||
|
free(za->open_source);
|
||||||
|
|
||||||
|
zip_error_fini(&za->error);
|
||||||
|
|
||||||
|
free(za);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
zip_entry.c -- struct zip_entry helper functions
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_entry_finalize(zip_entry_t *e)
|
||||||
|
{
|
||||||
|
_zip_unchange_data(e);
|
||||||
|
_zip_dirent_free(e->orig);
|
||||||
|
_zip_dirent_free(e->changes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_entry_init(zip_entry_t *e)
|
||||||
|
{
|
||||||
|
e->orig = NULL;
|
||||||
|
e->changes = NULL;
|
||||||
|
e->source = NULL;
|
||||||
|
e->deleted = 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
This file was generated automatically by ./make_zip_err_str.sh
|
||||||
|
from ./zip.h; make changes there.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#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",
|
||||||
|
};
|
||||||
|
|
||||||
|
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,
|
||||||
|
};
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
/*
|
||||||
|
zip_error.c -- zip_error_t helper functions
|
||||||
|
Copyright (C) 1999-2015 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_error_code_system(const zip_error_t *error) {
|
||||||
|
return error->sys_err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_error_code_zip(const zip_error_t *error) {
|
||||||
|
return error->zip_err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN void
|
||||||
|
zip_error_fini(zip_error_t *err)
|
||||||
|
{
|
||||||
|
free(err->str);
|
||||||
|
err->str = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN void
|
||||||
|
zip_error_init(zip_error_t *err)
|
||||||
|
{
|
||||||
|
err->zip_err = ZIP_ER_OK;
|
||||||
|
err->sys_err = 0;
|
||||||
|
err->str = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZIP_EXTERN void
|
||||||
|
zip_error_init_with_code(zip_error_t *error, int ze)
|
||||||
|
{
|
||||||
|
zip_error_init(error);
|
||||||
|
error->zip_err = ze;
|
||||||
|
switch (zip_error_system_type(error)) {
|
||||||
|
case ZIP_ET_SYS:
|
||||||
|
error->sys_err = errno;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
error->sys_err = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_error_system_type(const zip_error_t *error) {
|
||||||
|
if (error->zip_err < 0 || error->zip_err >= _zip_nerr_str)
|
||||||
|
return ZIP_ET_NONE;
|
||||||
|
|
||||||
|
return _zip_err_type[error->zip_err];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_error_clear(zip_error_t *err)
|
||||||
|
{
|
||||||
|
if (err == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
err->zip_err = ZIP_ER_OK;
|
||||||
|
err->sys_err = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_error_copy(zip_error_t *dst, const zip_error_t *src)
|
||||||
|
{
|
||||||
|
dst->zip_err = src->zip_err;
|
||||||
|
dst->sys_err = src->sys_err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_error_get(const zip_error_t *err, int *zep, int *sep)
|
||||||
|
{
|
||||||
|
if (zep)
|
||||||
|
*zep = err->zip_err;
|
||||||
|
if (sep) {
|
||||||
|
if (zip_error_system_type(err) != ZIP_ET_NONE)
|
||||||
|
*sep = err->sys_err;
|
||||||
|
else
|
||||||
|
*sep = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
zip_error_set(zip_error_t *err, int ze, int se)
|
||||||
|
{
|
||||||
|
if (err) {
|
||||||
|
err->zip_err = ze;
|
||||||
|
err->sys_err = se;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_zip_error_set_from_source(zip_error_t *err, zip_source_t *src)
|
||||||
|
{
|
||||||
|
_zip_error_copy(err, zip_source_error(src));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
zip_int64_t
|
||||||
|
zip_error_to_data(const zip_error_t *error, void *data, zip_uint64_t length)
|
||||||
|
{
|
||||||
|
int *e = (int *)data;
|
||||||
|
|
||||||
|
if (length < sizeof(int)*2) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
e[0] = zip_error_code_zip(error);
|
||||||
|
e[1] = zip_error_code_system(error);
|
||||||
|
return sizeof(int)*2;
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
zip_error_clear.c -- clear zip error
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN void
|
||||||
|
zip_error_clear(zip_t *za)
|
||||||
|
{
|
||||||
|
if (za == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_zip_error_clear(&za->error);
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
zip_error_get.c -- get zip error
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define _ZIP_COMPILING_DEPRECATED
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN void
|
||||||
|
zip_error_get(zip_t *za, int *zep, int *sep)
|
||||||
|
{
|
||||||
|
_zip_error_get(&za->error, zep, sep);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_error_t *
|
||||||
|
zip_get_error(zip_t *za)
|
||||||
|
{
|
||||||
|
return &za->error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN zip_error_t *
|
||||||
|
zip_file_get_error(zip_file_t *f)
|
||||||
|
{
|
||||||
|
return &f->error;
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
zip_error_get_sys_type.c -- return type of system error code
|
||||||
|
Copyright (C) 1999-2014 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>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
3. The names of the authors may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define _ZIP_COMPILING_DEPRECATED
|
||||||
|
#include "zipint.h"
|
||||||
|
|
||||||
|
|
||||||
|
ZIP_EXTERN int
|
||||||
|
zip_error_get_sys_type(int ze)
|
||||||
|
{
|
||||||
|
if (ze < 0 || ze >= _zip_nerr_str)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return _zip_err_type[ze];
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user