Lines Matching refs:ctx

58 static void SHA1_Transform(SHA_CTX *ctx)  in SHA1_Transform()  argument
64 A = ctx->state[0]; in SHA1_Transform()
65 B = ctx->state[1]; in SHA1_Transform()
66 C = ctx->state[2]; in SHA1_Transform()
67 D = ctx->state[3]; in SHA1_Transform()
68 E = ctx->state[4]; in SHA1_Transform()
71 E += ror27(A) + (W[t] = bswap_32(ctx->buf.w[t])) + (D ^ (B & (C ^ D))) + \ in SHA1_Transform()
147 ctx->state[0] += A; in SHA1_Transform()
148 ctx->state[1] += B; in SHA1_Transform()
149 ctx->state[2] += C; in SHA1_Transform()
150 ctx->state[3] += D; in SHA1_Transform()
151 ctx->state[4] += E; in SHA1_Transform()
154 void SHA_update(SHA_CTX *ctx, const void *data, int len) in SHA_update() argument
156 int i = ctx->count % sizeof(ctx->buf); in SHA_update()
159 ctx->count += len; in SHA_update()
161 while (len > sizeof(ctx->buf) - i) { in SHA_update()
162 memcpy(&ctx->buf.b[i], p, sizeof(ctx->buf) - i); in SHA_update()
163 len -= sizeof(ctx->buf) - i; in SHA_update()
164 p += sizeof(ctx->buf) - i; in SHA_update()
165 SHA1_Transform(ctx); in SHA_update()
170 ctx->buf.b[i++] = *p++; in SHA_update()
171 if (i == sizeof(ctx->buf)) { in SHA_update()
172 SHA1_Transform(ctx); in SHA_update()
178 const uint8_t *SHA_final(SHA_CTX *ctx) in SHA_final() argument
180 uint64_t cnt = ctx->count * 8; in SHA_final()
183 SHA_update(ctx, (uint8_t *)"\x80", 1); in SHA_final()
184 while ((ctx->count % sizeof(ctx->buf)) != (sizeof(ctx->buf) - 8)) { in SHA_final()
185 SHA_update(ctx, (uint8_t *)"\0", 1); in SHA_final()
189 SHA_update(ctx, &tmp, 1); in SHA_final()
193 ctx->buf.w[i] = bswap_32(ctx->state[i]); in SHA_final()
196 return ctx->buf.b; in SHA_final()
203 static void SHA1_transform(SHA_CTX *ctx) in SHA1_transform() argument
207 uint8_t *p = ctx->buf; in SHA1_transform()
222 A = ctx->state[0]; in SHA1_transform()
223 B = ctx->state[1]; in SHA1_transform()
224 C = ctx->state[2]; in SHA1_transform()
225 D = ctx->state[3]; in SHA1_transform()
226 E = ctx->state[4]; in SHA1_transform()
247 ctx->state[0] += A; in SHA1_transform()
248 ctx->state[1] += B; in SHA1_transform()
249 ctx->state[2] += C; in SHA1_transform()
250 ctx->state[3] += D; in SHA1_transform()
251 ctx->state[4] += E; in SHA1_transform()
254 void SHA_update(SHA_CTX *ctx, const void *data, int len) in SHA_update() argument
256 int i = ctx->count % sizeof(ctx->buf); in SHA_update()
259 ctx->count += len; in SHA_update()
262 ctx->buf[i++] = *p++; in SHA_update()
263 if (i == sizeof(ctx->buf)) { in SHA_update()
264 SHA1_transform(ctx); in SHA_update()
269 const uint8_t *SHA_final(SHA_CTX *ctx) in SHA_final() argument
271 uint8_t *p = ctx->buf; in SHA_final()
272 uint64_t cnt = ctx->count * 8; in SHA_final()
275 SHA_update(ctx, (uint8_t *)"\x80", 1); in SHA_final()
276 while ((ctx->count % sizeof(ctx->buf)) != (sizeof(ctx->buf) - 8)) { in SHA_final()
277 SHA_update(ctx, (uint8_t *)"\0", 1); in SHA_final()
281 SHA_update(ctx, &tmp, 1); in SHA_final()
285 uint32_t tmp = ctx->state[i]; in SHA_final()
292 return ctx->buf; in SHA_final()
297 void SHA_init(SHA_CTX *ctx) in SHA_init() argument
299 ctx->state[0] = 0x67452301; in SHA_init()
300 ctx->state[1] = 0xEFCDAB89; in SHA_init()
301 ctx->state[2] = 0x98BADCFE; in SHA_init()
302 ctx->state[3] = 0x10325476; in SHA_init()
303 ctx->state[4] = 0xC3D2E1F0; in SHA_init()
304 ctx->count = 0; in SHA_init()
312 SHA_CTX ctx; in SHA() local
313 SHA_init(&ctx); in SHA()
314 SHA_update(&ctx, data, len); in SHA()
315 p = SHA_final(&ctx); in SHA()