Lines Matching defs:gctx
406 struct dsa_gen_ctx *gctx = NULL;
411 if ((gctx = OPENSSL_zalloc(sizeof(*gctx))) != NULL) {
412 gctx->selection = selection;
413 gctx->libctx = libctx;
414 gctx->pbits = 2048;
415 gctx->qbits = 224;
417 gctx->gen_type = DSA_PARAMGEN_TYPE_FIPS_186_4;
419 gctx->gen_type = DSA_PARAMGEN_TYPE_FIPS_DEFAULT;
421 gctx->gindex = -1;
422 gctx->pcounter = -1;
423 gctx->hindex = 0;
425 if (!dsa_gen_set_params(gctx, params)) {
426 OPENSSL_free(gctx);
427 gctx = NULL;
429 return gctx;
434 struct dsa_gen_ctx *gctx = genctx;
437 if (!ossl_prov_is_running() || gctx == NULL || dsa == NULL)
439 gctx->ffc_params = ossl_dsa_get0_params(dsa);
443 static int dsa_set_gen_seed(struct dsa_gen_ctx *gctx, unsigned char *seed,
446 OPENSSL_clear_free(gctx->seed, gctx->seedlen);
447 gctx->seed = NULL;
448 gctx->seedlen = 0;
450 gctx->seed = OPENSSL_memdup(seed, seedlen);
451 if (gctx->seed == NULL)
453 gctx->seedlen = seedlen;
460 struct dsa_gen_ctx *gctx = genctx;
463 if (gctx == NULL)
472 || ((gctx->gen_type = dsa_gen_type_name2id(p->data)) == -1)) {
479 && !OSSL_PARAM_get_int(p, &gctx->gindex))
483 && !OSSL_PARAM_get_int(p, &gctx->pcounter))
487 && !OSSL_PARAM_get_int(p, &gctx->hindex))
492 || !dsa_set_gen_seed(gctx, p->data, p->data_size)))
495 && !OSSL_PARAM_get_size_t(p, &gctx->pbits))
498 && !OSSL_PARAM_get_size_t(p, &gctx->qbits))
504 OPENSSL_free(gctx->mdname);
505 gctx->mdname = OPENSSL_strdup(p->data);
506 if (gctx->mdname == NULL)
513 OPENSSL_free(gctx->mdprops);
514 gctx->mdprops = OPENSSL_strdup(p->data);
515 if (gctx->mdprops == NULL)
541 struct dsa_gen_ctx *gctx = BN_GENCB_get_arg(cb);
547 return gctx->cb(params, gctx->cbarg);
552 struct dsa_gen_ctx *gctx = genctx;
558 if (!ossl_prov_is_running() || gctx == NULL)
560 dsa = ossl_dsa_new(gctx->libctx);
564 if (gctx->gen_type == DSA_PARAMGEN_TYPE_FIPS_DEFAULT)
565 gctx->gen_type = (gctx->pbits >= 2048 ? DSA_PARAMGEN_TYPE_FIPS_186_4 :
568 gctx->cb = osslcb;
569 gctx->cbarg = cbarg;
576 if (gctx->ffc_params != NULL
577 && !ossl_ffc_params_copy(ffc, gctx->ffc_params))
580 if (gctx->seed != NULL
581 && !ossl_ffc_params_set_seed(ffc, gctx->seed, gctx->seedlen))
583 if (gctx->gindex != -1) {
584 ossl_ffc_params_set_gindex(ffc, gctx->gindex);
585 if (gctx->pcounter != -1)
586 ossl_ffc_params_set_pcounter(ffc, gctx->pcounter);
587 } else if (gctx->hindex != 0) {
588 ossl_ffc_params_set_h(ffc, gctx->hindex);
590 if (gctx->mdname != NULL) {
591 if (!ossl_ffc_set_digest(ffc, gctx->mdname, gctx->mdprops))
594 if ((gctx->selection & OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS) != 0) {
596 if (ossl_dsa_generate_ffc_parameters(dsa, gctx->gen_type,
597 gctx->pbits, gctx->qbits,
602 gctx->gen_type == DSA_PARAMGEN_TYPE_FIPS_186_2);
603 if ((gctx->selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0) {
623 struct dsa_gen_ctx *gctx = genctx;
625 if (gctx == NULL)
628 OPENSSL_free(gctx->mdname);
629 OPENSSL_free(gctx->mdprops);
630 OPENSSL_clear_free(gctx->seed, gctx->seedlen);
631 OPENSSL_free(gctx);