summaryrefslogtreecommitdiff
path: root/src/librandom/surf_sinit.c
blob: ae7f48027f87dddb7fe35ddb70f7f3eaeb77b309 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
/* ISC license. */

#include <skalibs/uint32.h>
#include <skalibs/surf.h>

void surf_sinit (SURFSchedule_ref ctx, char const *s)
{
  SURFSchedule zero = SURFSCHEDULE_ZERO ;
  register unsigned int i = 4 ;
  *ctx = zero ;
  for (; i < 12 ; i++) uint32_unpack(s + (i<<2) - 16, ctx->in + i) ;
  for (i = 0 ; i < 32 ; i++) uint32_unpack(s + 32 + (i<<2), ctx->seed + i) ;
}