Lines Matching refs:ctx
39 MD5_CTX ctx;
42 MD5Init(&ctx);
44 MD5Update(&ctx, addr[i], len[i]);
45 MD5Final(mac, &ctx);
90 void MD5Init(struct MD5Context *ctx)
92 ctx->buf[0] = 0x67452301;
93 ctx->buf[1] = 0xefcdab89;
94 ctx->buf[2] = 0x98badcfe;
95 ctx->buf[3] = 0x10325476;
97 ctx->bits[0] = 0;
98 ctx->bits[1] = 0;
105 void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
111 t = ctx->bits[0];
112 if ((ctx->bits[0] = t + ((u32) len << 3)) < t)
113 ctx->bits[1]++; /* Carry from low to high */
114 ctx->bits[1] += len >> 29;
121 unsigned char *p = (unsigned char *) ctx->in + t;
129 byteReverse(ctx->in, 16);
130 MD5Transform(ctx->buf, (u32 *) ctx->in);
137 os_memcpy(ctx->in, buf, 64);
138 byteReverse(ctx->in, 16);
139 MD5Transform(ctx->buf, (u32 *) ctx->in);
146 os_memcpy(ctx->in, buf, len);
153 void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
159 count = (ctx->bits[0] >> 3) & 0x3F;
163 p = ctx->in + count;
173 byteReverse(ctx->in, 16);
174 MD5Transform(ctx->buf, (u32 *) ctx->in);
177 os_memset(ctx->in, 0, 56);
182 byteReverse(ctx->in, 14);
185 ((u32 *) ctx->in)[14] = ctx->bits[0];
186 ((u32 *) ctx->in)[15] = ctx->bits[1];
188 MD5Transform(ctx->buf, (u32 *) ctx->in);
189 byteReverse((unsigned char *) ctx->buf, 4);
190 os_memcpy(digest, ctx->buf, 16);
191 os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */