|
|
@ -800,13 +800,15 @@ KERNEL_FQ void m19600_comp (KERN_ATTR_TMPS_ESALT (krb5tgs_17_tmp_t, krb5tgs_17_t
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
u32 shift = last_block_size % 4;
|
|
|
|
u32 shift = last_block_size % 4;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u32 mask;
|
|
|
|
|
|
|
|
|
|
|
|
switch (remaining_blocks)
|
|
|
|
switch (remaining_blocks)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
case 0:
|
|
|
|
|
|
|
|
|
|
|
|
last_block[0] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 0];
|
|
|
|
last_block[0] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 0];
|
|
|
|
|
|
|
|
|
|
|
|
u32 mask = (0xffffffff >> ((4 - last_block_size) * 8));
|
|
|
|
mask = (0xffffffff >> ((4 - last_block_size) * 8));
|
|
|
|
|
|
|
|
|
|
|
|
last_plaintext[0] = last_block[0] ^ (decrypted_block[0] & mask);
|
|
|
|
last_plaintext[0] = last_block[0] ^ (decrypted_block[0] & mask);
|
|
|
|
last_plaintext[0] = hc_swap32_S (last_plaintext[0]);
|
|
|
|
last_plaintext[0] = hc_swap32_S (last_plaintext[0]);
|
|
|
@ -835,7 +837,7 @@ KERNEL_FQ void m19600_comp (KERN_ATTR_TMPS_ESALT (krb5tgs_17_tmp_t, krb5tgs_17_t
|
|
|
|
{
|
|
|
|
{
|
|
|
|
last_block[1] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 1];
|
|
|
|
last_block[1] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 1];
|
|
|
|
|
|
|
|
|
|
|
|
u32 mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
|
|
|
|
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[1] = last_block[1] ^ (decrypted_block[1] & mask);
|
|
|
|
last_plaintext[1] = last_block[1] ^ (decrypted_block[1] & mask);
|
|
|
@ -872,7 +874,7 @@ KERNEL_FQ void m19600_comp (KERN_ATTR_TMPS_ESALT (krb5tgs_17_tmp_t, krb5tgs_17_t
|
|
|
|
{
|
|
|
|
{
|
|
|
|
last_block[2] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 2];
|
|
|
|
last_block[2] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 2];
|
|
|
|
|
|
|
|
|
|
|
|
u32 mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
|
|
|
|
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[1] = last_block[1] ^ decrypted_block[1];
|
|
|
|
last_plaintext[1] = last_block[1] ^ decrypted_block[1];
|
|
|
@ -914,7 +916,7 @@ KERNEL_FQ void m19600_comp (KERN_ATTR_TMPS_ESALT (krb5tgs_17_tmp_t, krb5tgs_17_t
|
|
|
|
{
|
|
|
|
{
|
|
|
|
last_block[3] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 3];
|
|
|
|
last_block[3] = esalt_bufs[DIGESTS_OFFSET].edata2[last_block_position + 3];
|
|
|
|
|
|
|
|
|
|
|
|
u32 mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
mask = (0xffffffff >> ((4 - (last_block_size % 4)) * 8));
|
|
|
|
|
|
|
|
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[0] = last_block[0] ^ decrypted_block[0];
|
|
|
|
last_plaintext[1] = last_block[1] ^ decrypted_block[1];
|
|
|
|
last_plaintext[1] = last_block[1] ^ decrypted_block[1];
|
|
|
|