Lines Matching refs:ctx

16 void Skein_256_Process_Block(Skein_256_Ctxt_t *ctx, const uint8_t *blkPtr,
18 void Skein_512_Process_Block(Skein_512_Ctxt_t *ctx, const uint8_t *blkPtr,
20 void Skein1024_Process_Block(Skein1024_Ctxt_t *ctx, const uint8_t *blkPtr,
26 Skein_256_Init(Skein_256_Ctxt_t *ctx, size_t hashBitLen) in Skein_256_Init() argument
34 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein_256_Init()
39 bcopy(SKEIN_256_IV_256, ctx->X, sizeof (ctx->X)); in Skein_256_Init()
42 bcopy(SKEIN_256_IV_224, ctx->X, sizeof (ctx->X)); in Skein_256_Init()
45 bcopy(SKEIN_256_IV_160, ctx->X, sizeof (ctx->X)); in Skein_256_Init()
48 bcopy(SKEIN_256_IV_128, ctx->X, sizeof (ctx->X)); in Skein_256_Init()
58 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein_256_Init()
70 bzero(ctx->X, sizeof (ctx->X)); in Skein_256_Init()
71 Skein_256_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein_256_Init()
79 Skein_Start_New_Type(ctx, MSG); /* T0=0, T1= MSG type */ in Skein_256_Init()
90 Skein_256_InitExt(Skein_256_Ctxt_t *ctx, size_t hashBitLen, uint64_t treeInfo, in Skein_256_InitExt() argument
104 bzero(ctx->X, sizeof (ctx->X)); in Skein_256_InitExt()
107 Skein_assert(sizeof (cfg.b) >= sizeof (ctx->X)); in Skein_256_InitExt()
110 ctx->h.hashBitLen = 8 * sizeof (ctx->X); in Skein_256_InitExt()
112 Skein_Start_New_Type(ctx, KEY); in Skein_256_InitExt()
114 bzero(ctx->X, sizeof (ctx->X)); in Skein_256_InitExt()
116 (void) Skein_256_Update(ctx, key, keyBytes); in Skein_256_InitExt()
118 (void) Skein_256_Final_Pad(ctx, cfg.b); in Skein_256_InitExt()
120 bcopy(cfg.b, ctx->X, sizeof (cfg.b)); in Skein_256_InitExt()
126 ctx->X[i] = Skein_Swap64(ctx->X[i]); in Skein_256_InitExt()
134 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein_256_InitExt()
135 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein_256_InitExt()
143 Skein_Show_Key(256, &ctx->h, key, keyBytes); in Skein_256_InitExt()
146 Skein_256_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein_256_InitExt()
150 ctx->h.bCnt = 0; /* buffer b[] starts out empty */ in Skein_256_InitExt()
151 Skein_Start_New_Type(ctx, MSG); in Skein_256_InitExt()
158 Skein_256_Update(Skein_256_Ctxt_t *ctx, const uint8_t *msg, size_t msgByteCnt) in Skein_256_Update() argument
163 Skein_Assert(ctx->h.bCnt <= SKEIN_256_BLOCK_BYTES, SKEIN_FAIL); in Skein_256_Update()
166 if (msgByteCnt + ctx->h.bCnt > SKEIN_256_BLOCK_BYTES) { in Skein_256_Update()
168 if (ctx->h.bCnt) { in Skein_256_Update()
170 n = SKEIN_256_BLOCK_BYTES - ctx->h.bCnt; in Skein_256_Update()
174 bcopy(msg, &ctx->b[ctx->h.bCnt], n); in Skein_256_Update()
177 ctx->h.bCnt += n; in Skein_256_Update()
179 Skein_assert(ctx->h.bCnt == SKEIN_256_BLOCK_BYTES); in Skein_256_Update()
180 Skein_256_Process_Block(ctx, ctx->b, 1, in Skein_256_Update()
182 ctx->h.bCnt = 0; in Skein_256_Update()
191 Skein_256_Process_Block(ctx, msg, n, in Skein_256_Update()
196 Skein_assert(ctx->h.bCnt == 0); in Skein_256_Update()
201 Skein_assert(msgByteCnt + ctx->h.bCnt <= SKEIN_256_BLOCK_BYTES); in Skein_256_Update()
202 bcopy(msg, &ctx->b[ctx->h.bCnt], msgByteCnt); in Skein_256_Update()
203 ctx->h.bCnt += msgByteCnt; in Skein_256_Update()
211 Skein_256_Final(Skein_256_Ctxt_t *ctx, uint8_t *hashVal) in Skein_256_Final() argument
217 Skein_Assert(ctx->h.bCnt <= SKEIN_256_BLOCK_BYTES, SKEIN_FAIL); in Skein_256_Final()
219 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; /* tag as the final block */ in Skein_256_Final()
221 if (ctx->h.bCnt < SKEIN_256_BLOCK_BYTES) in Skein_256_Final()
222 bzero(&ctx->b[ctx->h.bCnt], in Skein_256_Final()
223 SKEIN_256_BLOCK_BYTES - ctx->h.bCnt); in Skein_256_Final()
226 Skein_256_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein_256_Final()
230 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein_256_Final()
234 bzero(ctx->b, sizeof (ctx->b)); in Skein_256_Final()
236 bcopy(ctx->X, X, sizeof (X)); in Skein_256_Final()
240 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein_256_Final()
241 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein_256_Final()
243 Skein_256_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein_256_Final()
249 ctx->X, n); /* "output" the ctr mode bytes */ in Skein_256_Final()
250 Skein_Show_Final(256, &ctx->h, n, in Skein_256_Final()
253 bcopy(X, ctx->X, sizeof (X)); in Skein_256_Final()
262 Skein_512_Init(Skein_512_Ctxt_t *ctx, size_t hashBitLen) in Skein_512_Init() argument
270 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein_512_Init()
275 bcopy(SKEIN_512_IV_512, ctx->X, sizeof (ctx->X)); in Skein_512_Init()
278 bcopy(SKEIN_512_IV_384, ctx->X, sizeof (ctx->X)); in Skein_512_Init()
281 bcopy(SKEIN_512_IV_256, ctx->X, sizeof (ctx->X)); in Skein_512_Init()
284 bcopy(SKEIN_512_IV_224, ctx->X, sizeof (ctx->X)); in Skein_512_Init()
294 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein_512_Init()
306 bzero(ctx->X, sizeof (ctx->X)); in Skein_512_Init()
307 Skein_512_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein_512_Init()
316 Skein_Start_New_Type(ctx, MSG); /* T0=0, T1= MSG type */ in Skein_512_Init()
327 Skein_512_InitExt(Skein_512_Ctxt_t *ctx, size_t hashBitLen, uint64_t treeInfo, in Skein_512_InitExt() argument
341 bzero(ctx->X, sizeof (ctx->X)); in Skein_512_InitExt()
344 Skein_assert(sizeof (cfg.b) >= sizeof (ctx->X)); in Skein_512_InitExt()
347 ctx->h.hashBitLen = 8 * sizeof (ctx->X); in Skein_512_InitExt()
349 Skein_Start_New_Type(ctx, KEY); in Skein_512_InitExt()
351 bzero(ctx->X, sizeof (ctx->X)); in Skein_512_InitExt()
352 (void) Skein_512_Update(ctx, key, keyBytes); /* hash the key */ in Skein_512_InitExt()
354 (void) Skein_512_Final_Pad(ctx, cfg.b); in Skein_512_InitExt()
356 bcopy(cfg.b, ctx->X, sizeof (cfg.b)); in Skein_512_InitExt()
362 ctx->X[i] = Skein_Swap64(ctx->X[i]); in Skein_512_InitExt()
370 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein_512_InitExt()
371 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein_512_InitExt()
379 Skein_Show_Key(512, &ctx->h, key, keyBytes); in Skein_512_InitExt()
382 Skein_512_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein_512_InitExt()
386 ctx->h.bCnt = 0; /* buffer b[] starts out empty */ in Skein_512_InitExt()
387 Skein_Start_New_Type(ctx, MSG); in Skein_512_InitExt()
394 Skein_512_Update(Skein_512_Ctxt_t *ctx, const uint8_t *msg, size_t msgByteCnt) in Skein_512_Update() argument
399 Skein_Assert(ctx->h.bCnt <= SKEIN_512_BLOCK_BYTES, SKEIN_FAIL); in Skein_512_Update()
402 if (msgByteCnt + ctx->h.bCnt > SKEIN_512_BLOCK_BYTES) { in Skein_512_Update()
404 if (ctx->h.bCnt) { in Skein_512_Update()
406 n = SKEIN_512_BLOCK_BYTES - ctx->h.bCnt; in Skein_512_Update()
410 bcopy(msg, &ctx->b[ctx->h.bCnt], n); in Skein_512_Update()
413 ctx->h.bCnt += n; in Skein_512_Update()
415 Skein_assert(ctx->h.bCnt == SKEIN_512_BLOCK_BYTES); in Skein_512_Update()
416 Skein_512_Process_Block(ctx, ctx->b, 1, in Skein_512_Update()
418 ctx->h.bCnt = 0; in Skein_512_Update()
427 Skein_512_Process_Block(ctx, msg, n, in Skein_512_Update()
432 Skein_assert(ctx->h.bCnt == 0); in Skein_512_Update()
437 Skein_assert(msgByteCnt + ctx->h.bCnt <= SKEIN_512_BLOCK_BYTES); in Skein_512_Update()
438 bcopy(msg, &ctx->b[ctx->h.bCnt], msgByteCnt); in Skein_512_Update()
439 ctx->h.bCnt += msgByteCnt; in Skein_512_Update()
447 Skein_512_Final(Skein_512_Ctxt_t *ctx, uint8_t *hashVal) in Skein_512_Final() argument
453 Skein_Assert(ctx->h.bCnt <= SKEIN_512_BLOCK_BYTES, SKEIN_FAIL); in Skein_512_Final()
455 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; /* tag as the final block */ in Skein_512_Final()
457 if (ctx->h.bCnt < SKEIN_512_BLOCK_BYTES) in Skein_512_Final()
458 bzero(&ctx->b[ctx->h.bCnt], in Skein_512_Final()
459 SKEIN_512_BLOCK_BYTES - ctx->h.bCnt); in Skein_512_Final()
462 Skein_512_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein_512_Final()
466 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein_512_Final()
470 bzero(ctx->b, sizeof (ctx->b)); in Skein_512_Final()
472 bcopy(ctx->X, X, sizeof (X)); in Skein_512_Final()
476 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein_512_Final()
477 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein_512_Final()
479 Skein_512_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein_512_Final()
485 ctx->X, n); /* "output" the ctr mode bytes */ in Skein_512_Final()
486 Skein_Show_Final(512, &ctx->h, n, in Skein_512_Final()
489 bcopy(X, ctx->X, sizeof (X)); in Skein_512_Final()
498 Skein1024_Init(Skein1024_Ctxt_t *ctx, size_t hashBitLen) in Skein1024_Init() argument
506 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein1024_Init()
511 bcopy(SKEIN1024_IV_512, ctx->X, sizeof (ctx->X)); in Skein1024_Init()
514 bcopy(SKEIN1024_IV_384, ctx->X, sizeof (ctx->X)); in Skein1024_Init()
517 bcopy(SKEIN1024_IV_1024, ctx->X, sizeof (ctx->X)); in Skein1024_Init()
527 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein1024_Init()
539 bzero(ctx->X, sizeof (ctx->X)); in Skein1024_Init()
540 Skein1024_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein1024_Init()
549 Skein_Start_New_Type(ctx, MSG); /* T0=0, T1= MSG type */ in Skein1024_Init()
560 Skein1024_InitExt(Skein1024_Ctxt_t *ctx, size_t hashBitLen, uint64_t treeInfo, in Skein1024_InitExt() argument
574 bzero(ctx->X, sizeof (ctx->X)); in Skein1024_InitExt()
576 Skein_assert(sizeof (cfg.b) >= sizeof (ctx->X)); in Skein1024_InitExt()
579 ctx->h.hashBitLen = 8 * sizeof (ctx->X); in Skein1024_InitExt()
581 Skein_Start_New_Type(ctx, KEY); in Skein1024_InitExt()
583 bzero(ctx->X, sizeof (ctx->X)); in Skein1024_InitExt()
584 (void) Skein1024_Update(ctx, key, keyBytes); /* hash the key */ in Skein1024_InitExt()
586 (void) Skein1024_Final_Pad(ctx, cfg.b); in Skein1024_InitExt()
588 bcopy(cfg.b, ctx->X, sizeof (cfg.b)); in Skein1024_InitExt()
594 ctx->X[i] = Skein_Swap64(ctx->X[i]); in Skein1024_InitExt()
602 ctx->h.hashBitLen = hashBitLen; /* output hash bit count */ in Skein1024_InitExt()
603 Skein_Start_New_Type(ctx, CFG_FINAL); in Skein1024_InitExt()
612 Skein_Show_Key(1024, &ctx->h, key, keyBytes); in Skein1024_InitExt()
615 Skein1024_Process_Block(ctx, cfg.b, 1, SKEIN_CFG_STR_LEN); in Skein1024_InitExt()
619 ctx->h.bCnt = 0; /* buffer b[] starts out empty */ in Skein1024_InitExt()
620 Skein_Start_New_Type(ctx, MSG); in Skein1024_InitExt()
627 Skein1024_Update(Skein1024_Ctxt_t *ctx, const uint8_t *msg, size_t msgByteCnt) in Skein1024_Update() argument
632 Skein_Assert(ctx->h.bCnt <= SKEIN1024_BLOCK_BYTES, SKEIN_FAIL); in Skein1024_Update()
635 if (msgByteCnt + ctx->h.bCnt > SKEIN1024_BLOCK_BYTES) { in Skein1024_Update()
637 if (ctx->h.bCnt) { in Skein1024_Update()
639 n = SKEIN1024_BLOCK_BYTES - ctx->h.bCnt; in Skein1024_Update()
643 bcopy(msg, &ctx->b[ctx->h.bCnt], n); in Skein1024_Update()
646 ctx->h.bCnt += n; in Skein1024_Update()
648 Skein_assert(ctx->h.bCnt == SKEIN1024_BLOCK_BYTES); in Skein1024_Update()
649 Skein1024_Process_Block(ctx, ctx->b, 1, in Skein1024_Update()
651 ctx->h.bCnt = 0; in Skein1024_Update()
660 Skein1024_Process_Block(ctx, msg, n, in Skein1024_Update()
665 Skein_assert(ctx->h.bCnt == 0); in Skein1024_Update()
670 Skein_assert(msgByteCnt + ctx->h.bCnt <= SKEIN1024_BLOCK_BYTES); in Skein1024_Update()
671 bcopy(msg, &ctx->b[ctx->h.bCnt], msgByteCnt); in Skein1024_Update()
672 ctx->h.bCnt += msgByteCnt; in Skein1024_Update()
680 Skein1024_Final(Skein1024_Ctxt_t *ctx, uint8_t *hashVal) in Skein1024_Final() argument
686 Skein_Assert(ctx->h.bCnt <= SKEIN1024_BLOCK_BYTES, SKEIN_FAIL); in Skein1024_Final()
688 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; /* tag as the final block */ in Skein1024_Final()
690 if (ctx->h.bCnt < SKEIN1024_BLOCK_BYTES) in Skein1024_Final()
691 bzero(&ctx->b[ctx->h.bCnt], in Skein1024_Final()
692 SKEIN1024_BLOCK_BYTES - ctx->h.bCnt); in Skein1024_Final()
695 Skein1024_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein1024_Final()
699 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein1024_Final()
703 bzero(ctx->b, sizeof (ctx->b)); in Skein1024_Final()
705 bcopy(ctx->X, X, sizeof (X)); in Skein1024_Final()
709 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein1024_Final()
710 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein1024_Final()
712 Skein1024_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein1024_Final()
718 ctx->X, n); /* "output" the ctr mode bytes */ in Skein1024_Final()
719 Skein_Show_Final(1024, &ctx->h, n, in Skein1024_Final()
722 bcopy(X, ctx->X, sizeof (X)); in Skein1024_Final()
732 Skein_256_Final_Pad(Skein_256_Ctxt_t *ctx, uint8_t *hashVal) in Skein_256_Final_Pad() argument
735 Skein_Assert(ctx->h.bCnt <= SKEIN_256_BLOCK_BYTES, SKEIN_FAIL); in Skein_256_Final_Pad()
737 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; /* tag as the final block */ in Skein_256_Final_Pad()
739 if (ctx->h.bCnt < SKEIN_256_BLOCK_BYTES) in Skein_256_Final_Pad()
740 bzero(&ctx->b[ctx->h.bCnt], in Skein_256_Final_Pad()
741 SKEIN_256_BLOCK_BYTES - ctx->h.bCnt); in Skein_256_Final_Pad()
743 Skein_256_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein_256_Final_Pad()
746 Skein_Put64_LSB_First(hashVal, ctx->X, SKEIN_256_BLOCK_BYTES); in Skein_256_Final_Pad()
753 Skein_512_Final_Pad(Skein_512_Ctxt_t *ctx, uint8_t *hashVal) in Skein_512_Final_Pad() argument
756 Skein_Assert(ctx->h.bCnt <= SKEIN_512_BLOCK_BYTES, SKEIN_FAIL); in Skein_512_Final_Pad()
758 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; /* tag as the final block */ in Skein_512_Final_Pad()
760 if (ctx->h.bCnt < SKEIN_512_BLOCK_BYTES) in Skein_512_Final_Pad()
761 bzero(&ctx->b[ctx->h.bCnt], in Skein_512_Final_Pad()
762 SKEIN_512_BLOCK_BYTES - ctx->h.bCnt); in Skein_512_Final_Pad()
764 Skein_512_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein_512_Final_Pad()
767 Skein_Put64_LSB_First(hashVal, ctx->X, SKEIN_512_BLOCK_BYTES); in Skein_512_Final_Pad()
774 Skein1024_Final_Pad(Skein1024_Ctxt_t *ctx, uint8_t *hashVal) in Skein1024_Final_Pad() argument
777 Skein_Assert(ctx->h.bCnt <= SKEIN1024_BLOCK_BYTES, SKEIN_FAIL); in Skein1024_Final_Pad()
780 ctx->h.T[1] |= SKEIN_T1_FLAG_FINAL; in Skein1024_Final_Pad()
782 if (ctx->h.bCnt < SKEIN1024_BLOCK_BYTES) in Skein1024_Final_Pad()
783 bzero(&ctx->b[ctx->h.bCnt], in Skein1024_Final_Pad()
784 SKEIN1024_BLOCK_BYTES - ctx->h.bCnt); in Skein1024_Final_Pad()
786 Skein1024_Process_Block(ctx, ctx->b, 1, ctx->h.bCnt); in Skein1024_Final_Pad()
789 Skein_Put64_LSB_First(hashVal, ctx->X, SKEIN1024_BLOCK_BYTES); in Skein1024_Final_Pad()
797 Skein_256_Output(Skein_256_Ctxt_t *ctx, uint8_t *hashVal) in Skein_256_Output() argument
803 Skein_Assert(ctx->h.bCnt <= SKEIN_256_BLOCK_BYTES, SKEIN_FAIL); in Skein_256_Output()
807 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein_256_Output()
811 bzero(ctx->b, sizeof (ctx->b)); in Skein_256_Output()
813 bcopy(ctx->X, X, sizeof (X)); in Skein_256_Output()
817 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein_256_Output()
818 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein_256_Output()
820 Skein_256_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein_256_Output()
826 ctx->X, n); /* "output" the ctr mode bytes */ in Skein_256_Output()
827 Skein_Show_Final(256, &ctx->h, n, in Skein_256_Output()
830 bcopy(X, ctx->X, sizeof (X)); in Skein_256_Output()
837 Skein_512_Output(Skein_512_Ctxt_t *ctx, uint8_t *hashVal) in Skein_512_Output() argument
843 Skein_Assert(ctx->h.bCnt <= SKEIN_512_BLOCK_BYTES, SKEIN_FAIL); in Skein_512_Output()
847 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein_512_Output()
851 bzero(ctx->b, sizeof (ctx->b)); in Skein_512_Output()
853 bcopy(ctx->X, X, sizeof (X)); in Skein_512_Output()
857 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein_512_Output()
858 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein_512_Output()
860 Skein_512_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein_512_Output()
866 ctx->X, n); /* "output" the ctr mode bytes */ in Skein_512_Output()
867 Skein_Show_Final(256, &ctx->h, n, in Skein_512_Output()
870 bcopy(X, ctx->X, sizeof (X)); in Skein_512_Output()
877 Skein1024_Output(Skein1024_Ctxt_t *ctx, uint8_t *hashVal) in Skein1024_Output() argument
883 Skein_Assert(ctx->h.bCnt <= SKEIN1024_BLOCK_BYTES, SKEIN_FAIL); in Skein1024_Output()
887 byteCnt = (ctx->h.hashBitLen + 7) >> 3; in Skein1024_Output()
891 bzero(ctx->b, sizeof (ctx->b)); in Skein1024_Output()
893 bcopy(ctx->X, X, sizeof (X)); in Skein1024_Output()
897 bcopy(&tmp, ctx->b, sizeof (tmp)); in Skein1024_Output()
898 Skein_Start_New_Type(ctx, OUT_FINAL); in Skein1024_Output()
900 Skein1024_Process_Block(ctx, ctx->b, 1, sizeof (uint64_t)); in Skein1024_Output()
906 ctx->X, n); /* "output" the ctr mode bytes */ in Skein1024_Output()
907 Skein_Show_Final(256, &ctx->h, n, in Skein1024_Output()
910 bcopy(X, ctx->X, sizeof (X)); in Skein1024_Output()