Lines Matching refs:P
104 stir(struct entpool *P) in stir() argument
114 for (i = 0; i < arraycount(P->s.w); i++) in stir()
115 P->s.w[i] = ENTPOOL_WTOH(P->s.w[i]); in stir()
116 ENTPOOL_PERMUTE(P->s.w); in stir()
117 for (i = 0; i < arraycount(P->s.w); i++) in stir()
118 P->s.w[i] = ENTPOOL_HTOW(P->s.w[i]); in stir()
121 P->i = 0; in stir()
131 entpool_enter(struct entpool *P, const void *buf, size_t len) in entpool_enter() argument
137 ASSERT(P->i <= RATE-1); in entpool_enter()
141 if (P->i == RATE-1) in entpool_enter()
142 stir(P); in entpool_enter()
143 ASSERT(P->i < RATE-1); in entpool_enter()
144 P->s.u8[P->i++] ^= (n1 >= 0x80 ? 0x80 : 0) | (n1 & 0x7f); in entpool_enter()
150 if (P->i == RATE-1) in entpool_enter()
151 stir(P); in entpool_enter()
152 ASSERT(P->i < RATE-1); in entpool_enter()
153 P->s.u8[P->i++] ^= *p++; in entpool_enter()
157 if (P->i == RATE-1) in entpool_enter()
158 stir(P); in entpool_enter()
159 ASSERT(P->i < RATE-1); in entpool_enter()
178 entpool_enter_nostir(struct entpool *P, const void *buf, size_t len) in entpool_enter_nostir() argument
184 ASSERT(P->i <= RATE-1); in entpool_enter_nostir()
187 if (P->i == RATE-1) in entpool_enter_nostir()
189 ASSERT(P->i < RATE-1); in entpool_enter_nostir()
196 n = n0 = MIN(127, MIN(len, RATE-1 - P->i - 1)); in entpool_enter_nostir()
197 P->s.u8[P->i++] ^= n; in entpool_enter_nostir()
199 P->s.u8[P->i++] ^= *p++; in entpool_enter_nostir()
202 ASSERT(P->i <= RATE-1); in entpool_enter_nostir()
215 entpool_stir(struct entpool *P) in entpool_stir() argument
219 ASSERT(P->i <= RATE-1); in entpool_stir()
222 if (P->i == RATE-1) in entpool_stir()
223 stir(P); in entpool_stir()
224 ASSERT(P->i < RATE-1); in entpool_stir()
236 entpool_extract(struct entpool *P, secret void *buf, size_t len) in entpool_extract() argument
242 ASSERT(P->i <= RATE-1); in entpool_extract()
245 if (P->i != 0) in entpool_extract()
246 stir(P); in entpool_extract()
247 ASSERT(P->i == 0); in entpool_extract()
254 memcpy(p, P->s.u8, RATE-1); in entpool_extract()
255 memset(P->s.u8, 0, RATE-1); in entpool_extract()
256 P->s.u8[RATE-1] ^= 0x80; in entpool_extract()
257 stir(P); in entpool_extract()
269 memcpy(p, P->s.u8, n); /* Copy part of it. */ in entpool_extract()
270 memset(P->s.u8, 0, RATE-1); /* Zero all of it. */ in entpool_extract()
271 P->s.u8[RATE-1] ^= 0x80; in entpool_extract()
272 stir(P); in entpool_extract()
402 #define KAT_BEGIN(P, n) memset(P, 0, sizeof(*(P))) argument
404 #define KAT_END(P, n) do \ argument
407 entpool_extract(P, KAT_ACTUAL, KATLEN); \
415 struct entpool pool, *P = &pool; in entpool_selftest() local
421 KAT_BEGIN(P, 0); in entpool_selftest()
422 entpool_stir(P); /* noop */ in entpool_selftest()
423 entpool_enter(P, sample, 1); in entpool_selftest()
424 entpool_stir(P); /* noop */ in entpool_selftest()
425 KAT_END(P, 0); in entpool_selftest()
428 KAT_BEGIN(P, 1); in entpool_selftest()
429 entpool_stir(P); /* noop */ in entpool_selftest()
431 entpool_enter(P, zero, RATE-3); in entpool_selftest()
433 entpool_enter(P, zero, RATE-4); in entpool_selftest()
435 entpool_stir(P); /* noop */ in entpool_selftest()
436 entpool_enter(P, sample, 1); in entpool_selftest()
437 entpool_stir(P); /* noop */ in entpool_selftest()
438 KAT_END(P, 1); in entpool_selftest()
441 KAT_BEGIN(P, 2); in entpool_selftest()
442 entpool_stir(P); /* noop */ in entpool_selftest()
444 if (!entpool_enter_nostir(P, zero, RATE-2)) in entpool_selftest()
447 if (!entpool_enter_nostir(P, zero, 127)) in entpool_selftest()
449 if (!entpool_enter_nostir(P, zero, RATE-2 - 127 - 1)) in entpool_selftest()
452 entpool_enter(P, sample, 1); in entpool_selftest()
453 entpool_stir(P); /* noop */ in entpool_selftest()
454 KAT_END(P, 2); in entpool_selftest()
457 KAT_BEGIN(P, 3); in entpool_selftest()
458 entpool_stir(P); /* noop */ in entpool_selftest()
460 if (!entpool_enter_nostir(P, zero, RATE-2)) in entpool_selftest()
464 if (!entpool_enter_nostir(P, zero, 127)) in entpool_selftest()
466 if (!entpool_enter_nostir(P, zero, RATE-2 - 127 - 1)) in entpool_selftest()
469 entpool_stir(P); in entpool_selftest()
470 entpool_enter(P, sample, 1); in entpool_selftest()
471 entpool_stir(P); /* noop */ in entpool_selftest()
472 KAT_END(P, 3); in entpool_selftest()
475 KAT_BEGIN(P, 4); in entpool_selftest()
476 entpool_stir(P); /* noop */ in entpool_selftest()
477 if (!entpool_enter_nostir(P, sample, 1)) in entpool_selftest()
479 entpool_stir(P); /* noop */ in entpool_selftest()
480 KAT_END(P, 4); in entpool_selftest()
483 KAT_BEGIN(P, 5); in entpool_selftest()
484 entpool_stir(P); /* noop */ in entpool_selftest()
486 entpool_enter(P, zero, RATE-3); in entpool_selftest()
488 entpool_enter(P, zero, RATE-4); in entpool_selftest()
490 entpool_stir(P); /* noop */ in entpool_selftest()
491 if (entpool_enter_nostir(P, sample, 1)) in entpool_selftest()
493 entpool_stir(P); in entpool_selftest()
494 KAT_END(P, 5); in entpool_selftest()
497 KAT_BEGIN(P, 6); in entpool_selftest()
498 entpool_stir(P); /* noop */ in entpool_selftest()
500 if (!entpool_enter_nostir(P, zero, RATE-2)) in entpool_selftest()
504 if (!entpool_enter_nostir(P, zero, 127)) in entpool_selftest()
506 if (!entpool_enter_nostir(P, zero, RATE-2 - 127 - 1)) in entpool_selftest()
509 if (entpool_enter_nostir(P, sample, 1)) in entpool_selftest()
511 entpool_stir(P); in entpool_selftest()
512 KAT_END(P, 6); in entpool_selftest()
515 KAT_BEGIN(P, 7); in entpool_selftest()
516 entpool_stir(P); /* noop */ in entpool_selftest()
518 if (!entpool_enter_nostir(P, zero, RATE-2)) in entpool_selftest()
522 if (!entpool_enter_nostir(P, zero, 127)) in entpool_selftest()
524 if (!entpool_enter_nostir(P, zero, RATE-2 - 127 - 1)) in entpool_selftest()
527 entpool_stir(P); in entpool_selftest()
528 if (!entpool_enter_nostir(P, sample, 1)) in entpool_selftest()
530 entpool_stir(P); /* noop */ in entpool_selftest()
531 KAT_END(P, 7); in entpool_selftest()
534 KAT_BEGIN(P, 8); in entpool_selftest()
535 entpool_stir(P); /* noop */ in entpool_selftest()
536 KAT_END(P, 8); in entpool_selftest()
539 KAT_BEGIN(P, 9); in entpool_selftest()
540 entpool_stir(P); /* noop */ in entpool_selftest()
541 entpool_enter(P, sample, 1); in entpool_selftest()
542 entpool_stir(P); /* noop */ in entpool_selftest()
543 KAT_END(P, 9); in entpool_selftest()
546 KAT_BEGIN(P, 10); in entpool_selftest()
547 entpool_stir(P); /* noop */ in entpool_selftest()
549 if (!entpool_enter_nostir(P, zero, RATE-2)) in entpool_selftest()
553 if (!entpool_enter_nostir(P, zero, 127)) in entpool_selftest()
555 if (!entpool_enter_nostir(P, zero, RATE-2 - 127 - 1)) in entpool_selftest()
558 KAT_END(P, 10); in entpool_selftest()
561 KAT_BEGIN(P, 11); in entpool_selftest()
562 entpool_stir(P); /* noop */ in entpool_selftest()
563 entpool_extract(P, scratch, RATE-1 + 1); in entpool_selftest()
564 entpool_stir(P); /* noop */ in entpool_selftest()
565 KAT_END(P, 11); in entpool_selftest()
568 KAT_BEGIN(P, 12); in entpool_selftest()
569 entpool_stir(P); /* noop */ in entpool_selftest()
570 entpool_extract(P, scratch, 1); in entpool_selftest()
571 entpool_stir(P); /* noop */ in entpool_selftest()
572 entpool_enter(P, sample, 1); in entpool_selftest()
573 entpool_stir(P); /* noop */ in entpool_selftest()
574 KAT_END(P, 12); in entpool_selftest()