Lines Matching refs:gctx

998     struct ec_gen_ctx *gctx = NULL;
1003 if ((gctx = OPENSSL_zalloc(sizeof(*gctx))) != NULL) {
1004 gctx->libctx = libctx;
1005 gctx->selection = selection;
1006 gctx->ecdh_mode = 0;
1007 if (!ec_gen_set_params(gctx, params)) {
1008 OPENSSL_free(gctx);
1009 gctx = NULL;
1012 return gctx;
1020 struct ec_gen_ctx *gctx = ec_gen_init(provctx, selection, params);
1022 if (gctx != NULL) {
1023 if (gctx->group_name != NULL)
1024 return gctx;
1025 if ((gctx->group_name = OPENSSL_strdup("sm2")) != NULL)
1026 return gctx;
1028 ec_gen_cleanup(gctx);
1037 struct ec_gen_ctx *gctx = genctx;
1045 EC_GROUP_free(gctx->gen_group);
1046 gctx->gen_group = group;
1052 struct ec_gen_ctx *gctx = genctx;
1056 if (!ossl_prov_is_running() || gctx == NULL || ec == NULL)
1060 return ec_gen_set_group(gctx, ec_group);
1103 struct ec_gen_ctx *gctx = genctx;
1107 COPY_INT_PARAM(params, OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, gctx->ecdh_mode);
1109 COPY_UTF8_PARAM(params, OSSL_PKEY_PARAM_GROUP_NAME, gctx->group_name);
1110 COPY_UTF8_PARAM(params, OSSL_PKEY_PARAM_EC_FIELD_TYPE, gctx->field_type);
1111 COPY_UTF8_PARAM(params, OSSL_PKEY_PARAM_EC_ENCODING, gctx->encoding);
1112 COPY_UTF8_PARAM(params, OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, gctx->pt_format);
1113 COPY_UTF8_PARAM(params, OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, gctx->group_check);
1115 COPY_BN_PARAM(params, OSSL_PKEY_PARAM_EC_P, gctx->p);
1116 COPY_BN_PARAM(params, OSSL_PKEY_PARAM_EC_A, gctx->a);
1117 COPY_BN_PARAM(params, OSSL_PKEY_PARAM_EC_B, gctx->b);
1118 COPY_BN_PARAM(params, OSSL_PKEY_PARAM_EC_ORDER, gctx->order);
1119 COPY_BN_PARAM(params, OSSL_PKEY_PARAM_EC_COFACTOR, gctx->cofactor);
1121 COPY_OCTET_PARAM(params, OSSL_PKEY_PARAM_EC_SEED, gctx->seed, gctx->seed_len);
1122 COPY_OCTET_PARAM(params, OSSL_PKEY_PARAM_EC_GENERATOR, gctx->gen,
1123 gctx->gen_len);
1131 static int ec_gen_set_group_from_params(struct ec_gen_ctx *gctx)
1142 if (gctx->encoding != NULL
1144 gctx->encoding, 0))
1147 if (gctx->pt_format != NULL
1150 gctx->pt_format, 0))
1153 if (gctx->group_name != NULL) {
1155 gctx->group_name, 0))
1159 } else if (gctx->field_type != NULL) {
1161 gctx->field_type, 0))
1166 if (gctx->p == NULL
1167 || gctx->a == NULL
1168 || gctx->b == NULL
1169 || gctx->order == NULL
1170 || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_P, gctx->p)
1171 || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_A, gctx->a)
1172 || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_B, gctx->b)
1173 || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_ORDER, gctx->order))
1176 if (gctx->cofactor != NULL
1178 gctx->cofactor))
1181 if (gctx->seed != NULL
1183 gctx->seed, gctx->seed_len))
1186 if (gctx->gen == NULL
1188 gctx->gen, gctx->gen_len))
1194 group = EC_GROUP_new_from_params(params, gctx->libctx, NULL);
1198 EC_GROUP_free(gctx->gen_group);
1199 gctx->gen_group = group;
1244 struct ec_gen_ctx *gctx = genctx;
1249 || gctx == NULL
1250 || (ec = EC_KEY_new_ex(gctx->libctx, NULL)) == NULL)
1253 if (gctx->gen_group == NULL) {
1254 if (!ec_gen_set_group_from_params(gctx))
1257 if (gctx->encoding != NULL) {
1258 int flags = ossl_ec_encoding_name2id(gctx->encoding);
1262 EC_GROUP_set_asn1_flag(gctx->gen_group, flags);
1264 if (gctx->pt_format != NULL) {
1265 int format = ossl_ec_pt_format_name2id(gctx->pt_format);
1269 EC_GROUP_set_point_conversion_form(gctx->gen_group, format);
1274 ret = ec_gen_assign_group(ec, gctx->gen_group);
1277 if ((gctx->selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0)
1280 if (gctx->ecdh_mode != -1)
1281 ret = ret && ossl_ec_set_ecdh_cofactor_mode(ec, gctx->ecdh_mode);
1283 if (gctx->group_check != NULL)
1284 ret = ret && ossl_ec_set_check_group_type_from_name(ec, gctx->group_check);
1300 struct ec_gen_ctx *gctx = genctx;
1304 if (gctx == NULL
1305 || (ec = EC_KEY_new_ex(gctx->libctx, NULL)) == NULL)
1308 if (gctx->gen_group == NULL) {
1309 if (!ec_gen_set_group_from_params(gctx))
1312 if (gctx->encoding) {
1313 int flags = ossl_ec_encoding_name2id(gctx->encoding);
1317 EC_GROUP_set_asn1_flag(gctx->gen_group, flags);
1319 if (gctx->pt_format != NULL) {
1320 int format = ossl_ec_pt_format_name2id(gctx->pt_format);
1324 EC_GROUP_set_point_conversion_form(gctx->gen_group, format);
1329 ret = ec_gen_assign_group(ec, gctx->gen_group);
1332 if ((gctx->selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0)
1347 struct ec_gen_ctx *gctx = genctx;
1349 if (gctx == NULL)
1352 EC_GROUP_free(gctx->gen_group);
1353 BN_free(gctx->p);
1354 BN_free(gctx->a);
1355 BN_free(gctx->b);
1356 BN_free(gctx->order);
1357 BN_free(gctx->cofactor);
1358 OPENSSL_free(gctx->group_name);
1359 OPENSSL_free(gctx->field_type);
1360 OPENSSL_free(gctx->pt_format);
1361 OPENSSL_free(gctx->encoding);
1362 OPENSSL_free(gctx->seed);
1363 OPENSSL_free(gctx->gen);
1364 OPENSSL_free(gctx);