Exemple #1
0
/* Handle several BCC operations for as much data as we need for K and X */
static void ctr_BCC_blocks(DRBG_CTR_CTX *cctx, const unsigned char *in)
	{
	ctr_BCC_block(cctx, cctx->KX, in);
	ctr_BCC_block(cctx, cctx->KX + 16, in);
	if (cctx->keylen != 16)
		ctr_BCC_block(cctx, cctx->KX + 32, in);
	}
Exemple #2
0
/*
 * Handle several BCC operations for as much data as we need for K and X
 */
static void ctr_BCC_blocks(RAND_DRBG_CTR *ctr, const unsigned char *in)
{
    ctr_BCC_block(ctr, ctr->KX, in);
    ctr_BCC_block(ctr, ctr->KX + 16, in);
    if (ctr->keylen != 16)
        ctr_BCC_block(ctr, ctr->KX + 32, in);
}
Exemple #3
0
/*
 * Initialise BCC blocks: these have the value 0,1,2 in leftmost positions:
 * see 10.3.1 stage 7.
 */
static void ctr_BCC_init(RAND_DRBG_CTR *ctr)
{
    memset(ctr->KX, 0, 48);
    memset(ctr->bltmp, 0, 16);
    ctr_BCC_block(ctr, ctr->KX, ctr->bltmp);
    ctr->bltmp[3] = 1;
    ctr_BCC_block(ctr, ctr->KX + 16, ctr->bltmp);
    if (ctr->keylen != 16) {
        ctr->bltmp[3] = 2;
        ctr_BCC_block(ctr, ctr->KX + 32, ctr->bltmp);
    }
}
Exemple #4
0
/* Initialise BCC blocks: these have the value 0,1,2 in leftmost positions:
 * see 10.4.2 stage 7.
 */
static void ctr_BCC_init(DRBG_CTR_CTX *cctx)
	{
	memset(cctx->KX, 0, 48);
	memset(cctx->bltmp, 0, 16);
	ctr_BCC_block(cctx, cctx->KX, cctx->bltmp);
	cctx->bltmp[3] = 1;
	ctr_BCC_block(cctx, cctx->KX + 16, cctx->bltmp);
	if (cctx->keylen != 16)
		{
		cctx->bltmp[3] = 2;
		ctr_BCC_block(cctx, cctx->KX + 32, cctx->bltmp);
		}
	}