sha1dc 0.1.2

Hardware-accelerated SHA-1 with collision detection
Documentation
//! The published bitconditions, as data for the tests.
//!
//! @generated by `codegen/` — do not edit by hand. Edit the table in
//! `codegen/src/ubc.rs` and re-run it.
//!
//! Each entry is `(i, a, j, b, c, dvs)`: bit `a` of `w[i]` XOR bit `b` of
//! `w[j]` must equal `c`, or every DV in `dvs` is ruled out.
//!
//! The check does not use these. It uses a different basis of the same
//! space, chosen to suit vector code. The tests use the published form
//! because it is per DV: solving the entries for one DV gives a message
//! that keeps that DV alive, and so reaches the checks behind it.

/// The conditions, in the order they were published.
pub(super) const CONDITIONS: [(u8, u8, u8, u8, u8, u32); 156] = [
    (35, 1, 36, 6, 1, 0x00000410),
    (35, 3, 39, 28, 0, 0x00082000),
    (35, 4, 39, 29, 0, 0x00080084),
    (35, 5, 39, 30, 0, 0x00004000),
    (35, 30, 40, 28, 1, 0x00100000),
    (36, 0, 41, 30, 1, 0x00400000),
    (36, 1, 37, 6, 1, 0x00041040),
    (36, 3, 40, 28, 0, 0x00100000),
    (36, 4, 37, 4, 1, 0x00000800),
    (36, 4, 38, 4, 1, 0x28000000),
    (36, 4, 40, 29, 0, 0x00110208),
    (36, 30, 41, 28, 1, 0x00200000),
    (37, 0, 42, 30, 1, 0x01000000),
    (37, 1, 37, 6, 0, 0x00004000),
    (37, 1, 38, 6, 1, 0x00004100),
    (37, 3, 41, 28, 0, 0x00200000),
    (37, 4, 38, 4, 1, 0x00002000),
    (37, 4, 39, 4, 1, 0x50000001),
    (37, 4, 40, 29, 0, 0x50020021),
    (37, 4, 41, 29, 0, 0x00200800),
    (37, 5, 41, 30, 0, 0x00400000),
    (37, 30, 42, 28, 1, 0x00800000),
    (38, 0, 43, 30, 1, 0x04000000),
    (38, 1, 40, 1, 1, 0x00000400),
    (38, 3, 42, 28, 0, 0x00800000),
    (38, 4, 39, 4, 1, 0x00008000),
    (38, 4, 40, 4, 1, 0xa0000002),
    (38, 4, 41, 29, 0, 0xa0080082),
    (38, 4, 42, 29, 0, 0x00802000),
    (38, 5, 42, 30, 0, 0x01000000),
    (38, 30, 43, 28, 1, 0x02000000),
    (39, 1, 40, 6, 1, 0x00401010),
    (39, 3, 43, 28, 0, 0x02000000),
    (39, 4, 41, 4, 1, 0x40000005),
    (39, 4, 42, 29, 0, 0x40100205),
    (39, 4, 43, 29, 0, 0x02008000),
    (39, 5, 43, 30, 0, 0x04000000),
    (39, 6, 40, 1, 0, 0x00000400),
    (39, 30, 44, 28, 1, 0x08000000),
    (40, 1, 41, 6, 1, 0x01004040),
    (40, 3, 44, 28, 0, 0x08000000),
    (40, 4, 42, 4, 1, 0x8000000a),
    (40, 4, 43, 29, 0, 0x8020080a),
    (40, 4, 44, 29, 0, 0x08000000),
    (40, 6, 41, 1, 0, 0x00401000),
    (40, 6, 42, 6, 0, 0x00000010),
    (40, 29, 41, 29, 0, 0x800a00a2),
    (41, 1, 42, 6, 1, 0x04040100),
    (41, 3, 45, 28, 0, 0x10000000),
    (41, 4, 44, 29, 0, 0x00812025),
    (41, 4, 45, 29, 0, 0x10000000),
    (41, 6, 42, 1, 0, 0x01004000),
    (41, 6, 43, 6, 0, 0x00000040),
    (41, 29, 42, 29, 0, 0x00180284),
    (42, 1, 50, 1, 1, 0x00000400),
    (42, 3, 46, 28, 0, 0x20000000),
    (42, 4, 45, 29, 0, 0x0202808a),
    (42, 4, 46, 29, 0, 0x20000000),
    (42, 6, 43, 1, 0, 0x04040000),
    (42, 6, 44, 6, 0, 0x00000110),
    (42, 29, 43, 29, 0, 0x00300a08),
    (43, 1, 51, 1, 1, 0x00001000),
    (43, 3, 47, 28, 0, 0x40000000),
    (43, 4, 46, 29, 0, 0x08080225),
    (43, 4, 47, 29, 0, 0x40000000),
    (43, 6, 45, 6, 0, 0x00000440),
    (43, 29, 44, 29, 0, 0x00a12820),
    (44, 1, 45, 6, 1, 0x00404000),
    (44, 3, 48, 28, 0, 0x80000000),
    (44, 4, 47, 29, 0, 0x1010088a),
    (44, 4, 48, 29, 0, 0x80000000),
    (44, 6, 46, 6, 0, 0x00001110),
    (44, 29, 45, 29, 0, 0x0283a080),
    (44, 29, 46, 29, 1, 0x00000025),
    (45, 1, 47, 1, 1, 0x01000000),
    (45, 4, 48, 29, 0, 0x20202224),
    (45, 6, 46, 1, 0, 0x00400000),
    (45, 6, 47, 6, 0, 0x00004440),
    (45, 29, 46, 29, 0, 0x0a0a8200),
    (45, 29, 47, 29, 1, 0x0000008a),
    (46, 1, 48, 1, 1, 0x04000000),
    (46, 4, 49, 29, 0, 0x40808888),
    (46, 6, 47, 1, 0, 0x01000010),
    (46, 6, 48, 6, 0, 0x00001100),
    (46, 29, 47, 29, 0, 0x18180801),
    (46, 29, 48, 29, 1, 0x00000224),
    (47, 1, 51, 1, 1, 0x00040000),
    (47, 4, 50, 29, 0, 0x82012220),
    (47, 6, 48, 1, 0, 0x04000040),
    (47, 6, 49, 6, 0, 0x00004400),
    (47, 29, 48, 29, 0, 0x30302002),
    (47, 29, 49, 29, 1, 0x00000888),
    (48, 4, 51, 29, 0, 0x08028880),
    (48, 6, 49, 1, 0, 0x00000100),
    (48, 6, 50, 6, 0, 0x00041000),
    (48, 29, 49, 29, 0, 0x60a08004),
    (48, 29, 50, 29, 1, 0x00002220),
    (48, 29, 55, 29, 1, 0x0000a000),
    (49, 4, 52, 29, 0, 0x10092200),
    (49, 6, 50, 1, 0, 0x00000400),
    (49, 6, 51, 6, 0, 0x00004000),
    (49, 29, 50, 29, 0, 0xc2810008),
    (49, 29, 51, 29, 1, 0x00008880),
    (50, 1, 54, 1, 1, 0x00400000),
    (50, 4, 53, 29, 0, 0x20128800),
    (50, 6, 51, 1, 0, 0x00041000),
    (50, 29, 51, 29, 0, 0x8a020020),
    (50, 29, 52, 29, 1, 0x00012200),
    (51, 1, 55, 1, 1, 0x01000000),
    (51, 4, 54, 29, 0, 0x40282000),
    (51, 6, 52, 1, 0, 0x00004000),
    (51, 6, 53, 6, 0, 0x00400000),
    (51, 29, 52, 29, 0, 0x18080080),
    (51, 29, 54, 29, 1, 0x000a0800),
    (52, 1, 56, 1, 1, 0x04000000),
    (52, 4, 55, 29, 0, 0x80908000),
    (52, 6, 54, 6, 0, 0x01000000),
    (52, 29, 53, 29, 0, 0x30110200),
    (53, 4, 56, 29, 0, 0x02200000),
    (53, 6, 54, 1, 0, 0x00400000),
    (53, 6, 55, 6, 0, 0x04000000),
    (53, 29, 54, 29, 0, 0x60220800),
    (53, 29, 56, 29, 1, 0x00308000),
    (54, 4, 57, 29, 0, 0x08800000),
    (54, 6, 55, 1, 0, 0x01000000),
    (54, 29, 55, 29, 0, 0xc0882000),
    (55, 4, 58, 29, 0, 0x12000000),
    (55, 6, 56, 1, 0, 0x04000000),
    (55, 29, 56, 29, 0, 0x82108000),
    (55, 29, 58, 29, 1, 0x00800000),
    (56, 4, 59, 29, 0, 0x28000000),
    (56, 29, 57, 29, 0, 0x08200000),
    (56, 29, 59, 29, 1, 0x0a000000),
    (57, 4, 59, 29, 0, 0x40000000),
    (57, 4, 61, 29, 0, 0x10000000),
    (57, 29, 58, 29, 0, 0x10800000),
    (58, 0, 63, 30, 1, 0x00000001),
    (58, 4, 62, 29, 0, 0x20000000),
    (58, 29, 59, 29, 0, 0x22000000),
    (58, 29, 61, 29, 1, 0x10000000),
    (59, 0, 64, 30, 1, 0x00000002),
    (59, 4, 63, 29, 0, 0x40000000),
    (59, 5, 63, 30, 0, 0x00000001),
    (59, 29, 60, 29, 0, 0x08000000),
    (60, 0, 61, 5, 1, 0x00010004),
    (60, 4, 64, 29, 0, 0x80000000),
    (60, 5, 64, 30, 0, 0x00000002),
    (61, 0, 62, 5, 1, 0x00020008),
    (61, 1, 62, 6, 1, 0x00000001),
    (61, 2, 62, 7, 1, 0x00040010),
    (62, 0, 63, 5, 1, 0x00080020),
    (62, 1, 63, 6, 1, 0x00000002),
    (62, 2, 63, 7, 1, 0x00000040),
    (63, 0, 64, 5, 1, 0x00100080),
    (63, 1, 64, 6, 1, 0x00010004),
    (63, 2, 64, 7, 1, 0x00000100),
];