Lines Matching +full:- +full:z
35 return -1; in md4_vector()
45 /* ===== start - public domain MD4 implementation ===== */
49 * This code implements the MD4 message-digest algorithm.
63 * will fill a supplied 16-byte array with the digest.
100 ctx->count = 0; in MD4Init()
101 ctx->state[0] = 0x67452301; in MD4Init()
102 ctx->state[1] = 0xefcdab89; in MD4Init()
103 ctx->state[2] = 0x98badcfe; in MD4Init()
104 ctx->state[3] = 0x10325476; in MD4Init()
116 have = (size_t)((ctx->count >> 3) & (MD4_BLOCK_LENGTH - 1)); in MD4Update()
117 need = MD4_BLOCK_LENGTH - have; in MD4Update()
120 ctx->count += (u64)len << 3; in MD4Update()
124 os_memcpy(ctx->buffer + have, input, need); in MD4Update()
125 MD4Transform(ctx->state, ctx->buffer); in MD4Update()
127 len -= need; in MD4Update()
131 /* Process data in MD4_BLOCK_LENGTH-byte chunks. */ in MD4Update()
133 MD4Transform(ctx->state, input); in MD4Update()
135 len -= MD4_BLOCK_LENGTH; in MD4Update()
141 os_memcpy(ctx->buffer + have, input, len); in MD4Update()
145 * Pad pad to 64-byte boundary with the bit pattern
146 * 1 0* (64-bit count of bits processed, MSB-first)
154 PUT_64BIT_LE(count, ctx->count); in MD4Pad()
157 padlen = MD4_BLOCK_LENGTH - in MD4Pad()
158 ((ctx->count >> 3) & (MD4_BLOCK_LENGTH - 1)); in MD4Pad()
161 MD4Update(ctx, PADDING, padlen - 8); /* padlen - 8 <= 64 */ in MD4Pad()
166 * Final wrapup--call MD4Pad, fill in digest and zero out ctx.
175 PUT_32BIT_LE(digest + i * 4, ctx->state[i]); in MD4Final()
181 /* The three core functions - F1 is optimized somewhat */
183 /* #define F1(x, y, z) (x & y | ~x & z) */
184 #define F1(x, y, z) (z ^ (x & (y ^ z))) argument
185 #define F2(x, y, z) ((x & y) | (x & z) | (y & z)) argument
186 #define F3(x, y, z) (x ^ y ^ z) argument
189 #define MD4STEP(f, w, x, y, z, data, s) \ argument
190 ( w += f(x, y, z) + data, w = w<<s | w>>(32-s) )
275 /* ===== end - public domain MD4 implementation ===== */