VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto
AgeCommit message (Collapse)AuthorFilesLines
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.
2016-10-17GOST89 parameters swap (6.3)kavsrf2-87/+90
Cached boot password added
2016-08-17MacOSX: fix compiler warning about ALIGN macro being already definedMounir IDRASSI2-16/+16
2016-08-17Linux: fix compilation error on Streebog.c if SSE4.1 not enabled in compilerMounir IDRASSI2-2/+10
2016-08-17Linux: fix various compilation issues under Linux.Mounir IDRASSI10-2321/+2349
2016-08-16Fix compilation error in Streebog code caused by latest changes.Mounir IDRASSI2-2/+2
2016-08-16Windows: Fix various issues detected by static analysis.Mounir IDRASSI4-19/+19
2016-08-15Windows: Add new crypto files to legacy VC++ 2008 project.Mounir IDRASSI1-0/+62
2016-08-15Windows EFI Bootloader: modifications to prepare EFI system encryption ↵Alex7-33/+53
support (common files with DcsBoot)
2016-08-15Windows: Add support for Streebog (hash) and kuznyechik (encryption)Mounir IDRASSI7-0/+4923
2016-08-15Windows: Add Magma cipher (GOST-89)Mounir IDRASSI8-1/+839
2016-08-08Linux: Enable gcc AES-NI built-in functions and adapt Hyper-V AES detection ↵Mounir IDRASSI1-13/+51
code to gcc.
2016-07-29Crypto: Use Hyper-V AES-NI detection workaround when displaying AES hardware ↵Mounir IDRASSI2-45/+79
availability in GUI.
2016-07-25Windows: solve benchmark issue for Whirlpool which caused wrong numbers when ↵Mounir IDRASSI2-3/+3
a 1GB buffer is chosen.
2016-07-24Crypto: Workaround for AES-NI issue under Hyper-V on Windows Server 2008 R2 ↵Mounir IDRASSI2-3/+61
which masks AES-NI from applications although it is available.
2016-06-20Windows:solve compilation error under VC++ 2008 by using extern "C" only ↵Mounir IDRASSI1-8/+32
when needed.