276 if(group_name ==
"secp256r1") {
277 return Group_Params::SECP256R1;
279 if(group_name ==
"secp384r1") {
280 return Group_Params::SECP384R1;
282 if(group_name ==
"secp521r1") {
283 return Group_Params::SECP521R1;
285 if(group_name ==
"brainpool256r1") {
286 return Group_Params::BRAINPOOL256R1;
288 if(group_name ==
"brainpool384r1") {
289 return Group_Params::BRAINPOOL384R1;
291 if(group_name ==
"brainpool512r1") {
292 return Group_Params::BRAINPOOL512R1;
294 if(group_name ==
"x25519") {
295 return Group_Params::X25519;
297 if(group_name ==
"x448") {
298 return Group_Params::X448;
301 if(group_name ==
"ffdhe/ietf/2048") {
302 return Group_Params::FFDHE_2048;
304 if(group_name ==
"ffdhe/ietf/3072") {
305 return Group_Params::FFDHE_3072;
307 if(group_name ==
"ffdhe/ietf/4096") {
308 return Group_Params::FFDHE_4096;
310 if(group_name ==
"ffdhe/ietf/6144") {
311 return Group_Params::FFDHE_6144;
313 if(group_name ==
"ffdhe/ietf/8192") {
314 return Group_Params::FFDHE_8192;
317 if(group_name ==
"ML-KEM-512") {
318 return Group_Params::ML_KEM_512;
320 if(group_name ==
"ML-KEM-768") {
321 return Group_Params::ML_KEM_768;
323 if(group_name ==
"ML-KEM-1024") {
324 return Group_Params::ML_KEM_1024;
327 if(group_name ==
"eFrodoKEM-640-SHAKE") {
328 return Group_Params::eFRODOKEM_640_SHAKE_OQS;
330 if(group_name ==
"eFrodoKEM-976-SHAKE") {
331 return Group_Params::eFRODOKEM_976_SHAKE_OQS;
333 if(group_name ==
"eFrodoKEM-1344-SHAKE") {
334 return Group_Params::eFRODOKEM_1344_SHAKE_OQS;
336 if(group_name ==
"eFrodoKEM-640-AES") {
337 return Group_Params::eFRODOKEM_640_AES_OQS;
339 if(group_name ==
"eFrodoKEM-976-AES") {
340 return Group_Params::eFRODOKEM_976_AES_OQS;
342 if(group_name ==
"eFrodoKEM-1344-AES") {
343 return Group_Params::eFRODOKEM_1344_AES_OQS;
346 if(group_name ==
"x25519/ML-KEM-768") {
347 return Group_Params::HYBRID_X25519_ML_KEM_768;
349 if(group_name ==
"secp256r1/ML-KEM-768") {
350 return Group_Params::HYBRID_SECP256R1_ML_KEM_768;
352 if(group_name ==
"secp384r1/ML-KEM-1024") {
353 return Group_Params::HYBRID_SECP384R1_ML_KEM_1024;
356 if(group_name ==
"x25519/eFrodoKEM-640-SHAKE") {
357 return Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS;
359 if(group_name ==
"x25519/eFrodoKEM-640-AES") {
360 return Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS;
362 if(group_name ==
"x448/eFrodoKEM-976-SHAKE") {
363 return Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS;
365 if(group_name ==
"x448/eFrodoKEM-976-AES") {
366 return Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS;
369 if(group_name ==
"secp256r1/eFrodoKEM-640-SHAKE") {
370 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS;
372 if(group_name ==
"secp256r1/eFrodoKEM-640-AES") {
373 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS;
376 if(group_name ==
"secp384r1/eFrodoKEM-976-SHAKE") {
377 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS;
379 if(group_name ==
"secp384r1/eFrodoKEM-976-AES") {
380 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS;
383 if(group_name ==
"secp521r1/eFrodoKEM-1344-SHAKE") {
384 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS;
386 if(group_name ==
"secp521r1/eFrodoKEM-1344-AES") {
387 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS;
395 case Group_Params::SECP256R1:
397 case Group_Params::SECP384R1:
399 case Group_Params::SECP521R1:
401 case Group_Params::BRAINPOOL256R1:
402 return "brainpool256r1";
403 case Group_Params::BRAINPOOL384R1:
404 return "brainpool384r1";
405 case Group_Params::BRAINPOOL512R1:
406 return "brainpool512r1";
407 case Group_Params::X25519:
409 case Group_Params::X448:
412 case Group_Params::FFDHE_2048:
413 return "ffdhe/ietf/2048";
414 case Group_Params::FFDHE_3072:
415 return "ffdhe/ietf/3072";
416 case Group_Params::FFDHE_4096:
417 return "ffdhe/ietf/4096";
418 case Group_Params::FFDHE_6144:
419 return "ffdhe/ietf/6144";
420 case Group_Params::FFDHE_8192:
421 return "ffdhe/ietf/8192";
423 case Group_Params::ML_KEM_512:
425 case Group_Params::ML_KEM_768:
427 case Group_Params::ML_KEM_1024:
428 return "ML-KEM-1024";
430 case Group_Params::eFRODOKEM_640_SHAKE_OQS:
431 return "eFrodoKEM-640-SHAKE";
432 case Group_Params::eFRODOKEM_976_SHAKE_OQS:
433 return "eFrodoKEM-976-SHAKE";
434 case Group_Params::eFRODOKEM_1344_SHAKE_OQS:
435 return "eFrodoKEM-1344-SHAKE";
436 case Group_Params::eFRODOKEM_640_AES_OQS:
437 return "eFrodoKEM-640-AES";
438 case Group_Params::eFRODOKEM_976_AES_OQS:
439 return "eFrodoKEM-976-AES";
440 case Group_Params::eFRODOKEM_1344_AES_OQS:
441 return "eFrodoKEM-1344-AES";
443 case Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS:
444 return "x25519/eFrodoKEM-640-SHAKE";
445 case Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS:
446 return "x25519/eFrodoKEM-640-AES";
447 case Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS:
448 return "x448/eFrodoKEM-976-SHAKE";
449 case Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS:
450 return "x448/eFrodoKEM-976-AES";
451 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS:
452 return "secp256r1/eFrodoKEM-640-SHAKE";
453 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS:
454 return "secp256r1/eFrodoKEM-640-AES";
455 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS:
456 return "secp384r1/eFrodoKEM-976-SHAKE";
457 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS:
458 return "secp384r1/eFrodoKEM-976-AES";
459 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS:
460 return "secp521r1/eFrodoKEM-1344-SHAKE";
461 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS:
462 return "secp521r1/eFrodoKEM-1344-AES";
464 case Group_Params::HYBRID_X25519_ML_KEM_768:
465 return "x25519/ML-KEM-768";
466 case Group_Params::HYBRID_SECP256R1_ML_KEM_768:
467 return "secp256r1/ML-KEM-768";
468 case Group_Params::HYBRID_SECP384R1_ML_KEM_1024:
469 return "secp384r1/ML-KEM-1024";