208 if(group_name ==
"secp256r1") {
209 return Group_Params::SECP256R1;
211 if(group_name ==
"secp384r1") {
212 return Group_Params::SECP384R1;
214 if(group_name ==
"secp521r1") {
215 return Group_Params::SECP521R1;
217 if(group_name ==
"brainpool256r1") {
218 return Group_Params::BRAINPOOL256R1;
220 if(group_name ==
"brainpool384r1") {
221 return Group_Params::BRAINPOOL384R1;
223 if(group_name ==
"brainpool512r1") {
224 return Group_Params::BRAINPOOL512R1;
226 if(group_name ==
"x25519") {
227 return Group_Params::X25519;
229 if(group_name ==
"x448") {
230 return Group_Params::X448;
233 if(group_name ==
"ffdhe/ietf/2048") {
234 return Group_Params::FFDHE_2048;
236 if(group_name ==
"ffdhe/ietf/3072") {
237 return Group_Params::FFDHE_3072;
239 if(group_name ==
"ffdhe/ietf/4096") {
240 return Group_Params::FFDHE_4096;
242 if(group_name ==
"ffdhe/ietf/6144") {
243 return Group_Params::FFDHE_6144;
245 if(group_name ==
"ffdhe/ietf/8192") {
246 return Group_Params::FFDHE_8192;
249 if(group_name ==
"ML-KEM-512") {
250 return Group_Params::ML_KEM_512;
252 if(group_name ==
"ML-KEM-768") {
253 return Group_Params::ML_KEM_768;
255 if(group_name ==
"ML-KEM-1024") {
256 return Group_Params::ML_KEM_1024;
259 if(group_name ==
"eFrodoKEM-640-SHAKE") {
260 return Group_Params::eFRODOKEM_640_SHAKE_OQS;
262 if(group_name ==
"eFrodoKEM-976-SHAKE") {
263 return Group_Params::eFRODOKEM_976_SHAKE_OQS;
265 if(group_name ==
"eFrodoKEM-1344-SHAKE") {
266 return Group_Params::eFRODOKEM_1344_SHAKE_OQS;
268 if(group_name ==
"eFrodoKEM-640-AES") {
269 return Group_Params::eFRODOKEM_640_AES_OQS;
271 if(group_name ==
"eFrodoKEM-976-AES") {
272 return Group_Params::eFRODOKEM_976_AES_OQS;
274 if(group_name ==
"eFrodoKEM-1344-AES") {
275 return Group_Params::eFRODOKEM_1344_AES_OQS;
278 if(group_name ==
"x25519/ML-KEM-768") {
279 return Group_Params::HYBRID_X25519_ML_KEM_768;
281 if(group_name ==
"secp256r1/ML-KEM-768") {
282 return Group_Params::HYBRID_SECP256R1_ML_KEM_768;
284 if(group_name ==
"secp384r1/ML-KEM-1024") {
285 return Group_Params::HYBRID_SECP384R1_ML_KEM_1024;
288 if(group_name ==
"x25519/eFrodoKEM-640-SHAKE") {
289 return Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS;
291 if(group_name ==
"x25519/eFrodoKEM-640-AES") {
292 return Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS;
294 if(group_name ==
"x448/eFrodoKEM-976-SHAKE") {
295 return Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS;
297 if(group_name ==
"x448/eFrodoKEM-976-AES") {
298 return Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS;
301 if(group_name ==
"secp256r1/eFrodoKEM-640-SHAKE") {
302 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS;
304 if(group_name ==
"secp256r1/eFrodoKEM-640-AES") {
305 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS;
308 if(group_name ==
"secp384r1/eFrodoKEM-976-SHAKE") {
309 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS;
311 if(group_name ==
"secp384r1/eFrodoKEM-976-AES") {
312 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS;
315 if(group_name ==
"secp521r1/eFrodoKEM-1344-SHAKE") {
316 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS;
318 if(group_name ==
"secp521r1/eFrodoKEM-1344-AES") {
319 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS;
327 case Group_Params::SECP256R1:
329 case Group_Params::SECP384R1:
331 case Group_Params::SECP521R1:
333 case Group_Params::BRAINPOOL256R1:
334 return "brainpool256r1";
335 case Group_Params::BRAINPOOL384R1:
336 return "brainpool384r1";
337 case Group_Params::BRAINPOOL512R1:
338 return "brainpool512r1";
339 case Group_Params::X25519:
341 case Group_Params::X448:
344 case Group_Params::FFDHE_2048:
345 return "ffdhe/ietf/2048";
346 case Group_Params::FFDHE_3072:
347 return "ffdhe/ietf/3072";
348 case Group_Params::FFDHE_4096:
349 return "ffdhe/ietf/4096";
350 case Group_Params::FFDHE_6144:
351 return "ffdhe/ietf/6144";
352 case Group_Params::FFDHE_8192:
353 return "ffdhe/ietf/8192";
355 case Group_Params::ML_KEM_512:
357 case Group_Params::ML_KEM_768:
359 case Group_Params::ML_KEM_1024:
360 return "ML-KEM-1024";
362 case Group_Params::eFRODOKEM_640_SHAKE_OQS:
363 return "eFrodoKEM-640-SHAKE";
364 case Group_Params::eFRODOKEM_976_SHAKE_OQS:
365 return "eFrodoKEM-976-SHAKE";
366 case Group_Params::eFRODOKEM_1344_SHAKE_OQS:
367 return "eFrodoKEM-1344-SHAKE";
368 case Group_Params::eFRODOKEM_640_AES_OQS:
369 return "eFrodoKEM-640-AES";
370 case Group_Params::eFRODOKEM_976_AES_OQS:
371 return "eFrodoKEM-976-AES";
372 case Group_Params::eFRODOKEM_1344_AES_OQS:
373 return "eFrodoKEM-1344-AES";
375 case Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS:
376 return "x25519/eFrodoKEM-640-SHAKE";
377 case Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS:
378 return "x25519/eFrodoKEM-640-AES";
379 case Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS:
380 return "x448/eFrodoKEM-976-SHAKE";
381 case Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS:
382 return "x448/eFrodoKEM-976-AES";
383 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS:
384 return "secp256r1/eFrodoKEM-640-SHAKE";
385 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS:
386 return "secp256r1/eFrodoKEM-640-AES";
387 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS:
388 return "secp384r1/eFrodoKEM-976-SHAKE";
389 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS:
390 return "secp384r1/eFrodoKEM-976-AES";
391 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS:
392 return "secp521r1/eFrodoKEM-1344-SHAKE";
393 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS:
394 return "secp521r1/eFrodoKEM-1344-AES";
396 case Group_Params::HYBRID_X25519_ML_KEM_768:
397 return "x25519/ML-KEM-768";
398 case Group_Params::HYBRID_SECP256R1_ML_KEM_768:
399 return "secp256r1/ML-KEM-768";
400 case Group_Params::HYBRID_SECP384R1_ML_KEM_1024:
401 return "secp384r1/ML-KEM-1024";