VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto
AgeCommit message (Collapse)AuthorFilesLines
2019-08-26Windows: fix compilation error of legacy MBR bootloader caused by missing ↵Mounir IDRASSI1-1/+1
intrin.h header
2019-03-21Linux: Fix compilation error caused by wrong include of "intrin.h"Mounir IDRASSI1-3/+1
2019-03-02Windows: Generalize RAM encryption for keys to VeraCrypt binaries, ↵Mounir IDRASSI2-0/+24
especially Format and Expander
2019-03-01Windows: Implement RAM encryption for keys on 64-bit machines using ChaCha12 ↵Mounir IDRASSI7-0/+1852
cipher and t1ha non-cryptographic fast hash (https://github.com/leo-yuriev/t1ha)
2019-02-12Windows: Use Hardware RNG based on CPU timing jitter "Jitterentropy" by ↵Mounir IDRASSI8-4/+1038
Stephan Mueller as a good alternative to RDRAND (http://www.chronox.de/jent.html, smueller@chronox.de)
2019-02-08Windows: Add implementation of ChaCha20 based random generator. Use it for ↵Mounir IDRASSI12-4/+929
driver need of random bytes (currently only wipe bytes but more to come later).
2019-02-01Windows: use CPU RDRAND or RDSEED as an additional entropy source for our ↵Mounir IDRASSI7-0/+519
random generator when available
2019-02-01Fix detection of CPU features AVX2 & BMI2. Add detection of RDRAND & RDSEED ↵Mounir IDRASSI2-3/+41
CPU features. Detect Hygon CPU as AMD one.
2019-01-30Help compiler optimize some crypto code on 64-bit build since x64 capable ↵Mounir IDRASSI1-0/+5
CPUs always support SSE and SSE2
2018-08-06crypto: cleaner code for Streebog carry bit handling and add comment about ↵Mounir IDRASSI1-5/+24
missing handling of overflow caused by carry bit.
2017-11-27SIMD speed optimization for Kuznyechik cipher implementation (up to 2x ↵Mounir IDRASSI6-166/+9755
speedup). Based on https://github.com/aprelev/libgost15.
2017-07-19Windows MBR bootloader: reduce required stack size for cascade bootloader by ↵Mounir IDRASSI1-0/+2
removing unnecessary field from Twofish structure in this case.
2017-07-19Windows MBR Bootloader: workaround for 16-bit compiler internal error when ↵Mounir IDRASSI1-4/+4
compiling Camellia source code. In GET_UINT32_BE macro, we use |= operator instead of ORing shift values.
2017-07-09Windows: generate pdb files for binaries in order to help investigate ↵Mounir IDRASSI1-4/+2
crashes in the future.
2017-07-09Remove unnecessary code from Camellia assembly implementation that checks ↵Mounir IDRASSI2-71/+10
for key size since we always use it with 256-bit keys.
2017-07-09Windows: preserve volatile registers XMM6-XMM15 in 64-bit assembly of Camellia.Mounir IDRASSI1-512/+51
2017-07-04Windows: correctly handle SEH exceptions during self-tests in order to ↵Mounir IDRASSI2-30/+41
disable CPU extended features in such case.
2017-07-04Don't check for SSSE3 to use 64-bit SHA-512 assembly code since it uses only ↵Mounir IDRASSI1-0/+4
SSE2 instructions.
2017-07-04Windows Driver: correctly save and restore extended processor state when ↵Mounir IDRASSI2-9/+27
performing AVX operations on Windows 7 and later. Enhance readability of code handling save/restore of floating point state.
2017-07-04Windows: use stack instead of MMX register to save registers in 64-bit ↵Mounir IDRASSI1-14/+19
assembly implementation of SHA-512 in order to avoid issues with the driver.
2017-07-02Linux/MacOSX: align workspace stack variable in WhirlpoolTransform SSE code.Mounir IDRASSI1-1/+1
2017-07-02Avoid alignement issues with some old compilers by using movdqu instead of ↵Mounir IDRASSI1-8/+8
movdqa in SHA-256 SSE2 assembly.
2017-07-01Fix crash on machines without SSSE3 support in CPU by correctly checking for ↵Mounir IDRASSI1-1/+1
SSSE3 before using SHA-512 SSE2 assembly which uses PSHUFB instruction.
2017-07-01For code logic clarity, add check for xgetbv support in CPU before using it.Mounir IDRASSI1-1/+1
2017-06-27Enable AVX assembly instructions only when the OS implements AVX supportMounir IDRASSI1-2/+19
2017-06-27Windows: use yasm define __YASM__ for compatibility with the assembly ↵Mounir IDRASSI2-25/+25
changes done in MacOSX.
2017-06-27MacOSX: various changes for assembly files build. Don't use 32-bit assembly ↵Mounir IDRASSI11-25/+19
code of SHA-512 since it is not compatible with PIE configuration of OSX compiler (absolute addressing used)
2017-06-24Linux/MacOSX: properly declare 64-bit constant integer values to avoid being ↵Mounir IDRASSI1-28/+28
truncated by compiler.
2017-06-23Update IDRIX copyright yearMounir IDRASSI2-2/+2
2017-06-23Modify Aes_hw_cpu.asm to use nasm syntax that is compatible with yasm.Mounir IDRASSI1-16/+16
2017-06-23Crypto: Add optimized SHA-512 and SHA-256 assembly implementations for ↵Mounir IDRASSI22-785/+5190
x86_64 and x86. This improves speed by 30%.
2017-06-21Windows: don't use AVX optimized Camellia in EFI bootloader until ↵Mounir IDRASSI1-1/+4
compatibility issues are investigated
2017-06-21Crypto: Add optimized Camellia assembly implementation for x86_64 based on ↵Mounir IDRASSI12-12/+2395
work by Jussi Kivilinna (https://github.com/jkivilin/supercop-blockciphers). This improve speed by a factor of 2.5 when AES-NI supported by CPU and by 30% if AES-NI not supported.
2017-06-21Windows: fix compilation error of assembly files after latest changes on Linux.Mounir IDRASSI2-2/+4
2017-06-13Linux: fix executable stack in resulting binary which was caused by crypto ↵Mounir IDRASSI5-0/+48
assembly files missing the GNU-stack note.
2017-06-05cland static code analyzer fixeskavsrf1-3/+3
2017-05-22Windows Driver: fix "__chkstk" link error in debug build caused by some ↵Mounir IDRASSI3-4/+14
crypto functions using too much stack space for local variables.
2017-01-12Fix build error in Crypto/Whirpool.c when using LLVM Clang compiler by ↵Mounir IDRASSI3-33/+45
disabling inline assembly in this case (caused by http://llvm.org/bugs/show_bug.cgi?id=24232)
2016-12-26Windows: Enable Twofish optimized 64-bit assembly for UEFI bootloader since ↵Mounir IDRASSI2-6/+6
a pre-compiled object file was included to its build system.
2016-12-07Windows: Don't use Twofish x64 assembly implementation for UEFI bootloader ↵Mounir IDRASSI2-7/+7
(for now, yasm is not integrated in EDKII framework).
2016-12-07Windows Bootloader: fix compilation error following Twofish code changes.Mounir IDRASSI1-3/+1
2016-12-07Crypto: remove unnecessary alignment adjusting code in Serpent since the ↵Mounir IDRASSI1-46/+2
SIMD implementation works with unaligned data and gain negligible compared to memcpy overhead.
2016-12-07Crypto: Add optimized Twofish assembly implementation for x86_64.Mounir IDRASSI8-421/+993
2016-10-17Implement detection of new CPU features: AVX2 and BMI2Mounir IDRASSI2-1/+7
2016-10-17Optimize performance of Twofish C implementation.Mounir IDRASSI2-95/+463
2016-10-17Add missing fast Serpent implementation sources.Mounir IDRASSI4-0/+1121
2016-10-17Crypto: Use SIMD optimized Serpent implementation from Botan. 2.5x speed ↵Mounir IDRASSI5-9/+64
gain factor. Update credits and copyrights notice.
2016-10-17Use properly aligned memory in code using Streebog hash implementation that ↵Mounir IDRASSI2-2/+3
uses SSE.
2016-10-17Add test vectors for Kuznyechik and GOST89 (the later is deprecated)Mounir IDRASSI2-24/+20
2016-10-17Crypto: remove specific PBKDF2 optimization for block index encoding (except ↵Mounir IDRASSI1-0/+1
in 16-bit bootloader) in order to make code clearer and avoid bad usage in the future if this implementation is used to generate more bytes than today.