Show More
@@ -1,372 +1,374 b'' | |||
|
1 | 1 | /*** |
|
2 | 2 | * Copyright 2017 Marc Stevens <marc@marc-stevens.nl>, Dan Shumow <danshu@microsoft.com> |
|
3 | 3 | * Distributed under the MIT Software License. |
|
4 | 4 | * See accompanying file LICENSE.txt or copy at |
|
5 | 5 | * https://opensource.org/licenses/MIT |
|
6 | 6 | ***/ |
|
7 | 7 | |
|
8 | 8 | /* |
|
9 | 9 | // this file was generated by the 'parse_bitrel' program in the tools section |
|
10 | 10 | // using the data files from directory 'tools/data/3565' |
|
11 | 11 | // |
|
12 | 12 | // sha1_dvs contains a list of SHA-1 Disturbance Vectors (DV) to check |
|
13 | 13 | // dvType, dvK and dvB define the DV: I(K,B) or II(K,B) (see the paper) |
|
14 | 14 | // dm[80] is the expanded message block XOR-difference defined by the DV |
|
15 | 15 | // testt is the step to do the recompression from for collision detection |
|
16 | 16 | // maski and maskb define the bit to check for each DV in the dvmask returned by ubc_check |
|
17 | 17 | // |
|
18 | 18 | // ubc_check takes as input an expanded message block and verifies the unavoidable bitconditions for all listed DVs |
|
19 | 19 | // it returns a dvmask where each bit belonging to a DV is set if all unavoidable bitconditions for that DV have been met |
|
20 | 20 | // thus one needs to do the recompression check for each DV that has its bit set |
|
21 | 21 | // |
|
22 | 22 | // ubc_check is programmatically generated and the unavoidable bitconditions have been hardcoded |
|
23 | 23 | // a directly verifiable version named ubc_check_verify can be found in ubc_check_verify.c |
|
24 | 24 | // ubc_check has been verified against ubc_check_verify using the 'ubc_check_test' program in the tools section |
|
25 | 25 | */ |
|
26 | 26 | |
|
27 | 27 | #ifndef SHA1DC_NO_STANDARD_INCLUDES |
|
28 | #if !defined(_MSC_VER) || _MSC_VER >= 1600 | |
|
28 | 29 | #include <stdint.h> |
|
29 | 30 | #endif |
|
31 | #endif | |
|
30 | 32 | #ifdef SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C |
|
31 | 33 | #include SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C |
|
32 | 34 | #endif |
|
33 | 35 | #include "ubc_check.h" |
|
34 | 36 | |
|
35 | 37 | static const uint32_t DV_I_43_0_bit = (uint32_t)(1) << 0; |
|
36 | 38 | static const uint32_t DV_I_44_0_bit = (uint32_t)(1) << 1; |
|
37 | 39 | static const uint32_t DV_I_45_0_bit = (uint32_t)(1) << 2; |
|
38 | 40 | static const uint32_t DV_I_46_0_bit = (uint32_t)(1) << 3; |
|
39 | 41 | static const uint32_t DV_I_46_2_bit = (uint32_t)(1) << 4; |
|
40 | 42 | static const uint32_t DV_I_47_0_bit = (uint32_t)(1) << 5; |
|
41 | 43 | static const uint32_t DV_I_47_2_bit = (uint32_t)(1) << 6; |
|
42 | 44 | static const uint32_t DV_I_48_0_bit = (uint32_t)(1) << 7; |
|
43 | 45 | static const uint32_t DV_I_48_2_bit = (uint32_t)(1) << 8; |
|
44 | 46 | static const uint32_t DV_I_49_0_bit = (uint32_t)(1) << 9; |
|
45 | 47 | static const uint32_t DV_I_49_2_bit = (uint32_t)(1) << 10; |
|
46 | 48 | static const uint32_t DV_I_50_0_bit = (uint32_t)(1) << 11; |
|
47 | 49 | static const uint32_t DV_I_50_2_bit = (uint32_t)(1) << 12; |
|
48 | 50 | static const uint32_t DV_I_51_0_bit = (uint32_t)(1) << 13; |
|
49 | 51 | static const uint32_t DV_I_51_2_bit = (uint32_t)(1) << 14; |
|
50 | 52 | static const uint32_t DV_I_52_0_bit = (uint32_t)(1) << 15; |
|
51 | 53 | static const uint32_t DV_II_45_0_bit = (uint32_t)(1) << 16; |
|
52 | 54 | static const uint32_t DV_II_46_0_bit = (uint32_t)(1) << 17; |
|
53 | 55 | static const uint32_t DV_II_46_2_bit = (uint32_t)(1) << 18; |
|
54 | 56 | static const uint32_t DV_II_47_0_bit = (uint32_t)(1) << 19; |
|
55 | 57 | static const uint32_t DV_II_48_0_bit = (uint32_t)(1) << 20; |
|
56 | 58 | static const uint32_t DV_II_49_0_bit = (uint32_t)(1) << 21; |
|
57 | 59 | static const uint32_t DV_II_49_2_bit = (uint32_t)(1) << 22; |
|
58 | 60 | static const uint32_t DV_II_50_0_bit = (uint32_t)(1) << 23; |
|
59 | 61 | static const uint32_t DV_II_50_2_bit = (uint32_t)(1) << 24; |
|
60 | 62 | static const uint32_t DV_II_51_0_bit = (uint32_t)(1) << 25; |
|
61 | 63 | static const uint32_t DV_II_51_2_bit = (uint32_t)(1) << 26; |
|
62 | 64 | static const uint32_t DV_II_52_0_bit = (uint32_t)(1) << 27; |
|
63 | 65 | static const uint32_t DV_II_53_0_bit = (uint32_t)(1) << 28; |
|
64 | 66 | static const uint32_t DV_II_54_0_bit = (uint32_t)(1) << 29; |
|
65 | 67 | static const uint32_t DV_II_55_0_bit = (uint32_t)(1) << 30; |
|
66 | 68 | static const uint32_t DV_II_56_0_bit = (uint32_t)(1) << 31; |
|
67 | 69 | |
|
68 | 70 | dv_info_t sha1_dvs[] = |
|
69 | 71 | { |
|
70 | 72 | {1,43,0,58,0,0, { 0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803,0x80000161,0x80000599 } } |
|
71 | 73 | , {1,44,0,58,0,1, { 0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803,0x80000161 } } |
|
72 | 74 | , {1,45,0,58,0,2, { 0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c,0x00000803 } } |
|
73 | 75 | , {1,46,0,58,0,3, { 0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6,0x8000004c } } |
|
74 | 76 | , {1,46,2,58,0,4, { 0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020,0x0000039a,0x00000132 } } |
|
75 | 77 | , {1,47,0,58,0,5, { 0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408,0x800000e6 } } |
|
76 | 78 | , {1,47,2,58,0,6, { 0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020,0x0000039a } } |
|
77 | 79 | , {1,48,0,58,0,7, { 0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164,0x00000408 } } |
|
78 | 80 | , {1,48,2,58,0,8, { 0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590,0x00001020 } } |
|
79 | 81 | , {1,49,0,58,0,9, { 0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018,0x00000164 } } |
|
80 | 82 | , {1,49,2,58,0,10, { 0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060,0x00000590 } } |
|
81 | 83 | , {1,50,0,65,0,11, { 0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202,0x00000018 } } |
|
82 | 84 | , {1,50,2,65,0,12, { 0x20000030,0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a,0x00000060 } } |
|
83 | 85 | , {1,51,0,65,0,13, { 0xe8000000,0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012,0x80000202 } } |
|
84 | 86 | , {1,51,2,65,0,14, { 0xa0000003,0x20000030,0x60000000,0xe000002a,0x20000043,0xb0000040,0xd0000053,0xd0000022,0x20000000,0x60000032,0x60000043,0x20000040,0xe0000042,0x60000002,0x80000001,0x00000020,0x00000003,0x40000052,0x40000040,0xe0000052,0xa0000000,0x80000040,0x20000001,0x20000060,0x80000001,0x40000042,0xc0000043,0x40000022,0x00000003,0x40000042,0xc0000043,0xc0000022,0x00000001,0x40000002,0xc0000043,0x40000062,0x80000001,0x40000042,0x40000042,0x40000002,0x00000002,0x00000040,0x80000002,0x80000000,0x80000002,0x80000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000000,0x00000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000101,0x00000009,0x00000012,0x00000202,0x0000001a,0x00000124,0x0000040c,0x00000026,0x0000004a,0x0000080a } } |
|
85 | 87 | , {1,52,0,65,0,15, { 0x04000010,0xe8000000,0x0800000c,0x18000000,0xb800000a,0xc8000010,0x2c000010,0xf4000014,0xb4000008,0x08000000,0x9800000c,0xd8000010,0x08000010,0xb8000010,0x98000000,0x60000000,0x00000008,0xc0000000,0x90000014,0x10000010,0xb8000014,0x28000000,0x20000010,0x48000000,0x08000018,0x60000000,0x90000010,0xf0000010,0x90000008,0xc0000000,0x90000010,0xf0000010,0xb0000008,0x40000000,0x90000000,0xf0000010,0x90000018,0x60000000,0x90000010,0x90000010,0x90000000,0x80000000,0x00000010,0xa0000000,0x20000000,0xa0000000,0x20000010,0x00000000,0x20000010,0x20000000,0x00000010,0x20000000,0x00000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000040,0x40000002,0x80000004,0x80000080,0x80000006,0x00000049,0x00000103,0x80000009,0x80000012 } } |
|
86 | 88 | , {2,45,0,58,0,16, { 0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4,0x80000054,0x00000967 } } |
|
87 | 89 | , {2,46,0,58,0,17, { 0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4,0x80000054 } } |
|
88 | 90 | , {2,46,2,58,0,18, { 0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c,0x000005b6,0x0000106a,0x00000b90,0x00000152 } } |
|
89 | 91 | , {2,47,0,58,0,19, { 0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a,0x000002e4 } } |
|
90 | 92 | , {2,48,0,58,0,20, { 0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d,0x8000041a } } |
|
91 | 93 | , {2,49,0,58,0,21, { 0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b,0x8000016d } } |
|
92 | 94 | , {2,49,2,58,0,22, { 0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c,0x000005b6 } } |
|
93 | 95 | , {2,50,0,65,0,23, { 0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b,0x0000011b } } |
|
94 | 96 | , {2,50,2,65,0,24, { 0xd0000072,0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e,0x0000046c } } |
|
95 | 97 | , {2,51,0,65,0,25, { 0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014,0x8000024b } } |
|
96 | 98 | , {2,51,2,65,0,26, { 0x00000043,0xd0000072,0xf0000010,0xf000006a,0x80000040,0x90000070,0xb0000053,0x30000008,0x00000043,0xd0000072,0xb0000010,0xf0000062,0xc0000042,0x00000030,0xe0000042,0x20000060,0xe0000041,0x20000050,0xc0000041,0xe0000072,0xa0000003,0xc0000012,0x60000041,0xc0000032,0x20000001,0xc0000002,0xe0000042,0x60000042,0x80000002,0x00000000,0x00000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000000,0x00000040,0x80000001,0x00000060,0x80000003,0x40000002,0xc0000040,0xc0000002,0x80000000,0x80000000,0x80000002,0x00000040,0x00000002,0x80000000,0x80000000,0x80000000,0x00000002,0x00000040,0x00000000,0x80000040,0x80000002,0x00000000,0x80000000,0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000080,0x00000004,0x00000009,0x00000105,0x00000089,0x00000016,0x0000020b,0x0000011b,0x0000012d,0x0000041e,0x00000224,0x00000050,0x0000092e } } |
|
97 | 99 | , {2,52,0,65,0,27, { 0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089,0x00000014 } } |
|
98 | 100 | , {2,53,0,65,0,28, { 0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107,0x00000089 } } |
|
99 | 101 | , {2,54,0,65,0,29, { 0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b,0x80000107 } } |
|
100 | 102 | , {2,55,0,65,0,30, { 0x00000010,0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046,0x4000004b } } |
|
101 | 103 | , {2,56,0,65,0,31, { 0x2600001a,0x00000010,0x0400001c,0xcc000014,0x0c000002,0xc0000010,0xb400001c,0x3c000004,0xbc00001a,0x20000010,0x2400001c,0xec000014,0x0c000002,0xc0000010,0xb400001c,0x2c000004,0xbc000018,0xb0000010,0x0000000c,0xb8000010,0x08000018,0x78000010,0x08000014,0x70000010,0xb800001c,0xe8000000,0xb0000004,0x58000010,0xb000000c,0x48000000,0xb0000000,0xb8000010,0x98000010,0xa0000000,0x00000000,0x00000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0x20000000,0x00000010,0x60000000,0x00000018,0xe0000000,0x90000000,0x30000010,0xb0000000,0x20000000,0x20000000,0xa0000000,0x00000010,0x80000000,0x20000000,0x20000000,0x20000000,0x80000000,0x00000010,0x00000000,0x20000010,0xa0000000,0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000020,0x00000001,0x40000002,0x40000041,0x40000022,0x80000005,0xc0000082,0xc0000046 } } |
|
102 | 104 | , {0,0,0,0,0,0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} |
|
103 | 105 | }; |
|
104 | 106 | void ubc_check(const uint32_t W[80], uint32_t dvmask[1]) |
|
105 | 107 | { |
|
106 | 108 | uint32_t mask = ~((uint32_t)(0)); |
|
107 | 109 | mask &= (((((W[44]^W[45])>>29)&1)-1) | ~(DV_I_48_0_bit|DV_I_51_0_bit|DV_I_52_0_bit|DV_II_45_0_bit|DV_II_46_0_bit|DV_II_50_0_bit|DV_II_51_0_bit)); |
|
108 | 110 | mask &= (((((W[49]^W[50])>>29)&1)-1) | ~(DV_I_46_0_bit|DV_II_45_0_bit|DV_II_50_0_bit|DV_II_51_0_bit|DV_II_55_0_bit|DV_II_56_0_bit)); |
|
109 | 111 | mask &= (((((W[48]^W[49])>>29)&1)-1) | ~(DV_I_45_0_bit|DV_I_52_0_bit|DV_II_49_0_bit|DV_II_50_0_bit|DV_II_54_0_bit|DV_II_55_0_bit)); |
|
110 | 112 | mask &= ((((W[47]^(W[50]>>25))&(1<<4))-(1<<4)) | ~(DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_51_0_bit|DV_II_56_0_bit)); |
|
111 | 113 | mask &= (((((W[47]^W[48])>>29)&1)-1) | ~(DV_I_44_0_bit|DV_I_51_0_bit|DV_II_48_0_bit|DV_II_49_0_bit|DV_II_53_0_bit|DV_II_54_0_bit)); |
|
112 | 114 | mask &= (((((W[46]>>4)^(W[49]>>29))&1)-1) | ~(DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit|DV_II_50_0_bit|DV_II_55_0_bit)); |
|
113 | 115 | mask &= (((((W[46]^W[47])>>29)&1)-1) | ~(DV_I_43_0_bit|DV_I_50_0_bit|DV_II_47_0_bit|DV_II_48_0_bit|DV_II_52_0_bit|DV_II_53_0_bit)); |
|
114 | 116 | mask &= (((((W[45]>>4)^(W[48]>>29))&1)-1) | ~(DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit|DV_II_49_0_bit|DV_II_54_0_bit)); |
|
115 | 117 | mask &= (((((W[45]^W[46])>>29)&1)-1) | ~(DV_I_49_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_47_0_bit|DV_II_51_0_bit|DV_II_52_0_bit)); |
|
116 | 118 | mask &= (((((W[44]>>4)^(W[47]>>29))&1)-1) | ~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit|DV_II_48_0_bit|DV_II_53_0_bit)); |
|
117 | 119 | mask &= (((((W[43]>>4)^(W[46]>>29))&1)-1) | ~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit|DV_II_47_0_bit|DV_II_52_0_bit)); |
|
118 | 120 | mask &= (((((W[43]^W[44])>>29)&1)-1) | ~(DV_I_47_0_bit|DV_I_50_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_49_0_bit|DV_II_50_0_bit)); |
|
119 | 121 | mask &= (((((W[42]>>4)^(W[45]>>29))&1)-1) | ~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_51_0_bit)); |
|
120 | 122 | mask &= (((((W[41]>>4)^(W[44]>>29))&1)-1) | ~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_50_0_bit)); |
|
121 | 123 | mask &= (((((W[40]^W[41])>>29)&1)-1) | ~(DV_I_44_0_bit|DV_I_47_0_bit|DV_I_48_0_bit|DV_II_46_0_bit|DV_II_47_0_bit|DV_II_56_0_bit)); |
|
122 | 124 | mask &= (((((W[54]^W[55])>>29)&1)-1) | ~(DV_I_51_0_bit|DV_II_47_0_bit|DV_II_50_0_bit|DV_II_55_0_bit|DV_II_56_0_bit)); |
|
123 | 125 | mask &= (((((W[53]^W[54])>>29)&1)-1) | ~(DV_I_50_0_bit|DV_II_46_0_bit|DV_II_49_0_bit|DV_II_54_0_bit|DV_II_55_0_bit)); |
|
124 | 126 | mask &= (((((W[52]^W[53])>>29)&1)-1) | ~(DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit|DV_II_53_0_bit|DV_II_54_0_bit)); |
|
125 | 127 | mask &= ((((W[50]^(W[53]>>25))&(1<<4))-(1<<4)) | ~(DV_I_50_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_48_0_bit|DV_II_54_0_bit)); |
|
126 | 128 | mask &= (((((W[50]^W[51])>>29)&1)-1) | ~(DV_I_47_0_bit|DV_II_46_0_bit|DV_II_51_0_bit|DV_II_52_0_bit|DV_II_56_0_bit)); |
|
127 | 129 | mask &= ((((W[49]^(W[52]>>25))&(1<<4))-(1<<4)) | ~(DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit|DV_II_47_0_bit|DV_II_53_0_bit)); |
|
128 | 130 | mask &= ((((W[48]^(W[51]>>25))&(1<<4))-(1<<4)) | ~(DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit|DV_II_46_0_bit|DV_II_52_0_bit)); |
|
129 | 131 | mask &= (((((W[42]^W[43])>>29)&1)-1) | ~(DV_I_46_0_bit|DV_I_49_0_bit|DV_I_50_0_bit|DV_II_48_0_bit|DV_II_49_0_bit)); |
|
130 | 132 | mask &= (((((W[41]^W[42])>>29)&1)-1) | ~(DV_I_45_0_bit|DV_I_48_0_bit|DV_I_49_0_bit|DV_II_47_0_bit|DV_II_48_0_bit)); |
|
131 | 133 | mask &= (((((W[40]>>4)^(W[43]>>29))&1)-1) | ~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_50_0_bit|DV_II_49_0_bit|DV_II_56_0_bit)); |
|
132 | 134 | mask &= (((((W[39]>>4)^(W[42]>>29))&1)-1) | ~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_49_0_bit|DV_II_48_0_bit|DV_II_55_0_bit)); |
|
133 | 135 | if (mask & (DV_I_44_0_bit|DV_I_48_0_bit|DV_II_47_0_bit|DV_II_54_0_bit|DV_II_56_0_bit)) |
|
134 | 136 | mask &= (((((W[38]>>4)^(W[41]>>29))&1)-1) | ~(DV_I_44_0_bit|DV_I_48_0_bit|DV_II_47_0_bit|DV_II_54_0_bit|DV_II_56_0_bit)); |
|
135 | 137 | mask &= (((((W[37]>>4)^(W[40]>>29))&1)-1) | ~(DV_I_43_0_bit|DV_I_47_0_bit|DV_II_46_0_bit|DV_II_53_0_bit|DV_II_55_0_bit)); |
|
136 | 138 | if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_51_0_bit|DV_II_56_0_bit)) |
|
137 | 139 | mask &= (((((W[55]^W[56])>>29)&1)-1) | ~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_51_0_bit|DV_II_56_0_bit)); |
|
138 | 140 | if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_50_0_bit|DV_II_56_0_bit)) |
|
139 | 141 | mask &= ((((W[52]^(W[55]>>25))&(1<<4))-(1<<4)) | ~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_50_0_bit|DV_II_56_0_bit)); |
|
140 | 142 | if (mask & (DV_I_51_0_bit|DV_II_47_0_bit|DV_II_49_0_bit|DV_II_55_0_bit)) |
|
141 | 143 | mask &= ((((W[51]^(W[54]>>25))&(1<<4))-(1<<4)) | ~(DV_I_51_0_bit|DV_II_47_0_bit|DV_II_49_0_bit|DV_II_55_0_bit)); |
|
142 | 144 | if (mask & (DV_I_48_0_bit|DV_II_47_0_bit|DV_II_52_0_bit|DV_II_53_0_bit)) |
|
143 | 145 | mask &= (((((W[51]^W[52])>>29)&1)-1) | ~(DV_I_48_0_bit|DV_II_47_0_bit|DV_II_52_0_bit|DV_II_53_0_bit)); |
|
144 | 146 | if (mask & (DV_I_46_0_bit|DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit)) |
|
145 | 147 | mask &= (((((W[36]>>4)^(W[40]>>29))&1)-1) | ~(DV_I_46_0_bit|DV_I_49_0_bit|DV_II_45_0_bit|DV_II_48_0_bit)); |
|
146 | 148 | if (mask & (DV_I_52_0_bit|DV_II_48_0_bit|DV_II_49_0_bit)) |
|
147 | 149 | mask &= ((0-(((W[53]^W[56])>>29)&1)) | ~(DV_I_52_0_bit|DV_II_48_0_bit|DV_II_49_0_bit)); |
|
148 | 150 | if (mask & (DV_I_50_0_bit|DV_II_46_0_bit|DV_II_47_0_bit)) |
|
149 | 151 | mask &= ((0-(((W[51]^W[54])>>29)&1)) | ~(DV_I_50_0_bit|DV_II_46_0_bit|DV_II_47_0_bit)); |
|
150 | 152 | if (mask & (DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit)) |
|
151 | 153 | mask &= ((0-(((W[50]^W[52])>>29)&1)) | ~(DV_I_49_0_bit|DV_I_51_0_bit|DV_II_45_0_bit)); |
|
152 | 154 | if (mask & (DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit)) |
|
153 | 155 | mask &= ((0-(((W[49]^W[51])>>29)&1)) | ~(DV_I_48_0_bit|DV_I_50_0_bit|DV_I_52_0_bit)); |
|
154 | 156 | if (mask & (DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit)) |
|
155 | 157 | mask &= ((0-(((W[48]^W[50])>>29)&1)) | ~(DV_I_47_0_bit|DV_I_49_0_bit|DV_I_51_0_bit)); |
|
156 | 158 | if (mask & (DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit)) |
|
157 | 159 | mask &= ((0-(((W[47]^W[49])>>29)&1)) | ~(DV_I_46_0_bit|DV_I_48_0_bit|DV_I_50_0_bit)); |
|
158 | 160 | if (mask & (DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit)) |
|
159 | 161 | mask &= ((0-(((W[46]^W[48])>>29)&1)) | ~(DV_I_45_0_bit|DV_I_47_0_bit|DV_I_49_0_bit)); |
|
160 | 162 | mask &= ((((W[45]^W[47])&(1<<6))-(1<<6)) | ~(DV_I_47_2_bit|DV_I_49_2_bit|DV_I_51_2_bit)); |
|
161 | 163 | if (mask & (DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit)) |
|
162 | 164 | mask &= ((0-(((W[45]^W[47])>>29)&1)) | ~(DV_I_44_0_bit|DV_I_46_0_bit|DV_I_48_0_bit)); |
|
163 | 165 | mask &= (((((W[44]^W[46])>>6)&1)-1) | ~(DV_I_46_2_bit|DV_I_48_2_bit|DV_I_50_2_bit)); |
|
164 | 166 | if (mask & (DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit)) |
|
165 | 167 | mask &= ((0-(((W[44]^W[46])>>29)&1)) | ~(DV_I_43_0_bit|DV_I_45_0_bit|DV_I_47_0_bit)); |
|
166 | 168 | mask &= ((0-((W[41]^(W[42]>>5))&(1<<1))) | ~(DV_I_48_2_bit|DV_II_46_2_bit|DV_II_51_2_bit)); |
|
167 | 169 | mask &= ((0-((W[40]^(W[41]>>5))&(1<<1))) | ~(DV_I_47_2_bit|DV_I_51_2_bit|DV_II_50_2_bit)); |
|
168 | 170 | if (mask & (DV_I_44_0_bit|DV_I_46_0_bit|DV_II_56_0_bit)) |
|
169 | 171 | mask &= ((0-(((W[40]^W[42])>>4)&1)) | ~(DV_I_44_0_bit|DV_I_46_0_bit|DV_II_56_0_bit)); |
|
170 | 172 | mask &= ((0-((W[39]^(W[40]>>5))&(1<<1))) | ~(DV_I_46_2_bit|DV_I_50_2_bit|DV_II_49_2_bit)); |
|
171 | 173 | if (mask & (DV_I_43_0_bit|DV_I_45_0_bit|DV_II_55_0_bit)) |
|
172 | 174 | mask &= ((0-(((W[39]^W[41])>>4)&1)) | ~(DV_I_43_0_bit|DV_I_45_0_bit|DV_II_55_0_bit)); |
|
173 | 175 | if (mask & (DV_I_44_0_bit|DV_II_54_0_bit|DV_II_56_0_bit)) |
|
174 | 176 | mask &= ((0-(((W[38]^W[40])>>4)&1)) | ~(DV_I_44_0_bit|DV_II_54_0_bit|DV_II_56_0_bit)); |
|
175 | 177 | if (mask & (DV_I_43_0_bit|DV_II_53_0_bit|DV_II_55_0_bit)) |
|
176 | 178 | mask &= ((0-(((W[37]^W[39])>>4)&1)) | ~(DV_I_43_0_bit|DV_II_53_0_bit|DV_II_55_0_bit)); |
|
177 | 179 | mask &= ((0-((W[36]^(W[37]>>5))&(1<<1))) | ~(DV_I_47_2_bit|DV_I_50_2_bit|DV_II_46_2_bit)); |
|
178 | 180 | if (mask & (DV_I_45_0_bit|DV_I_48_0_bit|DV_II_47_0_bit)) |
|
179 | 181 | mask &= (((((W[35]>>4)^(W[39]>>29))&1)-1) | ~(DV_I_45_0_bit|DV_I_48_0_bit|DV_II_47_0_bit)); |
|
180 | 182 | if (mask & (DV_I_48_0_bit|DV_II_48_0_bit)) |
|
181 | 183 | mask &= ((0-((W[63]^(W[64]>>5))&(1<<0))) | ~(DV_I_48_0_bit|DV_II_48_0_bit)); |
|
182 | 184 | if (mask & (DV_I_45_0_bit|DV_II_45_0_bit)) |
|
183 | 185 | mask &= ((0-((W[63]^(W[64]>>5))&(1<<1))) | ~(DV_I_45_0_bit|DV_II_45_0_bit)); |
|
184 | 186 | if (mask & (DV_I_47_0_bit|DV_II_47_0_bit)) |
|
185 | 187 | mask &= ((0-((W[62]^(W[63]>>5))&(1<<0))) | ~(DV_I_47_0_bit|DV_II_47_0_bit)); |
|
186 | 188 | if (mask & (DV_I_46_0_bit|DV_II_46_0_bit)) |
|
187 | 189 | mask &= ((0-((W[61]^(W[62]>>5))&(1<<0))) | ~(DV_I_46_0_bit|DV_II_46_0_bit)); |
|
188 | 190 | mask &= ((0-((W[61]^(W[62]>>5))&(1<<2))) | ~(DV_I_46_2_bit|DV_II_46_2_bit)); |
|
189 | 191 | if (mask & (DV_I_45_0_bit|DV_II_45_0_bit)) |
|
190 | 192 | mask &= ((0-((W[60]^(W[61]>>5))&(1<<0))) | ~(DV_I_45_0_bit|DV_II_45_0_bit)); |
|
191 | 193 | if (mask & (DV_II_51_0_bit|DV_II_54_0_bit)) |
|
192 | 194 | mask &= (((((W[58]^W[59])>>29)&1)-1) | ~(DV_II_51_0_bit|DV_II_54_0_bit)); |
|
193 | 195 | if (mask & (DV_II_50_0_bit|DV_II_53_0_bit)) |
|
194 | 196 | mask &= (((((W[57]^W[58])>>29)&1)-1) | ~(DV_II_50_0_bit|DV_II_53_0_bit)); |
|
195 | 197 | if (mask & (DV_II_52_0_bit|DV_II_54_0_bit)) |
|
196 | 198 | mask &= ((((W[56]^(W[59]>>25))&(1<<4))-(1<<4)) | ~(DV_II_52_0_bit|DV_II_54_0_bit)); |
|
197 | 199 | if (mask & (DV_II_51_0_bit|DV_II_52_0_bit)) |
|
198 | 200 | mask &= ((0-(((W[56]^W[59])>>29)&1)) | ~(DV_II_51_0_bit|DV_II_52_0_bit)); |
|
199 | 201 | if (mask & (DV_II_49_0_bit|DV_II_52_0_bit)) |
|
200 | 202 | mask &= (((((W[56]^W[57])>>29)&1)-1) | ~(DV_II_49_0_bit|DV_II_52_0_bit)); |
|
201 | 203 | if (mask & (DV_II_51_0_bit|DV_II_53_0_bit)) |
|
202 | 204 | mask &= ((((W[55]^(W[58]>>25))&(1<<4))-(1<<4)) | ~(DV_II_51_0_bit|DV_II_53_0_bit)); |
|
203 | 205 | if (mask & (DV_II_50_0_bit|DV_II_52_0_bit)) |
|
204 | 206 | mask &= ((((W[54]^(W[57]>>25))&(1<<4))-(1<<4)) | ~(DV_II_50_0_bit|DV_II_52_0_bit)); |
|
205 | 207 | if (mask & (DV_II_49_0_bit|DV_II_51_0_bit)) |
|
206 | 208 | mask &= ((((W[53]^(W[56]>>25))&(1<<4))-(1<<4)) | ~(DV_II_49_0_bit|DV_II_51_0_bit)); |
|
207 | 209 | mask &= ((((W[51]^(W[50]>>5))&(1<<1))-(1<<1)) | ~(DV_I_50_2_bit|DV_II_46_2_bit)); |
|
208 | 210 | mask &= ((((W[48]^W[50])&(1<<6))-(1<<6)) | ~(DV_I_50_2_bit|DV_II_46_2_bit)); |
|
209 | 211 | if (mask & (DV_I_51_0_bit|DV_I_52_0_bit)) |
|
210 | 212 | mask &= ((0-(((W[48]^W[55])>>29)&1)) | ~(DV_I_51_0_bit|DV_I_52_0_bit)); |
|
211 | 213 | mask &= ((((W[47]^W[49])&(1<<6))-(1<<6)) | ~(DV_I_49_2_bit|DV_I_51_2_bit)); |
|
212 | 214 | mask &= ((((W[48]^(W[47]>>5))&(1<<1))-(1<<1)) | ~(DV_I_47_2_bit|DV_II_51_2_bit)); |
|
213 | 215 | mask &= ((((W[46]^W[48])&(1<<6))-(1<<6)) | ~(DV_I_48_2_bit|DV_I_50_2_bit)); |
|
214 | 216 | mask &= ((((W[47]^(W[46]>>5))&(1<<1))-(1<<1)) | ~(DV_I_46_2_bit|DV_II_50_2_bit)); |
|
215 | 217 | mask &= ((0-((W[44]^(W[45]>>5))&(1<<1))) | ~(DV_I_51_2_bit|DV_II_49_2_bit)); |
|
216 | 218 | mask &= ((((W[43]^W[45])&(1<<6))-(1<<6)) | ~(DV_I_47_2_bit|DV_I_49_2_bit)); |
|
217 | 219 | mask &= (((((W[42]^W[44])>>6)&1)-1) | ~(DV_I_46_2_bit|DV_I_48_2_bit)); |
|
218 | 220 | mask &= ((((W[43]^(W[42]>>5))&(1<<1))-(1<<1)) | ~(DV_II_46_2_bit|DV_II_51_2_bit)); |
|
219 | 221 | mask &= ((((W[42]^(W[41]>>5))&(1<<1))-(1<<1)) | ~(DV_I_51_2_bit|DV_II_50_2_bit)); |
|
220 | 222 | mask &= ((((W[41]^(W[40]>>5))&(1<<1))-(1<<1)) | ~(DV_I_50_2_bit|DV_II_49_2_bit)); |
|
221 | 223 | if (mask & (DV_I_52_0_bit|DV_II_51_0_bit)) |
|
222 | 224 | mask &= ((((W[39]^(W[43]>>25))&(1<<4))-(1<<4)) | ~(DV_I_52_0_bit|DV_II_51_0_bit)); |
|
223 | 225 | if (mask & (DV_I_51_0_bit|DV_II_50_0_bit)) |
|
224 | 226 | mask &= ((((W[38]^(W[42]>>25))&(1<<4))-(1<<4)) | ~(DV_I_51_0_bit|DV_II_50_0_bit)); |
|
225 | 227 | if (mask & (DV_I_48_2_bit|DV_I_51_2_bit)) |
|
226 | 228 | mask &= ((0-((W[37]^(W[38]>>5))&(1<<1))) | ~(DV_I_48_2_bit|DV_I_51_2_bit)); |
|
227 | 229 | if (mask & (DV_I_50_0_bit|DV_II_49_0_bit)) |
|
228 | 230 | mask &= ((((W[37]^(W[41]>>25))&(1<<4))-(1<<4)) | ~(DV_I_50_0_bit|DV_II_49_0_bit)); |
|
229 | 231 | if (mask & (DV_II_52_0_bit|DV_II_54_0_bit)) |
|
230 | 232 | mask &= ((0-((W[36]^W[38])&(1<<4))) | ~(DV_II_52_0_bit|DV_II_54_0_bit)); |
|
231 | 233 | mask &= ((0-((W[35]^(W[36]>>5))&(1<<1))) | ~(DV_I_46_2_bit|DV_I_49_2_bit)); |
|
232 | 234 | if (mask & (DV_I_51_0_bit|DV_II_47_0_bit)) |
|
233 | 235 | mask &= ((((W[35]^(W[39]>>25))&(1<<3))-(1<<3)) | ~(DV_I_51_0_bit|DV_II_47_0_bit)); |
|
234 | 236 | if (mask) { |
|
235 | 237 | |
|
236 | 238 | if (mask & DV_I_43_0_bit) |
|
237 | 239 | if ( |
|
238 | 240 | !((W[61]^(W[62]>>5)) & (1<<1)) |
|
239 | 241 | || !(!((W[59]^(W[63]>>25)) & (1<<5))) |
|
240 | 242 | || !((W[58]^(W[63]>>30)) & (1<<0)) |
|
241 | 243 | ) mask &= ~DV_I_43_0_bit; |
|
242 | 244 | if (mask & DV_I_44_0_bit) |
|
243 | 245 | if ( |
|
244 | 246 | !((W[62]^(W[63]>>5)) & (1<<1)) |
|
245 | 247 | || !(!((W[60]^(W[64]>>25)) & (1<<5))) |
|
246 | 248 | || !((W[59]^(W[64]>>30)) & (1<<0)) |
|
247 | 249 | ) mask &= ~DV_I_44_0_bit; |
|
248 | 250 | if (mask & DV_I_46_2_bit) |
|
249 | 251 | mask &= ((~((W[40]^W[42])>>2)) | ~DV_I_46_2_bit); |
|
250 | 252 | if (mask & DV_I_47_2_bit) |
|
251 | 253 | if ( |
|
252 | 254 | !((W[62]^(W[63]>>5)) & (1<<2)) |
|
253 | 255 | || !(!((W[41]^W[43]) & (1<<6))) |
|
254 | 256 | ) mask &= ~DV_I_47_2_bit; |
|
255 | 257 | if (mask & DV_I_48_2_bit) |
|
256 | 258 | if ( |
|
257 | 259 | !((W[63]^(W[64]>>5)) & (1<<2)) |
|
258 | 260 | || !(!((W[48]^(W[49]<<5)) & (1<<6))) |
|
259 | 261 | ) mask &= ~DV_I_48_2_bit; |
|
260 | 262 | if (mask & DV_I_49_2_bit) |
|
261 | 263 | if ( |
|
262 | 264 | !(!((W[49]^(W[50]<<5)) & (1<<6))) |
|
263 | 265 | || !((W[42]^W[50]) & (1<<1)) |
|
264 | 266 | || !(!((W[39]^(W[40]<<5)) & (1<<6))) |
|
265 | 267 | || !((W[38]^W[40]) & (1<<1)) |
|
266 | 268 | ) mask &= ~DV_I_49_2_bit; |
|
267 | 269 | if (mask & DV_I_50_0_bit) |
|
268 | 270 | mask &= ((((W[36]^W[37])<<7)) | ~DV_I_50_0_bit); |
|
269 | 271 | if (mask & DV_I_50_2_bit) |
|
270 | 272 | mask &= ((((W[43]^W[51])<<11)) | ~DV_I_50_2_bit); |
|
271 | 273 | if (mask & DV_I_51_0_bit) |
|
272 | 274 | mask &= ((((W[37]^W[38])<<9)) | ~DV_I_51_0_bit); |
|
273 | 275 | if (mask & DV_I_51_2_bit) |
|
274 | 276 | if ( |
|
275 | 277 | !(!((W[51]^(W[52]<<5)) & (1<<6))) |
|
276 | 278 | || !(!((W[49]^W[51]) & (1<<6))) |
|
277 | 279 | || !(!((W[37]^(W[37]>>5)) & (1<<1))) |
|
278 | 280 | || !(!((W[35]^(W[39]>>25)) & (1<<5))) |
|
279 | 281 | ) mask &= ~DV_I_51_2_bit; |
|
280 | 282 | if (mask & DV_I_52_0_bit) |
|
281 | 283 | mask &= ((((W[38]^W[39])<<11)) | ~DV_I_52_0_bit); |
|
282 | 284 | if (mask & DV_II_46_2_bit) |
|
283 | 285 | mask &= ((((W[47]^W[51])<<17)) | ~DV_II_46_2_bit); |
|
284 | 286 | if (mask & DV_II_48_0_bit) |
|
285 | 287 | if ( |
|
286 | 288 | !(!((W[36]^(W[40]>>25)) & (1<<3))) |
|
287 | 289 | || !((W[35]^(W[40]<<2)) & (1<<30)) |
|
288 | 290 | ) mask &= ~DV_II_48_0_bit; |
|
289 | 291 | if (mask & DV_II_49_0_bit) |
|
290 | 292 | if ( |
|
291 | 293 | !(!((W[37]^(W[41]>>25)) & (1<<3))) |
|
292 | 294 | || !((W[36]^(W[41]<<2)) & (1<<30)) |
|
293 | 295 | ) mask &= ~DV_II_49_0_bit; |
|
294 | 296 | if (mask & DV_II_49_2_bit) |
|
295 | 297 | if ( |
|
296 | 298 | !(!((W[53]^(W[54]<<5)) & (1<<6))) |
|
297 | 299 | || !(!((W[51]^W[53]) & (1<<6))) |
|
298 | 300 | || !((W[50]^W[54]) & (1<<1)) |
|
299 | 301 | || !(!((W[45]^(W[46]<<5)) & (1<<6))) |
|
300 | 302 | || !(!((W[37]^(W[41]>>25)) & (1<<5))) |
|
301 | 303 | || !((W[36]^(W[41]>>30)) & (1<<0)) |
|
302 | 304 | ) mask &= ~DV_II_49_2_bit; |
|
303 | 305 | if (mask & DV_II_50_0_bit) |
|
304 | 306 | if ( |
|
305 | 307 | !((W[55]^W[58]) & (1<<29)) |
|
306 | 308 | || !(!((W[38]^(W[42]>>25)) & (1<<3))) |
|
307 | 309 | || !((W[37]^(W[42]<<2)) & (1<<30)) |
|
308 | 310 | ) mask &= ~DV_II_50_0_bit; |
|
309 | 311 | if (mask & DV_II_50_2_bit) |
|
310 | 312 | if ( |
|
311 | 313 | !(!((W[54]^(W[55]<<5)) & (1<<6))) |
|
312 | 314 | || !(!((W[52]^W[54]) & (1<<6))) |
|
313 | 315 | || !((W[51]^W[55]) & (1<<1)) |
|
314 | 316 | || !((W[45]^W[47]) & (1<<1)) |
|
315 | 317 | || !(!((W[38]^(W[42]>>25)) & (1<<5))) |
|
316 | 318 | || !((W[37]^(W[42]>>30)) & (1<<0)) |
|
317 | 319 | ) mask &= ~DV_II_50_2_bit; |
|
318 | 320 | if (mask & DV_II_51_0_bit) |
|
319 | 321 | if ( |
|
320 | 322 | !(!((W[39]^(W[43]>>25)) & (1<<3))) |
|
321 | 323 | || !((W[38]^(W[43]<<2)) & (1<<30)) |
|
322 | 324 | ) mask &= ~DV_II_51_0_bit; |
|
323 | 325 | if (mask & DV_II_51_2_bit) |
|
324 | 326 | if ( |
|
325 | 327 | !(!((W[55]^(W[56]<<5)) & (1<<6))) |
|
326 | 328 | || !(!((W[53]^W[55]) & (1<<6))) |
|
327 | 329 | || !((W[52]^W[56]) & (1<<1)) |
|
328 | 330 | || !((W[46]^W[48]) & (1<<1)) |
|
329 | 331 | || !(!((W[39]^(W[43]>>25)) & (1<<5))) |
|
330 | 332 | || !((W[38]^(W[43]>>30)) & (1<<0)) |
|
331 | 333 | ) mask &= ~DV_II_51_2_bit; |
|
332 | 334 | if (mask & DV_II_52_0_bit) |
|
333 | 335 | if ( |
|
334 | 336 | !(!((W[59]^W[60]) & (1<<29))) |
|
335 | 337 | || !(!((W[40]^(W[44]>>25)) & (1<<3))) |
|
336 | 338 | || !(!((W[40]^(W[44]>>25)) & (1<<4))) |
|
337 | 339 | || !((W[39]^(W[44]<<2)) & (1<<30)) |
|
338 | 340 | ) mask &= ~DV_II_52_0_bit; |
|
339 | 341 | if (mask & DV_II_53_0_bit) |
|
340 | 342 | if ( |
|
341 | 343 | !((W[58]^W[61]) & (1<<29)) |
|
342 | 344 | || !(!((W[57]^(W[61]>>25)) & (1<<4))) |
|
343 | 345 | || !(!((W[41]^(W[45]>>25)) & (1<<3))) |
|
344 | 346 | || !(!((W[41]^(W[45]>>25)) & (1<<4))) |
|
345 | 347 | ) mask &= ~DV_II_53_0_bit; |
|
346 | 348 | if (mask & DV_II_54_0_bit) |
|
347 | 349 | if ( |
|
348 | 350 | !(!((W[58]^(W[62]>>25)) & (1<<4))) |
|
349 | 351 | || !(!((W[42]^(W[46]>>25)) & (1<<3))) |
|
350 | 352 | || !(!((W[42]^(W[46]>>25)) & (1<<4))) |
|
351 | 353 | ) mask &= ~DV_II_54_0_bit; |
|
352 | 354 | if (mask & DV_II_55_0_bit) |
|
353 | 355 | if ( |
|
354 | 356 | !(!((W[59]^(W[63]>>25)) & (1<<4))) |
|
355 | 357 | || !(!((W[57]^(W[59]>>25)) & (1<<4))) |
|
356 | 358 | || !(!((W[43]^(W[47]>>25)) & (1<<3))) |
|
357 | 359 | || !(!((W[43]^(W[47]>>25)) & (1<<4))) |
|
358 | 360 | ) mask &= ~DV_II_55_0_bit; |
|
359 | 361 | if (mask & DV_II_56_0_bit) |
|
360 | 362 | if ( |
|
361 | 363 | !(!((W[60]^(W[64]>>25)) & (1<<4))) |
|
362 | 364 | || !(!((W[44]^(W[48]>>25)) & (1<<3))) |
|
363 | 365 | || !(!((W[44]^(W[48]>>25)) & (1<<4))) |
|
364 | 366 | ) mask &= ~DV_II_56_0_bit; |
|
365 | 367 | } |
|
366 | 368 | |
|
367 | 369 | dvmask[0]=mask; |
|
368 | 370 | } |
|
369 | 371 | |
|
370 | 372 | #ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C |
|
371 | 373 | #include SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C |
|
372 | 374 | #endif |
@@ -1,52 +1,57 b'' | |||
|
1 | 1 | /*** |
|
2 | 2 | * Copyright 2017 Marc Stevens <marc@marc-stevens.nl>, Dan Shumow <danshu@microsoft.com> |
|
3 | 3 | * Distributed under the MIT Software License. |
|
4 | 4 | * See accompanying file LICENSE.txt or copy at |
|
5 | 5 | * https://opensource.org/licenses/MIT |
|
6 | 6 | ***/ |
|
7 | 7 | |
|
8 | 8 | /* |
|
9 | 9 | // this file was generated by the 'parse_bitrel' program in the tools section |
|
10 | 10 | // using the data files from directory 'tools/data/3565' |
|
11 | 11 | // |
|
12 | 12 | // sha1_dvs contains a list of SHA-1 Disturbance Vectors (DV) to check |
|
13 | 13 | // dvType, dvK and dvB define the DV: I(K,B) or II(K,B) (see the paper) |
|
14 | 14 | // dm[80] is the expanded message block XOR-difference defined by the DV |
|
15 | 15 | // testt is the step to do the recompression from for collision detection |
|
16 | 16 | // maski and maskb define the bit to check for each DV in the dvmask returned by ubc_check |
|
17 | 17 | // |
|
18 | 18 | // ubc_check takes as input an expanded message block and verifies the unavoidable bitconditions for all listed DVs |
|
19 | 19 | // it returns a dvmask where each bit belonging to a DV is set if all unavoidable bitconditions for that DV have been met |
|
20 | 20 | // thus one needs to do the recompression check for each DV that has its bit set |
|
21 | 21 | */ |
|
22 | 22 | |
|
23 | 23 | #ifndef SHA1DC_UBC_CHECK_H |
|
24 | 24 | #define SHA1DC_UBC_CHECK_H |
|
25 | 25 | |
|
26 | 26 | #if defined(__cplusplus) |
|
27 | 27 | extern "C" { |
|
28 | 28 | #endif |
|
29 | 29 | |
|
30 | 30 | #ifndef SHA1DC_NO_STANDARD_INCLUDES |
|
31 | #if !defined(_MSC_VER) || _MSC_VER >= 1600 | |
|
31 | 32 | #include <stdint.h> |
|
33 | #else | |
|
34 | /* prior to Visual Studio 2010 */ | |
|
35 | typedef unsigned __int32 uint32_t; | |
|
36 | #endif | |
|
32 | 37 | #endif |
|
33 | 38 | |
|
34 | 39 | #define DVMASKSIZE 1 |
|
35 | 40 | typedef struct { int dvType; int dvK; int dvB; int testt; int maski; int maskb; uint32_t dm[80]; } dv_info_t; |
|
36 | 41 | extern dv_info_t sha1_dvs[]; |
|
37 | 42 | void ubc_check(const uint32_t W[80], uint32_t dvmask[DVMASKSIZE]); |
|
38 | 43 | |
|
39 | 44 | #define DOSTORESTATE58 |
|
40 | 45 | #define DOSTORESTATE65 |
|
41 | 46 | |
|
42 | 47 | #define CHECK_DVMASK(_DVMASK) (0 != _DVMASK[0]) |
|
43 | 48 | |
|
44 | 49 | #if defined(__cplusplus) |
|
45 | 50 | } |
|
46 | 51 | #endif |
|
47 | 52 | |
|
48 | 53 | #ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H |
|
49 | 54 | #include SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H |
|
50 | 55 | #endif |
|
51 | 56 | |
|
52 | 57 | #endif |
General Comments 0
You need to be logged in to leave comments.
Login now