Jens Steube
fcccd9f4ec
Improve BitLocker -m 22100 performance by:
...
- Removing OPTI_TYPE_REGISTER_LIMIT
- Removing OPTS_TYPE_MP_MULTI_DISABLE
- Enabling REAL_SHM
- Fixing loop value to allow autotune to find better accel value
- Increasing minimum password length from 4 to 6
Fix compiler warning
Rename HASH_NAME for -m 31100
Reorder changes.txt (new hash modes only)
2025-07-21 22:00:01 +02:00
Jens Steube
e6ed9f5050
Revert to manually unrolled SHA256/224/512/384 transform() steps
...
This affects the inner core of nearly all kernels and thus impacts
almost all hash modes. The only functional change is that we now
manually unroll the individual steps of the transform() functions,
saving a small amount of constant memory.
In most cases, JIT compilers would likely detect the unused constant
buffer and remove it automatically, but this makes it explicit.
Tested on newer NVIDIA devices: no speed change observed.
Tested on older NVIDIA devices: visible speed increase.
Tested on AMD devices: visible speed increase across all tested GPUs.
Not yet tested: CPUs, Intel iGPUs, Intel dGPUs.
2025-07-21 16:18:26 +02:00
Jens Steube
bac6243533
Add sha256_hmac_init_global_utf16le_swap() for later use
2025-05-12 11:22:16 +02:00
Jens Steube
7b24986096
Add important checks for pw_len == -1 to avoid out of boundary read/writes
2022-03-31 11:45:58 +02:00
Gabriele Gristina
9d36245d51
Kernels: Set the default Address Space Qualifier for any pointer, refactored / updated KERN_ATTR macros and rc4 cipher functions, in order to support Apple Metal runtime
2022-02-04 19:54:00 +01:00
Jens Steube
4934e92cda
OpenCL Runtime: Workaround a problem of the AMD OpenCL GPU driver under macOS which results in false negatives due to changes in the kernel crypto library
2021-07-05 11:33:12 +02:00
Jens Steube
9bf0f36d0a
Get rid of MAYBE_VOLATILE for context position by replacing it with zero length check
2021-05-09 11:43:32 +02:00
Jens Steube
9813811493
Remove truncation of buffer in hc_enc_next() to workaround AMD JiT compiler (legacy) issue
2021-05-08 16:38:48 +02:00
Jens Steube
0439f0c4a1
Refactor UTF8 to UTF16 conversion from fixed size to a dynamic size using a context struct. This allows handle buffer sizes of arbitrary length for conversion
2021-05-01 12:49:43 +02:00
Jens Steube
b7dffd9259
Improve performance for UTF8->UTF16 conversion
...
Reverted d343e2c4a0
and ee26805138
Adds a test to decide whatever conversion technique to use. If all UTF8 characters are 7 bit, there's no need for regular conversion and we can stick to naive conversion.
2021-04-30 16:55:30 +02:00
Jens Steube
ee26805138
In UTF8 to UTF16 conversion, reserve enough room to handle very long UTF8 inputs
2021-04-12 14:44:56 +02:00
Jens Steube
d343e2c4a0
Added support for true UTF8 to UTF16 conversion in kernel crypto library
2021-04-11 11:53:47 +02:00
Jens Steube
4c85c0e54f
Revert a671d501aa
2019-12-23 15:00:15 +01:00
Jens Steube
e2da5c8d57
Some unrolling for SHA2 based algorithms
2019-05-12 12:38:23 +02:00
Jens Steube
fa9d073f9a
Manually unroll sha2 hashes
2019-05-11 23:15:58 +02:00
Jens Steube
d0bd33c9d1
Rename CONSTANT_AS to CONSTANT_VK
2019-05-06 14:34:16 +02:00
Jens Steube
89119bf24a
Add missing inc_platform.h include
2019-04-26 13:59:43 +02:00
Jens Steube
38c1029f2e
Need volatile for IRIS GPU on Mac OSX for -m 2500 and -m 2501
2019-04-17 13:21:35 +02:00
jsteube
74e3ede391
Test optimization for kernel include in pure mode
2019-04-15 18:11:15 +02:00
jsteube
a671d501aa
Optimize some xxx_hmac_init functions
2019-04-14 17:03:37 +02:00
jsteube
c34f75fe2d
Optimize some xxx_hmac_final functions
2019-04-14 15:59:03 +02:00
jsteube
9ced13cc94
Get rid of CONSTSPEC macro in OpenCL kernels
2019-04-04 10:15:34 +02:00
jsteube
66d94b06e4
Get rid of src/rp_kernel_on_cpu.c and src/rp_kernel_on_cpu_optimized.c and use OpenCL emulated kernel version
2019-03-25 12:24:04 +01:00
jsteube
e80b1838e8
Rename some functions in inc_common.cl to avoid conflicts with bitops.c
2019-03-23 22:15:38 +01:00
jsteube
adeeaee84a
Replace __kernel, __constant, __global and __local qualifiers with macro for better control
2019-03-22 22:27:58 +01:00
jsteube
7d4bea41a0
Get rid of OpenCL/inc_hash_constants.h and OpenCL/inc_hash_functions.cl
2019-03-21 23:00:38 +01:00
jsteube
84d6b8ecc1
Add function prototypes in OpenCL kernels to make some compilers happy
2019-03-09 09:05:44 +01:00
jsteube
dc9279c95c
New Strategy: Instead of using volatile, mark the mode as unstable. Remove all volatiles
2019-03-03 19:18:56 +01:00
jsteube
dad05d9f69
Testing: Workaround some AMD OpenCL runtime segmentation faults
2018-08-09 13:03:22 +02:00
Jens Steube
02a2495349
Switched array pointer types in function declarations in order to be compatible with OpenCL 2.0
2018-07-22 11:47:42 +02:00
Jens Steube
a15c165773
Revert the pos == 0 change due to some unexpected results on nvidia
2018-02-16 11:38:08 +01:00
jsteube
b626e7f61b
Optimize update functions in inc_hash_* helper files by testing for pos == 0
2018-02-14 17:31:41 +01:00
jsteube
5951207365
Get rid of some old volatiles
2018-02-09 19:18:30 +01:00
jsteube
e4e1c1d515
We can't mix inline functions with static constants
2018-02-07 14:16:27 +01:00
jsteube
3e08750900
OpenCL Kernels: Add general function declaration keyword (static inline)
2018-02-06 19:12:24 +01:00
jsteube
53f3da9f63
OpenCL Kernels: Use static declaraction for uXXa variables used in __constant space
2018-01-18 23:19:31 +01:00
jsteube
503f676cb0
Remove static keywords from OpenCL functions, they can cause old NV JiT compiler to fail
2017-10-20 13:23:43 +02:00
jsteube
51dd982b12
Bring back some volatile for AMD
2017-09-08 14:08:21 +02:00
jsteube
9125062ffc
Move volatiles for AMD closer to the problem
2017-09-08 13:32:19 +02:00
jsteube
938c281ee0
Resurrect some volatile variables in order to correctly compile pure kernels on AMD drivers
2017-08-25 17:06:07 +02:00
jsteube
967e96728d
Make all the OpenCL kernel function includes static
2017-08-16 20:27:17 +02:00
jsteube
5e34ec348e
Optimize kernels for ROCm 1.6
...
- Remove inline keywords
- Remove volatile keywords where it causes ROCm to slow down
- Replace DES functions (looks like bitselect somehow is no longer mapped to BFI_INT)
2017-07-22 18:05:18 +02:00
jsteube
eae9329761
Workaround some AMD JiT compiler segfault on complex kernels
2017-07-19 13:34:36 +02:00
jsteube
7205f450dd
Backport more HMAC functions in inc_hash_xxx.cl from global to private
2017-07-14 16:58:30 +02:00
jsteube
4e0972ce3a
Add xxx_update_vector_swap(), xxx_update_vector_utf16le_swap() and xxx_update_vector_utf16beN() for later use
2017-07-14 13:24:40 +02:00
jsteube
9c6c21490f
Add *_hmac_init_swap for later use
2017-07-13 19:22:31 +02:00
jsteube
9c12459852
Add HMAC vector functions to inc_hash_*
2017-07-13 12:18:17 +02:00
jsteube
c512e0c01a
Add example -L kernel for algorithms with appended salt in utf16le
2017-07-13 00:16:29 +02:00
jsteube
9b6c6df53d
Add xxx_nit_vector_from_scalar() to all inc_hash_xxx.cl includes
2017-07-12 15:45:22 +02:00
jsteube
8a6e3a5275
Add support in HMAC for passwords larger than block size of the underlaying hash
2017-07-10 11:15:15 +02:00