138 if(group_name ==
"secp256r1") {
139 return Group_Params::SECP256R1;
141 if(group_name ==
"secp384r1") {
142 return Group_Params::SECP384R1;
144 if(group_name ==
"secp521r1") {
145 return Group_Params::SECP521R1;
147 if(group_name ==
"brainpool256r1") {
148 return Group_Params::BRAINPOOL256R1;
150 if(group_name ==
"brainpool384r1") {
151 return Group_Params::BRAINPOOL384R1;
153 if(group_name ==
"brainpool512r1") {
154 return Group_Params::BRAINPOOL512R1;
156 if(group_name ==
"x25519") {
157 return Group_Params::X25519;
159 if(group_name ==
"x448") {
160 return Group_Params::X448;
163 if(group_name ==
"ffdhe/ietf/2048") {
164 return Group_Params::FFDHE_2048;
166 if(group_name ==
"ffdhe/ietf/3072") {
167 return Group_Params::FFDHE_3072;
169 if(group_name ==
"ffdhe/ietf/4096") {
170 return Group_Params::FFDHE_4096;
172 if(group_name ==
"ffdhe/ietf/6144") {
173 return Group_Params::FFDHE_6144;
175 if(group_name ==
"ffdhe/ietf/8192") {
176 return Group_Params::FFDHE_8192;
179 if(group_name ==
"Kyber-512-r3") {
180 return Group_Params::KYBER_512_R3_OQS;
182 if(group_name ==
"Kyber-768-r3") {
183 return Group_Params::KYBER_768_R3_OQS;
185 if(group_name ==
"Kyber-1024-r3") {
186 return Group_Params::KYBER_1024_R3_OQS;
189 if(group_name ==
"eFrodoKEM-640-SHAKE") {
190 return Group_Params::eFRODOKEM_640_SHAKE_OQS;
192 if(group_name ==
"eFrodoKEM-976-SHAKE") {
193 return Group_Params::eFRODOKEM_976_SHAKE_OQS;
195 if(group_name ==
"eFrodoKEM-1344-SHAKE") {
196 return Group_Params::eFRODOKEM_1344_SHAKE_OQS;
198 if(group_name ==
"eFrodoKEM-640-AES") {
199 return Group_Params::eFRODOKEM_640_AES_OQS;
201 if(group_name ==
"eFrodoKEM-976-AES") {
202 return Group_Params::eFRODOKEM_976_AES_OQS;
204 if(group_name ==
"eFrodoKEM-1344-AES") {
205 return Group_Params::eFRODOKEM_1344_AES_OQS;
208 if(group_name ==
"x25519/Kyber-512-r3/cloudflare") {
209 return Group_Params::HYBRID_X25519_KYBER_512_R3_CLOUDFLARE;
211 if(group_name ==
"x25519/Kyber-512-r3") {
212 return Group_Params::HYBRID_X25519_KYBER_512_R3_OQS;
214 if(group_name ==
"x25519/Kyber-768-r3") {
215 return Group_Params::HYBRID_X25519_KYBER_768_R3_OQS;
218 if(group_name ==
"x25519/ML-KEM-768") {
219 return Group_Params::HYBRID_X25519_ML_KEM_768;
221 if(group_name ==
"secp256r1/ML-KEM-768") {
222 return Group_Params::HYBRID_SECP256R1_ML_KEM_768;
225 if(group_name ==
"x448/Kyber-768-r3") {
226 return Group_Params::HYBRID_X448_KYBER_768_R3_OQS;
228 if(group_name ==
"x25519/eFrodoKEM-640-SHAKE") {
229 return Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS;
231 if(group_name ==
"x25519/eFrodoKEM-640-AES") {
232 return Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS;
234 if(group_name ==
"x448/eFrodoKEM-976-SHAKE") {
235 return Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS;
237 if(group_name ==
"x448/eFrodoKEM-976-AES") {
238 return Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS;
241 if(group_name ==
"secp256r1/Kyber-512-r3") {
242 return Group_Params::HYBRID_SECP256R1_KYBER_512_R3_OQS;
244 if(group_name ==
"secp256r1/Kyber-768-r3") {
245 return Group_Params::HYBRID_SECP256R1_KYBER_768_R3_OQS;
247 if(group_name ==
"secp256r1/eFrodoKEM-640-SHAKE") {
248 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS;
250 if(group_name ==
"secp256r1/eFrodoKEM-640-AES") {
251 return Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS;
254 if(group_name ==
"secp384r1/Kyber-768-r3") {
255 return Group_Params::HYBRID_SECP384R1_KYBER_768_R3_OQS;
257 if(group_name ==
"secp384r1/eFrodoKEM-976-SHAKE") {
258 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS;
260 if(group_name ==
"secp384r1/eFrodoKEM-976-AES") {
261 return Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS;
264 if(group_name ==
"secp521r1/Kyber-1024-r3") {
265 return Group_Params::HYBRID_SECP521R1_KYBER_1024_R3_OQS;
267 if(group_name ==
"secp521r1/eFrodoKEM-1344-SHAKE") {
268 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS;
270 if(group_name ==
"secp521r1/eFrodoKEM-1344-AES") {
271 return Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS;
279 case Group_Params::SECP256R1:
281 case Group_Params::SECP384R1:
283 case Group_Params::SECP521R1:
285 case Group_Params::BRAINPOOL256R1:
286 return "brainpool256r1";
287 case Group_Params::BRAINPOOL384R1:
288 return "brainpool384r1";
289 case Group_Params::BRAINPOOL512R1:
290 return "brainpool512r1";
291 case Group_Params::X25519:
293 case Group_Params::X448:
296 case Group_Params::FFDHE_2048:
297 return "ffdhe/ietf/2048";
298 case Group_Params::FFDHE_3072:
299 return "ffdhe/ietf/3072";
300 case Group_Params::FFDHE_4096:
301 return "ffdhe/ietf/4096";
302 case Group_Params::FFDHE_6144:
303 return "ffdhe/ietf/6144";
304 case Group_Params::FFDHE_8192:
305 return "ffdhe/ietf/8192";
307 case Group_Params::KYBER_512_R3_OQS:
308 return "Kyber-512-r3";
309 case Group_Params::KYBER_768_R3_OQS:
310 return "Kyber-768-r3";
311 case Group_Params::KYBER_1024_R3_OQS:
312 return "Kyber-1024-r3";
314 case Group_Params::eFRODOKEM_640_SHAKE_OQS:
315 return "eFrodoKEM-640-SHAKE";
316 case Group_Params::eFRODOKEM_976_SHAKE_OQS:
317 return "eFrodoKEM-976-SHAKE";
318 case Group_Params::eFRODOKEM_1344_SHAKE_OQS:
319 return "eFrodoKEM-1344-SHAKE";
320 case Group_Params::eFRODOKEM_640_AES_OQS:
321 return "eFrodoKEM-640-AES";
322 case Group_Params::eFRODOKEM_976_AES_OQS:
323 return "eFrodoKEM-976-AES";
324 case Group_Params::eFRODOKEM_1344_AES_OQS:
325 return "eFrodoKEM-1344-AES";
327 case Group_Params::HYBRID_X25519_eFRODOKEM_640_SHAKE_OQS:
328 return "x25519/eFrodoKEM-640-SHAKE";
329 case Group_Params::HYBRID_X25519_eFRODOKEM_640_AES_OQS:
330 return "x25519/eFrodoKEM-640-AES";
331 case Group_Params::HYBRID_X448_eFRODOKEM_976_SHAKE_OQS:
332 return "x448/eFrodoKEM-976-SHAKE";
333 case Group_Params::HYBRID_X448_eFRODOKEM_976_AES_OQS:
334 return "x448/eFrodoKEM-976-AES";
335 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_SHAKE_OQS:
336 return "secp256r1/eFrodoKEM-640-SHAKE";
337 case Group_Params::HYBRID_SECP256R1_eFRODOKEM_640_AES_OQS:
338 return "secp256r1/eFrodoKEM-640-AES";
339 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_SHAKE_OQS:
340 return "secp384r1/eFrodoKEM-976-SHAKE";
341 case Group_Params::HYBRID_SECP384R1_eFRODOKEM_976_AES_OQS:
342 return "secp384r1/eFrodoKEM-976-AES";
343 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_SHAKE_OQS:
344 return "secp521r1/eFrodoKEM-1344-SHAKE";
345 case Group_Params::HYBRID_SECP521R1_eFRODOKEM_1344_AES_OQS:
346 return "secp521r1/eFrodoKEM-1344-AES";
348 case Group_Params::HYBRID_X25519_KYBER_512_R3_CLOUDFLARE:
349 return "x25519/Kyber-512-r3/cloudflare";
351 case Group_Params::HYBRID_X25519_KYBER_512_R3_OQS:
352 return "x25519/Kyber-512-r3";
353 case Group_Params::HYBRID_X25519_KYBER_768_R3_OQS:
354 return "x25519/Kyber-768-r3";
356 case Group_Params::HYBRID_X25519_ML_KEM_768:
357 return "x25519/ML-KEM-768";
358 case Group_Params::HYBRID_SECP256R1_ML_KEM_768:
359 return "secp256r1/ML-KEM-768";
361 case Group_Params::HYBRID_X448_KYBER_768_R3_OQS:
362 return "x448/Kyber-768-r3";
364 case Group_Params::HYBRID_SECP256R1_KYBER_512_R3_OQS:
365 return "secp256r1/Kyber-512-r3";
366 case Group_Params::HYBRID_SECP256R1_KYBER_768_R3_OQS:
367 return "secp256r1/Kyber-768-r3";
368 case Group_Params::HYBRID_SECP384R1_KYBER_768_R3_OQS:
369 return "secp384r1/Kyber-768-r3";
370 case Group_Params::HYBRID_SECP521R1_KYBER_1024_R3_OQS:
371 return "secp521r1/Kyber-1024-r3";