Lines Matching defs:drbg

259 __owur static int ctr_update(PROV_DRBG *drbg,
264 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
293 ctr_XOR(ctr, ctr->KX, drbg->seedlen);
305 static int drbg_ctr_instantiate(PROV_DRBG *drbg,
310 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
321 if (!ctr_update(drbg, entropy, entropylen, pers, perslen, nonce, noncelen))
332 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
334 if (!ossl_prov_is_running() || !drbg_ctr_set_ctx_params(drbg, params))
336 return ossl_prov_drbg_instantiate(drbg, strength, prediction_resistance,
340 static int drbg_ctr_reseed(PROV_DRBG *drbg,
344 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
350 if (!ctr_update(drbg, entropy, entropylen, adin, adinlen, NULL, 0))
359 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
361 return ossl_prov_drbg_reseed(drbg, prediction_resistance, ent, ent_len,
377 static int drbg_ctr_generate(PROV_DRBG *drbg,
381 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
388 if (!ctr_update(drbg, adin, adinlen, NULL, 0, NULL, 0))
404 if (!ctr_update(drbg, adin, adinlen, NULL, 0, NULL, 0))
446 if (!ctr_update(drbg, adin, adinlen, NULL, 0, NULL, 0))
456 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
458 return ossl_prov_drbg_generate(drbg, out, outlen, strength,
462 static int drbg_ctr_uninstantiate(PROV_DRBG *drbg)
464 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
471 return ossl_prov_drbg_uninstantiate(drbg);
481 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
482 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
493 static int drbg_ctr_init_lengths(PROV_DRBG *drbg)
495 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
499 drbg->max_request = 1 << 16;
501 drbg->min_entropylen = 0;
502 drbg->max_entropylen = DRBG_MAX_LENGTH;
503 drbg->min_noncelen = 0;
504 drbg->max_noncelen = DRBG_MAX_LENGTH;
505 drbg->max_perslen = DRBG_MAX_LENGTH;
506 drbg->max_adinlen = DRBG_MAX_LENGTH;
509 drbg->min_entropylen = ctr->keylen;
510 drbg->min_noncelen = drbg->min_entropylen / 2;
513 const size_t len = ctr->keylen > 0 ? drbg->seedlen : DRBG_MAX_LENGTH;
515 drbg->min_entropylen = len;
516 drbg->max_entropylen = len;
518 drbg->min_noncelen = 0;
519 drbg->max_noncelen = 0;
520 drbg->max_perslen = len;
521 drbg->max_adinlen = len;
526 static int drbg_ctr_init(PROV_DRBG *drbg)
528 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
553 drbg->strength = keylen * 8;
554 drbg->seedlen = keylen + 16;
578 return drbg_ctr_init_lengths(drbg);
587 static int drbg_ctr_new(PROV_DRBG *drbg)
598 drbg->data = ctr;
599 return drbg_ctr_init_lengths(drbg);
612 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
615 if (drbg != NULL && (ctr = (PROV_DRBG_CTR *)drbg->data) != NULL) {
624 ossl_rand_drbg_free(drbg);
629 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
630 PROV_DRBG_CTR *ctr = (PROV_DRBG_CTR *)drbg->data;
645 return ossl_drbg_get_ctx_params(drbg, params);