Lines Matching refs:drbg

84  * Updates the drbg objects Key(K) and Value(V) using the following algorithm:
94 static int drbg_hmac_update(PROV_DRBG *drbg,
99 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
114 * This sets the drbg Key (K) to all zeros, and Value (V) to all 1's.
122 static int drbg_hmac_instantiate(PROV_DRBG *drbg,
127 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
139 return drbg_hmac_update(drbg, ent, ent_len, nonce, nonce_len, pstr,
149 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
151 if (!ossl_prov_is_running() || !drbg_hmac_set_ctx_params(drbg, params))
153 return ossl_prov_drbg_instantiate(drbg, strength, prediction_resistance,
160 * Reseeds the drbg's Key (K) and Value (V) by calling
167 static int drbg_hmac_reseed(PROV_DRBG *drbg,
172 return drbg_hmac_update(drbg, ent, ent_len, adin, adin_len, NULL, 0);
179 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
181 return ossl_prov_drbg_reseed(drbg, prediction_resistance, ent, ent_len,
188 * Generates pseudo random bytes and updates the internal K,V for the drbg.
194 static int drbg_hmac_generate(PROV_DRBG *drbg,
198 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
205 && !drbg_hmac_update(drbg, adin, adin_len, NULL, 0, NULL, 0))
234 if (!drbg_hmac_update(drbg, adin, adin_len, NULL, 0, NULL, 0))
244 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
246 return ossl_prov_drbg_generate(drbg, out, outlen, strength,
250 static int drbg_hmac_uninstantiate(PROV_DRBG *drbg)
252 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
256 return ossl_prov_drbg_uninstantiate(drbg);
266 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
267 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
274 static int drbg_hmac_new(PROV_DRBG *drbg)
284 drbg->data = hmac;
286 drbg->max_entropylen = DRBG_MAX_LENGTH;
287 drbg->max_noncelen = DRBG_MAX_LENGTH;
288 drbg->max_perslen = DRBG_MAX_LENGTH;
289 drbg->max_adinlen = DRBG_MAX_LENGTH;
292 drbg->max_request = 1 << 16;
307 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
310 if (drbg != NULL && (hmac = (PROV_DRBG_HMAC *)drbg->data) != NULL) {
315 ossl_rand_drbg_free(drbg);
320 PROV_DRBG *drbg = (PROV_DRBG *)vdrbg;
321 PROV_DRBG_HMAC *hmac = (PROV_DRBG_HMAC *)drbg->data;
342 return ossl_drbg_get_ctx_params(drbg, params);