209 if(group_name ==
"secp256r1") {
210 return Group_Params::SECP256R1;
212 if(group_name ==
"secp384r1") {
213 return Group_Params::SECP384R1;
215 if(group_name ==
"secp521r1") {
216 return Group_Params::SECP521R1;
218 if(group_name ==
"brainpool256r1") {
219 return Group_Params::BRAINPOOL256R1;
221 if(group_name ==
"brainpool384r1") {
222 return Group_Params::BRAINPOOL384R1;
224 if(group_name ==
"brainpool512r1") {
225 return Group_Params::BRAINPOOL512R1;
227 if(group_name ==
"x25519") {
228 return Group_Params::X25519;
230 if(group_name ==
"x448") {
231 return Group_Params::X448;
234 if(group_name ==
"ffdhe/ietf/2048") {
235 return Group_Params::FFDHE_2048;
237 if(group_name ==
"ffdhe/ietf/3072") {
238 return Group_Params::FFDHE_3072;
240 if(group_name ==
"ffdhe/ietf/4096") {
241 return Group_Params::FFDHE_4096;
243 if(group_name ==
"ffdhe/ietf/6144") {
244 return Group_Params::FFDHE_6144;
246 if(group_name ==
"ffdhe/ietf/8192") {
247 return Group_Params::FFDHE_8192;
250 if(group_name ==
"ML-KEM-512") {
251 return Group_Params::ML_KEM_512;
253 if(group_name ==
"ML-KEM-768") {
254 return Group_Params::ML_KEM_768;
256 if(group_name ==
"ML-KEM-1024") {
257 return Group_Params::ML_KEM_1024;
260 if(group_name ==
"eFrodoKEM-640-SHAKE") {
261 return Group_Params::eFRODOKEM_640_SHAKE_OQS;
263 if(group_name ==
"eFrodoKEM-976-SHAKE") {
264 return Group_Params::eFRODOKEM_976_SHAKE_OQS;
266 if(group_name ==
"eFrodoKEM-1344-SHAKE") {
267 return Group_Params::eFRODOKEM_1344_SHAKE_OQS;
269 if(group_name ==
"eFrodoKEM-640-AES") {
270 return Group_Params::eFRODOKEM_640_AES_OQS;
272 if(group_name ==
"eFrodoKEM-976-AES") {
273 return Group_Params::eFRODOKEM_976_AES_OQS;
275 if(group_name ==
"eFrodoKEM-1344-AES") {
276 return Group_Params::eFRODOKEM_1344_AES_OQS;
279 if(group_name ==
"x25519/ML-KEM-768") {
280 return Group_Params::HYBRID_X25519_ML_KEM_768;
282 if(group_name ==
"secp256r1/ML-KEM-768") {
283 return Group_Params::HYBRID_SECP256R1_ML_KEM_768;
285 if(group_name ==
"secp384r1/ML-KEM-1024") {
286 return Group_Params::HYBRID_SECP384R1_ML_KEM_1024;
289 if(group_name ==
"x25519/eFrodoKEM-640-SHAKE") {
290 return Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS;
292 if(group_name ==
"x25519/eFrodoKEM-640-AES") {
293 return Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS;
295 if(group_name ==
"x448/eFrodoKEM-976-SHAKE") {
296 return Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS;
298 if(group_name ==
"x448/eFrodoKEM-976-AES") {
299 return Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS;
302 if(group_name ==
"secp256r1/eFrodoKEM-640-SHAKE") {
303 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS;
305 if(group_name ==
"secp256r1/eFrodoKEM-640-AES") {
306 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS;
309 if(group_name ==
"secp384r1/eFrodoKEM-976-SHAKE") {
310 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS;
312 if(group_name ==
"secp384r1/eFrodoKEM-976-AES") {
313 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS;
316 if(group_name ==
"secp521r1/eFrodoKEM-1344-SHAKE") {
317 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS;
319 if(group_name ==
"secp521r1/eFrodoKEM-1344-AES") {
320 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS;
328 case Group_Params::SECP256R1:
330 case Group_Params::SECP384R1:
332 case Group_Params::SECP521R1:
334 case Group_Params::BRAINPOOL256R1:
335 return "brainpool256r1";
336 case Group_Params::BRAINPOOL384R1:
337 return "brainpool384r1";
338 case Group_Params::BRAINPOOL512R1:
339 return "brainpool512r1";
340 case Group_Params::X25519:
342 case Group_Params::X448:
345 case Group_Params::FFDHE_2048:
346 return "ffdhe/ietf/2048";
347 case Group_Params::FFDHE_3072:
348 return "ffdhe/ietf/3072";
349 case Group_Params::FFDHE_4096:
350 return "ffdhe/ietf/4096";
351 case Group_Params::FFDHE_6144:
352 return "ffdhe/ietf/6144";
353 case Group_Params::FFDHE_8192:
354 return "ffdhe/ietf/8192";
356 case Group_Params::ML_KEM_512:
358 case Group_Params::ML_KEM_768:
360 case Group_Params::ML_KEM_1024:
361 return "ML-KEM-1024";
363 case Group_Params::eFRODOKEM_640_SHAKE_OQS:
364 return "eFrodoKEM-640-SHAKE";
365 case Group_Params::eFRODOKEM_976_SHAKE_OQS:
366 return "eFrodoKEM-976-SHAKE";
367 case Group_Params::eFRODOKEM_1344_SHAKE_OQS:
368 return "eFrodoKEM-1344-SHAKE";
369 case Group_Params::eFRODOKEM_640_AES_OQS:
370 return "eFrodoKEM-640-AES";
371 case Group_Params::eFRODOKEM_976_AES_OQS:
372 return "eFrodoKEM-976-AES";
373 case Group_Params::eFRODOKEM_1344_AES_OQS:
374 return "eFrodoKEM-1344-AES";
376 case Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS:
377 return "x25519/eFrodoKEM-640-SHAKE";
378 case Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS:
379 return "x25519/eFrodoKEM-640-AES";
380 case Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS:
381 return "x448/eFrodoKEM-976-SHAKE";
382 case Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS:
383 return "x448/eFrodoKEM-976-AES";
384 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS:
385 return "secp256r1/eFrodoKEM-640-SHAKE";
386 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS:
387 return "secp256r1/eFrodoKEM-640-AES";
388 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS:
389 return "secp384r1/eFrodoKEM-976-SHAKE";
390 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS:
391 return "secp384r1/eFrodoKEM-976-AES";
392 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS:
393 return "secp521r1/eFrodoKEM-1344-SHAKE";
394 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS:
395 return "secp521r1/eFrodoKEM-1344-AES";
397 case Group_Params::HYBRID_X25519_ML_KEM_768:
398 return "x25519/ML-KEM-768";
399 case Group_Params::HYBRID_SECP256R1_ML_KEM_768:
400 return "secp256r1/ML-KEM-768";
401 case Group_Params::HYBRID_SECP384R1_ML_KEM_1024:
402 return "secp384r1/ML-KEM-1024";