64 return ( ( ( v->
b & v->
c ) | ( ~v->
b & v->
d ) ) + v->
w[i] );
75 return ( ( ( v->
b & v->
c ) | ( v->
b & v->
d ) | ( v->
c & v->
d ) ) +
76 v->
w[ ( ( i << 2 ) | ( i >> 2 ) ) % 16 ] );
87 static const uint8_t reverse[16] = {
88 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15
90 return ( ( v->
b ^ v->
c ^ v->
d ) + v->
w[reverse[i]] );
110 { .f =
md4_f_0_15, .constant = 0x00000000UL },
119 .h = { 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 }
155 for ( i = 0 ; i < 48 ; i++ ) {
158 f =
step->f ( v, ( i % 16 ) );
162 *b =
rol32 ( ( *a +
f +
step->constant ),
r[round][ i % 4 ] );
169 for ( i = 0 ; i < 4 ; i++ )
typeof(acpi_finder=acpi_find)
ACPI table finder.
#define build_assert(condition)
Assert a condition at build time (after dead code elimination).
union @104331263140136355135267063077374276003064103115 u
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
#define __LITTLE_ENDIAN
Constant representing little-endian byte order.
static const uint8_t r[3][4]
MD4 shift amounts.
static const struct md4_digest md4_init
MD4 initial digest values.
static const struct md4_step md4_steps[4]
MD4 steps.
static uint32_t md4_f_32_47(struct md4_variables *v, unsigned int i)
f(b,c,d,w) for steps 32 to 47
static uint32_t md4_f_16_31(struct md4_variables *v, unsigned int i)
f(b,c,d,w) for steps 16 to 31
static void md4_compress(struct md4_digest_data *dd, const struct md4_digest *digest)
Calculate MD4 digest of accumulated data.
static uint32_t md4_f_0_15(struct md4_variables *v, unsigned int i)
f(b,c,d,w) for steps 0 to 15
#define MD4_DIGEST_SIZE
MD4 digest size.
struct digest_algorithm md4_algorithm
#define MDHASH_ALGORITHM(_name, _digest, _compress, _byteorder, _dd, _init, _digestsize)
Define a Merkle-Damgård hash algorithm.
void step(void)
Single-step a single process.
#define container_of(ptr, type, field)
Get containing structure.
MD4 digest and data block.
struct md4_digest digest
Digest of data already processed.
uint32_t h[4]
Hash output.
uint32_t constant
Constant.
uint32_t(* f)(struct md4_variables *v, unsigned int i)
Calculate f(b,c,d,w).
static u32 rol32(u32 v, int bits)
Rotate 32-bit value left.