Matt Covalt
36bdcf844a
Add function to check if vector represents a Base58 string
6 years ago
Jens Steube
65abccc93e
Migrate inc_truecrypt_keyboard.cl into inc_common.cl
6 years ago
Jens Steube
e117e750fc
Add restrict keyword to kernel declarations to help the compiler with caching optimizations
6 years ago
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.
6 years ago
Jens Steube
6d39fb1feb
Make all kernel parameter macro helper a function
6 years ago
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.
6 years ago
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)
6 years ago
Jens Steube
6d03da369b
Fix gid datatype in mark_hash()
6 years ago
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)
6 years ago
jsteube
fbf434146d
Add set_mark_1x4() and set_mark_1x4_S()
6 years ago
Jens Steube
14c444fd47
Replace c_append_helper_mini[] table with on-the-fly calculation in order to workaround compiler bugs in AMD OpenCL runtime
6 years ago
Jens Steube
a43d3ad176
Rename some hashcat specific OpenCL functions to avoid conflicts with existing OpenCL functions from OpenCL runtime
6 years ago
Jens Steube
02a2495349
Switched array pointer types in function declarations in order to be compatible with OpenCL 2.0
6 years ago
Jens Steube
81b229c08a
Make new c_append_helper a bit more AMD friendly
6 years ago
jsteube
3a23b275e5
Improved c_append_helper[] handling
6 years ago
jsteube
b626e7f61b
Optimize update functions in inc_hash_* helper files by testing for pos == 0
6 years ago
Jens Steube
ec63c2f017
switch_buffer_* function can return sooner if offset is zero
6 years ago
jsteube
fe4413797e
OpenCL Kernels: Use three separate comparison kernels (depending on keyver) for WPA instead of one
6 years ago
jsteube
aa65ed28e5
Switch back c_append_helper to static
6 years ago
Jens Steube
d656e9c3a4
OpenCL Kernels: Use the kernel local buffer size as additional reference in order to limit the thread-count
6 years ago
jsteube
5951207365
Get rid of some old volatiles
6 years ago
jsteube
e4e1c1d515
We can't mix inline functions with static constants
6 years ago
jsteube
3e08750900
OpenCL Kernels: Add general function declaration keyword (static inline)
6 years ago
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
6 years ago
jsteube
553668bb9f
Added hash-mode 16600 = Electrum Wallet (Salt-Type 1-3)
6 years ago
Jens Steube
7062425d2b
OpenCL Kernels: Use a special kernel to initialize the password buffer used during autotune measurements to reduce startup time
6 years ago
jsteube
53f3da9f63
OpenCL Kernels: Use static declaraction for uXXa variables used in __constant space
6 years ago
jsteube
3a303ffce4
Replace variables from uXX to uXXa if used in __constant space
6 years ago
jsteube
503f676cb0
Remove static keywords from OpenCL functions, they can cause old NV JiT compiler to fail
7 years ago
jsteube
9125062ffc
Move volatiles for AMD closer to the problem
7 years ago
jsteube
ac9f1da747
Add fine-tuned AMD GCN control macros
7 years ago
jsteube
52a97fee75
Improve rule engine performance by improving append_0x80_xxx() performance by using precomputed values from constant memory
7 years ago
jsteube
48fbe81a09
Add more inline assembly for AMD ROCm
7 years ago
jsteube
bed7e8f466
Remove unused truncate_block_xxx_xx() functions and update kernels to use the _S function
7 years ago
jsteube
51dc1c7db3
Use truncate_block_4x4_le_S() instead of truncate_block_4x4_le() in -m 6800
7 years ago
jsteube
51372438fe
Allow OpenCL kernel inline assembly if ROCm drivers was detected
7 years ago
jsteube
319799bbbf
Switch the datatypes of the variables responsible for work-item count and work-item size from u32 to u64
7 years ago
jsteube
e984a829ea
Remove no longer needed overwrite_at_* functions
7 years ago
jsteube
967e96728d
Make all the OpenCL kernel function includes static
7 years ago
jsteube
e6cb69e4cb
Add pure kernels for JKS Java Key Store Private Keys (SHA1)
7 years ago
jsteube
c5c12f89c1
Rewrite code around amd_bytealign to be of type BE to save a branch afterwards
7 years ago
jsteube
a53d9e09de
Fix some issue with offset_minus_4
7 years ago
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)
7 years ago
jsteube
696afc2a1b
Fix selector in switch_buffer_by_offset_1x64_be_S()
7 years ago
jsteube
4e0972ce3a
Add xxx_update_vector_swap(), xxx_update_vector_utf16le_swap() and xxx_update_vector_utf16beN() for later use
7 years ago
jsteube
f03156b05e
Add switch_buffer_by_offset_1x64_be_S() and code generators for later use
7 years ago
jsteube
994e7efc91
Add example -L kernel for algorithms using HMAC where the password is the key
7 years ago
jsteube
91f7acbde3
Remove more unused functions after refactor of -m 6x00 kernels
7 years ago
jsteube
35e1ee6612
Functions append_0x02() no longer required after rewrite of -m 8800
7 years ago
jsteube
d806aab2c3
Remove some unused functions
7 years ago
jsteube
b03382b334
Get rid of old truncate_block()
7 years ago
jsteube
a22da36a00
Add different code generators for truncate_block(), add results to inc_common.cl and make use of them in m01800-pure.cl
7 years ago
jsteube
b9b2112b64
Add pure kernel for -m 1800
7 years ago
jsteube
8e1759650b
Add -L support for -m 1700 in combination with -a 3
7 years ago
jsteube
58a66cf31d
Fix function declaration of switch_buffer_by_offset_8x4_carry_be_S()
7 years ago
jsteube
a009f239d5
Backport generated scalar code to vector code
7 years ago
jsteube
fbfe81a0a1
Replace code in switch_buffer_by_offset_carry_be_S() with code generated with code generators
7 years ago
jsteube
b07b73f525
Add switch_buffer_by_offset_8x4_be_S() to inc_common.cl
7 years ago
jsteube
cd5223eb2f
Replace code in switch_buffer_by_offset_be_S() with code generated with code generators
7 years ago
jsteube
48ce6cb71d
Add append_0x80_8x4_S() and replace code in switch_buffer_by_offset_le_S() with generated code from code generators
7 years ago
jsteube
b8ad89c529
Rename function and variables containing 'unicode' to 'utf16le' because that's what's meant actually
7 years ago
Jens Steube
ae5fdba20f
Add make_unicode and undo_unicode BE version
7 years ago
Jens Steube
4a3c90dd3c
Fixes https://github.com/hashcat/hashcat/issues/1123
7 years ago
philsmd
c18c2950c9
mv switch_buffer_by_offset_8x4_le_S and switch_buffer_by_offset_8x4_le_VV () into inc_common.cl
7 years ago
jsteube
c1d88f3234
Fix updated switch_buffer_* functions to run on AMD
7 years ago
jsteube
e0c3f447da
Added hash-mode 4520 = sha1($salt.sha1($pass))
...
Added hash-mode 4522 = PunBB
OpenCL Kernel: Renumbered hash-mode 7600 to 4521
The mode 4520 is the first to support salt length up to 64
7 years ago
jsteube
8257883ec1
Added hash-mode 14600 = LUKS
7 years ago
Jens Steube
7fe575e204
Add const qualifier to variable declaration of matching global memory objects
8 years ago
Jens Steube
6fdb2bfca4
Fix some header in inc_common.cl
8 years ago
jsteube
7f234bad24
Optimize 0x01, 0x02 and 0x80 handling in inc_common.c even more
8 years ago
jsteube
492f9f2290
For some easy actions, maxwell GPU prefer not to use switch()
8 years ago
jsteube
3daf0af480
Added docs/credits.txt
...
Added docs/team.txt
8 years ago
Jens Steube
a267c61fbb
switch from clz() to ffz() for bitsliced algorithms
8 years ago
jsteube
2dd8156d24
Introduce a true memset kernel, currently operates on 16 byte per item
8 years ago
Jens Steube
2899f53a15
Move files from include/ to OpenCL/ if they are used within kernels
...
Rename includes in OpenCL so that it's easier to recognize them as such
8 years ago