jsteube
84d6b8ecc1
Add function prototypes in OpenCL kernels to make some compilers happy
2019-03-09 09:05:44 +01:00
jsteube
e1fe3e755b
Optimize some switch_buffer_* functions for generic OpenCL devices (CPU, various OSX, ...)
2019-03-01 14:49:00 +01:00
jsteube
540b405e3a
Replace IS_ROCM with HAS_VPERM and HAS_VADD3
2019-02-24 10:12:48 +01:00
jsteube
c88a837196
Rename d_scryptVX_buf to d_extraX_buf
2019-01-04 11:21:42 +01:00
Matt Covalt
36bdcf844a
Add function to check if vector represents a Base58 string
2018-12-05 10:20:41 -08:00
Jens Steube
65abccc93e
Migrate inc_truecrypt_keyboard.cl into inc_common.cl
2018-11-25 18:34:57 +01:00
Jens Steube
e117e750fc
Add restrict keyword to kernel declarations to help the compiler with caching optimizations
2018-11-21 13:00:30 +01:00
R. Yushaev
fbbe5f6282
Use macros in remaining kernel functions
...
The 7zip, scrypt and stdout kernels differ from the others in their
function declarations somewhat. Unify them and substitute with macros.
Also remove a few superfluous (bogus) consts which were introduced in
the previous PR.
2018-11-16 14:30:45 +01:00
Jens Steube
6d39fb1feb
Make all kernel parameter macro helper a function
2018-11-16 14:17:01 +01:00
R. Yushaev
31dc7a3453
Add macros for kernel function declarations
...
Most of the kernel functions use nearly identical parameter lists.
Essentially, there are four parameters that vary, except for a dozen odd
kernel functions (e.g. stdout, zip, scrypt). This means that the function
declarations can be hidden behind a few simple macros with up to two
parameters.
2018-11-16 11:44:26 +01:00
R. Yushaev
224315dd62
Add pure kernels and tests for Streebog hashes
...
Complete Streebog support with pure kernels that allow for passwords
longer than 64 characters. Provide generic inc_hash_streebog files
for future Streebog-based hash modes (HMAC, PBKDF2, VeraCrypt).
Include streebog support in the test suite. For this, python module
PyGOST is needed. Also add clarification to hash mode description
stating that Streebog hashes are expected in big-endian byte order.
There are several implementations, including PyGOST, which default
to little-endian byte order, while the RFC examples are big-endian.
- Add pure kernels for hash-mode 11700 (Streebog-256)
- Add pure kernels for hash-mode 11800 (Streebog-512)
- Tests: Add hash-modes 11700 (Streebog-256) and 11800 (Streebog-512)
2018-10-29 10:33:30 +01:00
Jens Steube
6d03da369b
Fix gid datatype in mark_hash()
2018-10-20 02:19:39 +02:00
R. Yushaev
5c87720acc
Add SHA3 and Keccak
...
The previous hash-mode 5000 covered Keccak-256 only. FIPS changed one
padding byte while adopting Keccak as the SHA3 standard, which gives us
different digests. Now we have separate kernels for SHA3 and Keccak.
- Added hash-mode 17300 = SHA3-224
- Added hash-mode 17400 = SHA3-256
- Added hash-mode 17500 = SHA3-384
- Added hash-mode 17600 = SHA3-512
- Added hash-mode 17700 = Keccak-224
- Added hash-mode 17800 = Keccak-256
- Added hash-mode 17900 = Keccak-384
- Added hash-mode 18000 = Keccak-512
- Removed hash-mode 5000 = SHA-3 (Keccak)
2018-10-15 16:06:31 +02:00
jsteube
fbf434146d
Add set_mark_1x4() and set_mark_1x4_S()
2018-07-28 18:03:18 +02:00
Jens Steube
14c444fd47
Replace c_append_helper_mini[] table with on-the-fly calculation in order to workaround compiler bugs in AMD OpenCL runtime
2018-07-28 13:59:55 +02:00
Jens Steube
a43d3ad176
Rename some hashcat specific OpenCL functions to avoid conflicts with existing OpenCL functions from OpenCL runtime
2018-07-22 12:20:20 +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
81b229c08a
Make new c_append_helper a bit more AMD friendly
2018-02-17 15:18:19 +01:00
jsteube
3a23b275e5
Improved c_append_helper[] handling
2018-02-17 14:24:29 +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
Jens Steube
ec63c2f017
switch_buffer_* function can return sooner if offset is zero
2018-02-14 11:35:00 +01:00
jsteube
fe4413797e
OpenCL Kernels: Use three separate comparison kernels (depending on keyver) for WPA instead of one
2018-02-13 09:13:35 +01:00
jsteube
aa65ed28e5
Switch back c_append_helper to static
2018-02-12 09:02:37 +01:00
Jens Steube
d656e9c3a4
OpenCL Kernels: Use the kernel local buffer size as additional reference in order to limit the thread-count
2018-02-11 10:56:08 +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
a3a16f676f
OpenCL Kernels: Add a decompressing kernel and a compressing host code in order to reduce PCIe transfer time
...
For details see https://hashcat.net/forum/thread-7267.html
2018-02-05 17:18:58 +01:00
jsteube
553668bb9f
Added hash-mode 16600 = Electrum Wallet (Salt-Type 1-3)
2018-01-25 15:28:21 +01:00
Jens Steube
7062425d2b
OpenCL Kernels: Use a special kernel to initialize the password buffer used during autotune measurements to reduce startup time
2018-01-23 20:33:26 +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
3a303ffce4
Replace variables from uXX to uXXa if used in __constant space
2018-01-18 23:16:11 +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
9125062ffc
Move volatiles for AMD closer to the problem
2017-09-08 13:32:19 +02:00
jsteube
ac9f1da747
Add fine-tuned AMD GCN control macros
2017-09-07 20:33:43 +02:00
jsteube
52a97fee75
Improve rule engine performance by improving append_0x80_xxx() performance by using precomputed values from constant memory
2017-08-27 14:22:20 +02:00
jsteube
48fbe81a09
Add more inline assembly for AMD ROCm
2017-08-25 16:33:00 +02:00
jsteube
bed7e8f466
Remove unused truncate_block_xxx_xx() functions and update kernels to use the _S function
2017-08-24 20:07:43 +02:00
jsteube
51dc1c7db3
Use truncate_block_4x4_le_S() instead of truncate_block_4x4_le() in -m 6800
2017-08-24 19:53:29 +02:00
jsteube
51372438fe
Allow OpenCL kernel inline assembly if ROCm drivers was detected
2017-08-22 18:47:53 +02:00
jsteube
319799bbbf
Switch the datatypes of the variables responsible for work-item count and work-item size from u32 to u64
2017-08-19 16:39:22 +02:00
jsteube
e984a829ea
Remove no longer needed overwrite_at_* functions
2017-08-17 15:53:09 +02:00
jsteube
967e96728d
Make all the OpenCL kernel function includes static
2017-08-16 20:27:17 +02:00
jsteube
e6cb69e4cb
Add pure kernels for JKS Java Key Store Private Keys (SHA1)
2017-08-09 15:16:12 +02:00
jsteube
c5c12f89c1
Rewrite code around amd_bytealign to be of type BE to save a branch afterwards
2017-08-05 19:46:56 +02:00
jsteube
a53d9e09de
Fix some issue with offset_minus_4
2017-08-04 14:12:58 +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
696afc2a1b
Fix selector in switch_buffer_by_offset_1x64_be_S()
2017-07-14 13:37:23 +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
f03156b05e
Add switch_buffer_by_offset_1x64_be_S() and code generators for later use
2017-07-13 18:46:24 +02:00