1 /*
2 * WARNING: do not edit!
3 * Generated by Makefile from crypto/params_idx.c.in
4 *
5 * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
6 *
7 * Licensed under the Apache License 2.0 (the "License"). You may not use
8 * this file except in compliance with the License. You can obtain a copy
9 * in the file LICENSE in the source distribution or at
10 * https://www.openssl.org/source/license.html
11 */
12
13
14 #include "internal/e_os.h"
15 #include "internal/param_names.h"
16 #include <string.h>
17
18 /* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */
ossl_param_find_pidx(const char * s)19 int ossl_param_find_pidx(const char *s)
20 {
21 switch(s[0]) {
22 default:
23 break;
24 case 'a':
25 switch(s[1]) {
26 default:
27 break;
28 case 'c':
29 if (strcmp("vp-info", s + 2) == 0)
30 return PIDX_KDF_PARAM_X942_ACVPINFO;
31 break;
32 case 'd':
33 switch(s[2]) {
34 default:
35 break;
36 case 'd':
37 if (strcmp("itional-random", s + 3) == 0)
38 return PIDX_SIGNATURE_PARAM_ADD_RANDOM;
39 break;
40 case '\0':
41 return PIDX_KDF_PARAM_ARGON2_AD;
42 }
43 break;
44 case 'e':
45 if (strcmp("ad", s + 2) == 0)
46 return PIDX_CIPHER_PARAM_AEAD;
47 break;
48 case 'l':
49 switch(s[2]) {
50 default:
51 break;
52 case 'g':
53 switch(s[3]) {
54 default:
55 break;
56 case '_':
57 if (strcmp("id_param", s + 4) == 0)
58 return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD;
59 break;
60 case 'i':
61 if (strcmp("d-absent", s + 4) == 0)
62 return PIDX_DIGEST_PARAM_ALGID_ABSENT;
63 break;
64 case 'o':
65 switch(s[4]) {
66 default:
67 break;
68 case 'r':
69 switch(s[5]) {
70 default:
71 break;
72 case 'i':
73 switch(s[6]) {
74 default:
75 break;
76 case 't':
77 switch(s[7]) {
78 default:
79 break;
80 case 'h':
81 switch(s[8]) {
82 default:
83 break;
84 case 'm':
85 switch(s[9]) {
86 default:
87 break;
88 case '-':
89 switch(s[10]) {
90 default:
91 break;
92 case 'i':
93 switch(s[11]) {
94 default:
95 break;
96 case 'd':
97 switch(s[12]) {
98 default:
99 break;
100 case '-':
101 if (strcmp("params", s + 13) == 0)
102 return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS;
103 break;
104 case '\0':
105 return PIDX_ALG_PARAM_ALGORITHM_ID;
106 }
107 }
108 }
109 }
110 }
111 }
112 }
113 }
114 }
115 }
116 break;
117 case 'i':
118 if (strcmp("as", s + 3) == 0)
119 return PIDX_STORE_PARAM_ALIAS;
120 }
121 break;
122 case '\0':
123 return PIDX_PKEY_PARAM_EC_A;
124 }
125 break;
126 case 'b':
127 switch(s[1]) {
128 default:
129 break;
130 case 'a':
131 if (strcmp("sis-type", s + 2) == 0)
132 return PIDX_PKEY_PARAM_EC_CHAR2_TYPE;
133 break;
134 case 'i':
135 if (strcmp("ts", s + 2) == 0)
136 return PIDX_PKEY_PARAM_BITS;
137 break;
138 case 'l':
139 switch(s[2]) {
140 default:
141 break;
142 case 'o':
143 switch(s[3]) {
144 default:
145 break;
146 case 'c':
147 switch(s[4]) {
148 default:
149 break;
150 case 'k':
151 switch(s[5]) {
152 default:
153 break;
154 case '-':
155 if (strcmp("size", s + 6) == 0)
156 return PIDX_MAC_PARAM_BLOCK_SIZE;
157 break;
158 case '_':
159 if (strcmp("padding", s + 6) == 0)
160 return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING;
161 break;
162 case 's':
163 if (strcmp("ize", s + 6) == 0)
164 return PIDX_DIGEST_PARAM_BLOCK_SIZE;
165 }
166 }
167 }
168 }
169 break;
170 case 'u':
171 if (strcmp("ildinfo", s + 2) == 0)
172 return PIDX_PROV_PARAM_BUILDINFO;
173 break;
174 case '\0':
175 return PIDX_PKEY_PARAM_EC_B;
176 }
177 break;
178 case 'c':
179 switch(s[1]) {
180 default:
181 break;
182 case '-':
183 if (strcmp("rounds", s + 2) == 0)
184 return PIDX_MAC_PARAM_C_ROUNDS;
185 break;
186 case 'e':
187 if (strcmp("kalg", s + 2) == 0)
188 return PIDX_KDF_PARAM_CEK_ALG;
189 break;
190 case 'i':
191 if (strcmp("pher", s + 2) == 0)
192 return PIDX_ALG_PARAM_CIPHER;
193 break;
194 case 'o':
195 switch(s[2]) {
196 default:
197 break;
198 case 'f':
199 if (strcmp("actor", s + 3) == 0)
200 return PIDX_PKEY_PARAM_EC_COFACTOR;
201 break;
202 case 'n':
203 switch(s[3]) {
204 default:
205 break;
206 case 's':
207 if (strcmp("tant", s + 4) == 0)
208 return PIDX_KDF_PARAM_CONSTANT;
209 break;
210 case 't':
211 if (strcmp("ext-string", s + 4) == 0)
212 return PIDX_SIGNATURE_PARAM_CONTEXT_STRING;
213 }
214 }
215 break;
216 case 't':
217 switch(s[2]) {
218 default:
219 break;
220 case 's':
221 switch(s[3]) {
222 default:
223 break;
224 case '_':
225 if (strcmp("mode", s + 4) == 0)
226 return PIDX_CIPHER_PARAM_CTS_MODE;
227 break;
228 case '\0':
229 return PIDX_CIPHER_PARAM_CTS;
230 }
231 }
232 break;
233 case 'u':
234 switch(s[2]) {
235 default:
236 break;
237 case 's':
238 switch(s[3]) {
239 default:
240 break;
241 case 't':
242 switch(s[4]) {
243 default:
244 break;
245 case 'o':
246 switch(s[5]) {
247 default:
248 break;
249 case 'm':
250 switch(s[6]) {
251 default:
252 break;
253 case '-':
254 if (strcmp("iv", s + 7) == 0)
255 return PIDX_CIPHER_PARAM_CUSTOM_IV;
256 break;
257 case '\0':
258 return PIDX_MAC_PARAM_CUSTOM;
259 }
260 }
261 }
262 }
263 }
264 }
265 break;
266 case 'd':
267 switch(s[1]) {
268 default:
269 break;
270 case '-':
271 if (strcmp("rounds", s + 2) == 0)
272 return PIDX_MAC_PARAM_D_ROUNDS;
273 break;
274 case 'a':
275 switch(s[2]) {
276 default:
277 break;
278 case 't':
279 switch(s[3]) {
280 default:
281 break;
282 case 'a':
283 switch(s[4]) {
284 default:
285 break;
286 case '-':
287 switch(s[5]) {
288 default:
289 break;
290 case 's':
291 if (strcmp("tructure", s + 6) == 0)
292 return PIDX_OBJECT_PARAM_DATA_STRUCTURE;
293 break;
294 case 't':
295 if (strcmp("ype", s + 6) == 0)
296 return PIDX_OBJECT_PARAM_DATA_TYPE;
297 }
298 break;
299 case '\0':
300 return PIDX_OBJECT_PARAM_DATA;
301 }
302 }
303 }
304 break;
305 case 'e':
306 switch(s[2]) {
307 default:
308 break;
309 case 'c':
310 switch(s[3]) {
311 default:
312 break;
313 case 'o':
314 if (strcmp("ded-from-explicit", s + 4) == 0)
315 return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS;
316 break;
317 case 'r':
318 if (strcmp("ypt-only", s + 4) == 0)
319 return PIDX_CIPHER_PARAM_DECRYPT_ONLY;
320 }
321 break;
322 case 'f':
323 if (strcmp("ault-digest", s + 3) == 0)
324 return PIDX_PKEY_PARAM_DEFAULT_DIGEST;
325 break;
326 case 's':
327 if (strcmp("c", s + 3) == 0)
328 return PIDX_OBJECT_PARAM_DESC;
329 break;
330 case 't':
331 if (strcmp("erministic", s + 3) == 0)
332 return PIDX_SIGNATURE_PARAM_DETERMINISTIC;
333 }
334 break;
335 case 'h':
336 if (strcmp("kem-ikm", s + 2) == 0)
337 return PIDX_PKEY_PARAM_DHKEM_IKM;
338 break;
339 case 'i':
340 switch(s[2]) {
341 default:
342 break;
343 case 'g':
344 switch(s[3]) {
345 default:
346 break;
347 case 'e':
348 switch(s[4]) {
349 default:
350 break;
351 case 's':
352 switch(s[5]) {
353 default:
354 break;
355 case 't':
356 switch(s[6]) {
357 default:
358 break;
359 case '-':
360 switch(s[7]) {
361 default:
362 break;
363 case 'c':
364 if (strcmp("heck", s + 8) == 0)
365 return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK;
366 break;
367 case 'n':
368 if (strcmp("oinit", s + 8) == 0)
369 return PIDX_MAC_PARAM_DIGEST_NOINIT;
370 break;
371 case 'o':
372 if (strcmp("neshot", s + 8) == 0)
373 return PIDX_MAC_PARAM_DIGEST_ONESHOT;
374 break;
375 case 'p':
376 if (strcmp("rops", s + 8) == 0)
377 return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS;
378 break;
379 case 's':
380 if (strcmp("ize", s + 8) == 0)
381 return PIDX_PKEY_PARAM_DIGEST_SIZE;
382 }
383 break;
384 case '\0':
385 return PIDX_STORE_PARAM_DIGEST;
386 }
387 }
388 }
389 }
390 break;
391 case 's':
392 if (strcmp("tid", s + 3) == 0)
393 return PIDX_PKEY_PARAM_DIST_ID;
394 }
395 break;
396 case 'r':
397 if (strcmp("bg-no-trunc-md", s + 2) == 0)
398 return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST;
399 break;
400 case 's':
401 if (strcmp("a-sign-disabled", s + 2) == 0)
402 return PIDX_PROV_PARAM_DSA_SIGN_DISABLED;
403 break;
404 case '\0':
405 return PIDX_PKEY_PARAM_RSA_D;
406 }
407 break;
408 case 'e':
409 switch(s[1]) {
410 default:
411 break;
412 case 'a':
413 if (strcmp("rly_clean", s + 2) == 0)
414 return PIDX_KDF_PARAM_EARLY_CLEAN;
415 break;
416 case 'c':
417 switch(s[2]) {
418 default:
419 break;
420 case 'd':
421 switch(s[3]) {
422 default:
423 break;
424 case 'h':
425 switch(s[4]) {
426 default:
427 break;
428 case '-':
429 switch(s[5]) {
430 default:
431 break;
432 case 'c':
433 switch(s[6]) {
434 default:
435 break;
436 case 'o':
437 switch(s[7]) {
438 default:
439 break;
440 case 'f':
441 switch(s[8]) {
442 default:
443 break;
444 case 'a':
445 switch(s[9]) {
446 default:
447 break;
448 case 'c':
449 switch(s[10]) {
450 default:
451 break;
452 case 't':
453 switch(s[11]) {
454 default:
455 break;
456 case 'o':
457 switch(s[12]) {
458 default:
459 break;
460 case 'r':
461 switch(s[13]) {
462 default:
463 break;
464 case '-':
465 switch(s[14]) {
466 default:
467 break;
468 case 'c':
469 if (strcmp("heck", s + 15) == 0)
470 return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK;
471 break;
472 case 'm':
473 if (strcmp("ode", s + 15) == 0)
474 return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE;
475 }
476 }
477 }
478 }
479 }
480 }
481 }
482 }
483 }
484 }
485 }
486 }
487 }
488 break;
489 case 'm':
490 if (strcmp("s_check", s + 2) == 0)
491 return PIDX_KDF_PARAM_FIPS_EMS_CHECK;
492 break;
493 case 'n':
494 switch(s[2]) {
495 default:
496 break;
497 case 'c':
498 switch(s[3]) {
499 default:
500 break;
501 case 'o':
502 switch(s[4]) {
503 default:
504 break;
505 case 'd':
506 switch(s[5]) {
507 default:
508 break;
509 case 'e':
510 if (strcmp("d-pub-key", s + 6) == 0)
511 return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY;
512 break;
513 case 'i':
514 if (strcmp("ng", s + 6) == 0)
515 return PIDX_PKEY_PARAM_EC_ENCODING;
516 }
517 }
518 break;
519 case 'r':
520 switch(s[4]) {
521 default:
522 break;
523 case 'y':
524 switch(s[5]) {
525 default:
526 break;
527 case 'p':
528 switch(s[6]) {
529 default:
530 break;
531 case 't':
532 switch(s[7]) {
533 default:
534 break;
535 case '-':
536 switch(s[8]) {
537 default:
538 break;
539 case 'c':
540 if (strcmp("heck", s + 9) == 0)
541 return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK;
542 break;
543 case 'l':
544 if (strcmp("evel", s + 9) == 0)
545 return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL;
546 }
547 }
548 }
549 }
550 }
551 }
552 break;
553 case 'g':
554 if (strcmp("ine", s + 3) == 0)
555 return PIDX_ALG_PARAM_ENGINE;
556 break;
557 case 't':
558 switch(s[3]) {
559 default:
560 break;
561 case 'r':
562 switch(s[4]) {
563 default:
564 break;
565 case 'o':
566 switch(s[5]) {
567 default:
568 break;
569 case 'p':
570 switch(s[6]) {
571 default:
572 break;
573 case 'y':
574 switch(s[7]) {
575 default:
576 break;
577 case '_':
578 if (strcmp("required", s + 8) == 0)
579 return PIDX_DRBG_PARAM_ENTROPY_REQUIRED;
580 break;
581 case '\0':
582 return PIDX_KDF_PARAM_HMACDRBG_ENTROPY;
583 }
584 }
585 }
586 }
587 }
588 }
589 break;
590 case '\0':
591 return PIDX_PKEY_PARAM_RSA_E;
592 break;
593 case 'x':
594 if (strcmp("pect", s + 2) == 0)
595 return PIDX_STORE_PARAM_EXPECT;
596 }
597 break;
598 case 'f':
599 switch(s[1]) {
600 default:
601 break;
602 case 'i':
603 switch(s[2]) {
604 default:
605 break;
606 case 'e':
607 if (strcmp("ld-type", s + 3) == 0)
608 return PIDX_PKEY_PARAM_EC_FIELD_TYPE;
609 break;
610 case 'n':
611 if (strcmp("gerprint", s + 3) == 0)
612 return PIDX_STORE_PARAM_FINGERPRINT;
613 break;
614 case 'p':
615 if (strcmp("s-indicator", s + 3) == 0)
616 return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR;
617 }
618 }
619 break;
620 case 'g':
621 switch(s[1]) {
622 default:
623 break;
624 case 'e':
625 switch(s[2]) {
626 default:
627 break;
628 case 'n':
629 switch(s[3]) {
630 default:
631 break;
632 case 'e':
633 switch(s[4]) {
634 default:
635 break;
636 case 'r':
637 switch(s[5]) {
638 default:
639 break;
640 case 'a':
641 switch(s[6]) {
642 default:
643 break;
644 case 't':
645 switch(s[7]) {
646 default:
647 break;
648 case 'e':
649 switch(s[8]) {
650 default:
651 break;
652 case '\0':
653 return PIDX_RAND_PARAM_GENERATE;
654 }
655 break;
656 case 'o':
657 if (strcmp("r", s + 8) == 0)
658 return PIDX_PKEY_PARAM_EC_GENERATOR;
659 }
660 }
661 }
662 }
663 }
664 }
665 break;
666 case 'i':
667 if (strcmp("ndex", s + 2) == 0)
668 return PIDX_PKEY_PARAM_FFC_GINDEX;
669 break;
670 case 'r':
671 switch(s[2]) {
672 default:
673 break;
674 case 'o':
675 switch(s[3]) {
676 default:
677 break;
678 case 'u':
679 switch(s[4]) {
680 default:
681 break;
682 case 'p':
683 switch(s[5]) {
684 default:
685 break;
686 case '-':
687 if (strcmp("check", s + 6) == 0)
688 return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE;
689 break;
690 case '\0':
691 return PIDX_PKEY_PARAM_GROUP_NAME;
692 }
693 }
694 }
695 }
696 break;
697 case '\0':
698 return PIDX_PKEY_PARAM_FFC_G;
699 }
700 break;
701 case 'h':
702 switch(s[1]) {
703 default:
704 break;
705 case 'a':
706 if (strcmp("s-randkey", s + 2) == 0)
707 return PIDX_CIPHER_PARAM_HAS_RAND_KEY;
708 break;
709 case 'i':
710 if (strcmp("ndex", s + 2) == 0)
711 return PIDX_PKEY_PARAM_FFC_H;
712 break;
713 case 'k':
714 switch(s[2]) {
715 default:
716 break;
717 case 'd':
718 switch(s[3]) {
719 default:
720 break;
721 case 'f':
722 switch(s[4]) {
723 default:
724 break;
725 case '-':
726 switch(s[5]) {
727 default:
728 break;
729 case 'd':
730 if (strcmp("igest-check", s + 6) == 0)
731 return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK;
732 break;
733 case 'k':
734 if (strcmp("ey-check", s + 6) == 0)
735 return PIDX_PROV_PARAM_HKDF_KEY_CHECK;
736 }
737 }
738 }
739 }
740 break;
741 case 'm':
742 if (strcmp("ac-key-check", s + 2) == 0)
743 return PIDX_PROV_PARAM_HMAC_KEY_CHECK;
744 break;
745 case 's':
746 if (strcmp("_padding", s + 2) == 0)
747 return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING;
748 }
749 break;
750 case 'i':
751 switch(s[1]) {
752 default:
753 break;
754 case 'd':
755 switch(s[2]) {
756 default:
757 break;
758 case '\0':
759 return PIDX_KDF_PARAM_PKCS12_ID;
760 }
761 break;
762 case 'k':
763 if (strcmp("me", s + 2) == 0)
764 return PIDX_KEM_PARAM_IKME;
765 break;
766 case 'm':
767 if (strcmp("plicit-rejection", s + 2) == 0)
768 return PIDX_PKEY_PARAM_IMPLICIT_REJECTION;
769 break;
770 case 'n':
771 switch(s[2]) {
772 default:
773 break;
774 case 'c':
775 if (strcmp("lude-public", s + 3) == 0)
776 return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC;
777 break;
778 case 'f':
779 if (strcmp("o", s + 3) == 0)
780 return PIDX_PASSPHRASE_PARAM_INFO;
781 break;
782 case 'p':
783 if (strcmp("ut-type", s + 3) == 0)
784 return PIDX_STORE_PARAM_INPUT_TYPE;
785 break;
786 case 's':
787 if (strcmp("tance", s + 3) == 0)
788 return PIDX_SIGNATURE_PARAM_INSTANCE;
789 }
790 break;
791 case 't':
792 switch(s[2]) {
793 default:
794 break;
795 case 'e':
796 switch(s[3]) {
797 default:
798 break;
799 case 'r':
800 switch(s[4]) {
801 default:
802 break;
803 case 'a':
804 if (strcmp("tion", s + 5) == 0)
805 return PIDX_GEN_PARAM_ITERATION;
806 break;
807 case '\0':
808 return PIDX_KDF_PARAM_ITER;
809 }
810 }
811 }
812 break;
813 case 'v':
814 switch(s[2]) {
815 default:
816 break;
817 case '-':
818 if (strcmp("generated", s + 3) == 0)
819 return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED;
820 break;
821 case 'l':
822 if (strcmp("en", s + 3) == 0)
823 return PIDX_CIPHER_PARAM_IVLEN;
824 break;
825 case '\0':
826 return PIDX_MAC_PARAM_IV;
827 }
828 }
829 break;
830 case 'j':
831 switch(s[1]) {
832 default:
833 break;
834 case '\0':
835 return PIDX_PKEY_PARAM_FFC_COFACTOR;
836 }
837 break;
838 case 'k':
839 switch(s[1]) {
840 default:
841 break;
842 case '1':
843 switch(s[2]) {
844 default:
845 break;
846 case '\0':
847 return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1;
848 }
849 break;
850 case '2':
851 switch(s[2]) {
852 default:
853 break;
854 case '\0':
855 return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2;
856 }
857 break;
858 case '3':
859 switch(s[2]) {
860 default:
861 break;
862 case '\0':
863 return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3;
864 }
865 break;
866 case 'a':
867 if (strcmp("t", s + 2) == 0)
868 return PIDX_SIGNATURE_PARAM_KAT;
869 break;
870 case 'b':
871 if (strcmp("kdf-key-check", s + 2) == 0)
872 return PIDX_PROV_PARAM_KBKDF_KEY_CHECK;
873 break;
874 case 'd':
875 switch(s[2]) {
876 default:
877 break;
878 case 'f':
879 switch(s[3]) {
880 default:
881 break;
882 case '-':
883 switch(s[4]) {
884 default:
885 break;
886 case 'd':
887 switch(s[5]) {
888 default:
889 break;
890 case 'i':
891 switch(s[6]) {
892 default:
893 break;
894 case 'g':
895 switch(s[7]) {
896 default:
897 break;
898 case 'e':
899 switch(s[8]) {
900 default:
901 break;
902 case 's':
903 switch(s[9]) {
904 default:
905 break;
906 case 't':
907 switch(s[10]) {
908 default:
909 break;
910 case '-':
911 if (strcmp("props", s + 11) == 0)
912 return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS;
913 break;
914 case '\0':
915 return PIDX_EXCHANGE_PARAM_KDF_DIGEST;
916 }
917 }
918 }
919 }
920 }
921 }
922 break;
923 case 'o':
924 if (strcmp("utlen", s + 5) == 0)
925 return PIDX_EXCHANGE_PARAM_KDF_OUTLEN;
926 break;
927 case 't':
928 if (strcmp("ype", s + 5) == 0)
929 return PIDX_EXCHANGE_PARAM_KDF_TYPE;
930 break;
931 case 'u':
932 if (strcmp("km", s + 5) == 0)
933 return PIDX_EXCHANGE_PARAM_KDF_UKM;
934 }
935 }
936 }
937 break;
938 case 'e':
939 switch(s[2]) {
940 default:
941 break;
942 case 'y':
943 switch(s[3]) {
944 default:
945 break;
946 case '-':
947 switch(s[4]) {
948 default:
949 break;
950 case 'c':
951 if (strcmp("heck", s + 5) == 0)
952 return PIDX_PKEY_PARAM_FIPS_KEY_CHECK;
953 break;
954 case 'l':
955 if (strcmp("ength", s + 5) == 0)
956 return PIDX_SKEY_PARAM_KEY_LENGTH;
957 }
958 break;
959 case 'b':
960 if (strcmp("its", s + 4) == 0)
961 return PIDX_CIPHER_PARAM_RC2_KEYBITS;
962 break;
963 case 'l':
964 if (strcmp("en", s + 4) == 0)
965 return PIDX_CIPHER_PARAM_KEYLEN;
966 break;
967 case '\0':
968 return PIDX_MAC_PARAM_KEY;
969 }
970 }
971 break;
972 case 'm':
973 if (strcmp("ac-key-check", s + 2) == 0)
974 return PIDX_PROV_PARAM_KMAC_KEY_CHECK;
975 }
976 break;
977 case 'l':
978 switch(s[1]) {
979 default:
980 break;
981 case 'a':
982 switch(s[2]) {
983 default:
984 break;
985 case 'b':
986 if (strcmp("el", s + 3) == 0)
987 return PIDX_KDF_PARAM_LABEL;
988 break;
989 case 'n':
990 if (strcmp("es", s + 3) == 0)
991 return PIDX_KDF_PARAM_ARGON2_LANES;
992 }
993 }
994 break;
995 case 'm':
996 switch(s[1]) {
997 default:
998 break;
999 case 'a':
1000 switch(s[2]) {
1001 default:
1002 break;
1003 case 'c':
1004 switch(s[3]) {
1005 default:
1006 break;
1007 case 'k':
1008 if (strcmp("ey", s + 4) == 0)
1009 return PIDX_CIPHER_PARAM_AEAD_MAC_KEY;
1010 break;
1011 case 'l':
1012 if (strcmp("en", s + 4) == 0)
1013 return PIDX_KDF_PARAM_MAC_SIZE;
1014 break;
1015 case '\0':
1016 return PIDX_ALG_PARAM_MAC;
1017 }
1018 break;
1019 case 'n':
1020 if (strcmp("datory-digest", s + 3) == 0)
1021 return PIDX_PKEY_PARAM_MANDATORY_DIGEST;
1022 break;
1023 case 'x':
1024 switch(s[3]) {
1025 default:
1026 break;
1027 case '-':
1028 if (strcmp("size", s + 4) == 0)
1029 return PIDX_PKEY_PARAM_MAX_SIZE;
1030 break;
1031 case '_':
1032 switch(s[4]) {
1033 default:
1034 break;
1035 case 'a':
1036 if (strcmp("dinlen", s + 5) == 0)
1037 return PIDX_DRBG_PARAM_MAX_ADINLEN;
1038 break;
1039 case 'e':
1040 switch(s[5]) {
1041 default:
1042 break;
1043 case 'a':
1044 if (strcmp("rly_data", s + 6) == 0)
1045 return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA;
1046 break;
1047 case 'n':
1048 if (strcmp("tropylen", s + 6) == 0)
1049 return PIDX_DRBG_PARAM_MAX_ENTROPYLEN;
1050 }
1051 break;
1052 case 'f':
1053 if (strcmp("rag_len", s + 5) == 0)
1054 return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN;
1055 break;
1056 case 'n':
1057 if (strcmp("oncelen", s + 5) == 0)
1058 return PIDX_DRBG_PARAM_MAX_NONCELEN;
1059 break;
1060 case 'p':
1061 if (strcmp("erslen", s + 5) == 0)
1062 return PIDX_DRBG_PARAM_MAX_PERSLEN;
1063 break;
1064 case 'r':
1065 if (strcmp("equest", s + 5) == 0)
1066 return PIDX_RAND_PARAM_MAX_REQUEST;
1067 }
1068 break;
1069 case 'i':
1070 if (strcmp("um_length", s + 4) == 0)
1071 return PIDX_DRBG_PARAM_MAX_LENGTH;
1072 break;
1073 case 'm':
1074 if (strcmp("em_bytes", s + 4) == 0)
1075 return PIDX_KDF_PARAM_SCRYPT_MAXMEM;
1076 }
1077 }
1078 break;
1079 case 'e':
1080 switch(s[2]) {
1081 default:
1082 break;
1083 case 'm':
1084 if (strcmp("cost", s + 3) == 0)
1085 return PIDX_KDF_PARAM_ARGON2_MEMCOST;
1086 break;
1087 case 's':
1088 if (strcmp("sage-encoding", s + 3) == 0)
1089 return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING;
1090 }
1091 break;
1092 case 'g':
1093 switch(s[2]) {
1094 default:
1095 break;
1096 case 'f':
1097 switch(s[3]) {
1098 default:
1099 break;
1100 case '1':
1101 switch(s[4]) {
1102 default:
1103 break;
1104 case '-':
1105 switch(s[5]) {
1106 default:
1107 break;
1108 case 'd':
1109 if (strcmp("igest", s + 6) == 0)
1110 return PIDX_PKEY_PARAM_MGF1_DIGEST;
1111 break;
1112 case 'p':
1113 if (strcmp("roperties", s + 6) == 0)
1114 return PIDX_PKEY_PARAM_MGF1_PROPERTIES;
1115 }
1116 }
1117 break;
1118 case '\0':
1119 return PIDX_PKEY_PARAM_MASKGENFUNC;
1120 }
1121 }
1122 break;
1123 case 'i':
1124 switch(s[2]) {
1125 default:
1126 break;
1127 case 'c':
1128 if (strcmp("alg", s + 3) == 0)
1129 return PIDX_DIGEST_PARAM_MICALG;
1130 break;
1131 case 'n':
1132 switch(s[3]) {
1133 default:
1134 break;
1135 case '_':
1136 switch(s[4]) {
1137 default:
1138 break;
1139 case 'e':
1140 if (strcmp("ntropylen", s + 5) == 0)
1141 return PIDX_DRBG_PARAM_MIN_ENTROPYLEN;
1142 break;
1143 case 'n':
1144 if (strcmp("oncelen", s + 5) == 0)
1145 return PIDX_DRBG_PARAM_MIN_NONCELEN;
1146 }
1147 break;
1148 case 'i':
1149 if (strcmp("um_length", s + 4) == 0)
1150 return PIDX_DRBG_PARAM_MIN_LENGTH;
1151 }
1152 }
1153 break;
1154 case 'l':
1155 switch(s[2]) {
1156 default:
1157 break;
1158 case '-':
1159 switch(s[3]) {
1160 default:
1161 break;
1162 case 'd':
1163 switch(s[4]) {
1164 default:
1165 break;
1166 case 's':
1167 switch(s[5]) {
1168 default:
1169 break;
1170 case 'a':
1171 switch(s[6]) {
1172 default:
1173 break;
1174 case '.':
1175 switch(s[7]) {
1176 default:
1177 break;
1178 case 'i':
1179 if (strcmp("nput_formats", s + 8) == 0)
1180 return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS;
1181 break;
1182 case 'o':
1183 if (strcmp("utput_formats", s + 8) == 0)
1184 return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS;
1185 break;
1186 case 'p':
1187 if (strcmp("refer_seed", s + 8) == 0)
1188 return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED;
1189 break;
1190 case 'r':
1191 if (strcmp("etain_seed", s + 8) == 0)
1192 return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED;
1193 }
1194 }
1195 }
1196 }
1197 break;
1198 case 'k':
1199 switch(s[4]) {
1200 default:
1201 break;
1202 case 'e':
1203 switch(s[5]) {
1204 default:
1205 break;
1206 case 'm':
1207 switch(s[6]) {
1208 default:
1209 break;
1210 case '.':
1211 switch(s[7]) {
1212 default:
1213 break;
1214 case 'i':
1215 switch(s[8]) {
1216 default:
1217 break;
1218 case 'm':
1219 if (strcmp("port_pct_type", s + 9) == 0)
1220 return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE;
1221 break;
1222 case 'n':
1223 if (strcmp("put_formats", s + 9) == 0)
1224 return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS;
1225 }
1226 break;
1227 case 'o':
1228 if (strcmp("utput_formats", s + 8) == 0)
1229 return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS;
1230 break;
1231 case 'p':
1232 if (strcmp("refer_seed", s + 8) == 0)
1233 return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED;
1234 break;
1235 case 'r':
1236 if (strcmp("etain_seed", s + 8) == 0)
1237 return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED;
1238 }
1239 }
1240 }
1241 }
1242 }
1243 }
1244 break;
1245 case 'o':
1246 switch(s[2]) {
1247 default:
1248 break;
1249 case 'd':
1250 switch(s[3]) {
1251 default:
1252 break;
1253 case 'e':
1254 switch(s[4]) {
1255 default:
1256 break;
1257 case '\0':
1258 return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE;
1259 }
1260 break;
1261 case 'u':
1262 if (strcmp("le-filename", s + 4) == 0)
1263 return PIDX_PROV_PARAM_CORE_MODULE_FILENAME;
1264 }
1265 }
1266 break;
1267 case 'u':
1268 switch(s[2]) {
1269 default:
1270 break;
1271 case '\0':
1272 return PIDX_SIGNATURE_PARAM_MU;
1273 }
1274 break;
1275 case '\0':
1276 return PIDX_PKEY_PARAM_EC_CHAR2_M;
1277 }
1278 break;
1279 case 'n':
1280 switch(s[1]) {
1281 default:
1282 break;
1283 case 'a':
1284 if (strcmp("me", s + 2) == 0)
1285 return PIDX_STORE_PARAM_ISSUER;
1286 break;
1287 case 'o':
1288 switch(s[2]) {
1289 default:
1290 break;
1291 case '-':
1292 if (strcmp("short-mac", s + 3) == 0)
1293 return PIDX_PROV_PARAM_NO_SHORT_MAC;
1294 break;
1295 case 'n':
1296 switch(s[3]) {
1297 default:
1298 break;
1299 case 'c':
1300 switch(s[4]) {
1301 default:
1302 break;
1303 case 'e':
1304 switch(s[5]) {
1305 default:
1306 break;
1307 case '-':
1308 if (strcmp("type", s + 6) == 0)
1309 return PIDX_SIGNATURE_PARAM_NONCE_TYPE;
1310 break;
1311 case '\0':
1312 return PIDX_KDF_PARAM_HMACDRBG_NONCE;
1313 }
1314 }
1315 }
1316 }
1317 break;
1318 case 'u':
1319 if (strcmp("m", s + 2) == 0)
1320 return PIDX_CIPHER_PARAM_NUM;
1321 break;
1322 case '\0':
1323 return PIDX_PKEY_PARAM_RSA_N;
1324 }
1325 break;
1326 case 'o':
1327 switch(s[1]) {
1328 default:
1329 break;
1330 case 'a':
1331 if (strcmp("ep-label", s + 2) == 0)
1332 return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL;
1333 break;
1334 case 'p':
1335 switch(s[2]) {
1336 default:
1337 break;
1338 case 'e':
1339 switch(s[3]) {
1340 default:
1341 break;
1342 case 'n':
1343 if (strcmp("ssl-version", s + 4) == 0)
1344 return PIDX_PROV_PARAM_CORE_VERSION;
1345 break;
1346 case 'r':
1347 if (strcmp("ation", s + 4) == 0)
1348 return PIDX_KEM_PARAM_OPERATION;
1349 }
1350 break;
1351 case 't':
1352 if (strcmp("ions", s + 3) == 0)
1353 return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS;
1354 }
1355 break;
1356 case 'r':
1357 if (strcmp("der", s + 2) == 0)
1358 return PIDX_PKEY_PARAM_EC_ORDER;
1359 }
1360 break;
1361 case 'p':
1362 switch(s[1]) {
1363 default:
1364 break;
1365 case '1':
1366 switch(s[2]) {
1367 default:
1368 break;
1369 case '\0':
1370 return PIDX_PKEY_PARAM_RSA_TEST_P1;
1371 }
1372 break;
1373 case '2':
1374 switch(s[2]) {
1375 default:
1376 break;
1377 case '\0':
1378 return PIDX_PKEY_PARAM_RSA_TEST_P2;
1379 }
1380 break;
1381 case 'a':
1382 switch(s[2]) {
1383 default:
1384 break;
1385 case 'd':
1386 switch(s[3]) {
1387 default:
1388 break;
1389 case '-':
1390 switch(s[4]) {
1391 default:
1392 break;
1393 case 'm':
1394 if (strcmp("ode", s + 5) == 0)
1395 return PIDX_PKEY_PARAM_PAD_MODE;
1396 break;
1397 case 't':
1398 if (strcmp("ype", s + 5) == 0)
1399 return PIDX_DIGEST_PARAM_PAD_TYPE;
1400 }
1401 break;
1402 case 'd':
1403 if (strcmp("ing", s + 4) == 0)
1404 return PIDX_CIPHER_PARAM_PADDING;
1405 break;
1406 case '\0':
1407 return PIDX_EXCHANGE_PARAM_PAD;
1408 }
1409 break;
1410 case 'r':
1411 switch(s[3]) {
1412 default:
1413 break;
1414 case 't':
1415 switch(s[4]) {
1416 default:
1417 break;
1418 case 'y':
1419 switch(s[5]) {
1420 default:
1421 break;
1422 case 'u':
1423 if (strcmp("-info", s + 6) == 0)
1424 return PIDX_KDF_PARAM_X942_PARTYUINFO;
1425 break;
1426 case 'v':
1427 if (strcmp("-info", s + 6) == 0)
1428 return PIDX_KDF_PARAM_X942_PARTYVINFO;
1429 }
1430 }
1431 }
1432 break;
1433 case 's':
1434 if (strcmp("s", s + 3) == 0)
1435 return PIDX_KDF_PARAM_PASSWORD;
1436 }
1437 break;
1438 case 'b':
1439 switch(s[2]) {
1440 default:
1441 break;
1442 case 'i':
1443 if (strcmp("ts", s + 3) == 0)
1444 return PIDX_PKEY_PARAM_FFC_PBITS;
1445 break;
1446 case 'k':
1447 if (strcmp("df2-lower-bound-check", s + 3) == 0)
1448 return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK;
1449 }
1450 break;
1451 case 'c':
1452 if (strcmp("ounter", s + 2) == 0)
1453 return PIDX_PKEY_PARAM_FFC_PCOUNTER;
1454 break;
1455 case 'i':
1456 if (strcmp("peline-tag", s + 2) == 0)
1457 return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG;
1458 break;
1459 case 'k':
1460 if (strcmp("cs5", s + 2) == 0)
1461 return PIDX_KDF_PARAM_PKCS5;
1462 break;
1463 case 'o':
1464 switch(s[2]) {
1465 default:
1466 break;
1467 case 'i':
1468 if (strcmp("nt-format", s + 3) == 0)
1469 return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT;
1470 break;
1471 case 't':
1472 if (strcmp("ential", s + 3) == 0)
1473 return PIDX_GEN_PARAM_POTENTIAL;
1474 }
1475 break;
1476 case 'r':
1477 switch(s[2]) {
1478 default:
1479 break;
1480 case 'e':
1481 switch(s[3]) {
1482 default:
1483 break;
1484 case 'd':
1485 if (strcmp("iction_resistance", s + 4) == 0)
1486 return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE;
1487 break;
1488 case 'f':
1489 if (strcmp("ix", s + 4) == 0)
1490 return PIDX_KDF_PARAM_PREFIX;
1491 }
1492 break;
1493 case 'i':
1494 switch(s[3]) {
1495 default:
1496 break;
1497 case 'm':
1498 if (strcmp("es", s + 4) == 0)
1499 return PIDX_PKEY_PARAM_RSA_PRIMES;
1500 break;
1501 case 'v':
1502 switch(s[4]) {
1503 default:
1504 break;
1505 case '_':
1506 if (strcmp("len", s + 5) == 0)
1507 return PIDX_PKEY_PARAM_DH_PRIV_LEN;
1508 break;
1509 case '\0':
1510 return PIDX_PKEY_PARAM_PRIV_KEY;
1511 }
1512 }
1513 break;
1514 case 'o':
1515 switch(s[3]) {
1516 default:
1517 break;
1518 case 'p':
1519 if (strcmp("erties", s + 4) == 0)
1520 return PIDX_STORE_PARAM_PROPERTIES;
1521 break;
1522 case 'v':
1523 if (strcmp("ider-name", s + 4) == 0)
1524 return PIDX_PROV_PARAM_CORE_PROV_NAME;
1525 }
1526 }
1527 break;
1528 case 'u':
1529 if (strcmp("b", s + 2) == 0)
1530 return PIDX_PKEY_PARAM_PUB_KEY;
1531 break;
1532 case '\0':
1533 return PIDX_PKEY_PARAM_FFC_P;
1534 }
1535 break;
1536 case 'q':
1537 switch(s[1]) {
1538 default:
1539 break;
1540 case '1':
1541 switch(s[2]) {
1542 default:
1543 break;
1544 case '\0':
1545 return PIDX_PKEY_PARAM_RSA_TEST_Q1;
1546 }
1547 break;
1548 case '2':
1549 switch(s[2]) {
1550 default:
1551 break;
1552 case '\0':
1553 return PIDX_PKEY_PARAM_RSA_TEST_Q2;
1554 }
1555 break;
1556 case 'b':
1557 if (strcmp("its", s + 2) == 0)
1558 return PIDX_PKEY_PARAM_FFC_QBITS;
1559 break;
1560 case '\0':
1561 return PIDX_PKEY_PARAM_FFC_Q;
1562 break;
1563 case 'x':
1564 switch(s[2]) {
1565 default:
1566 break;
1567 case '\0':
1568 return PIDX_PKEY_PARAM_EC_PUB_X;
1569 }
1570 break;
1571 case 'y':
1572 switch(s[2]) {
1573 default:
1574 break;
1575 case '\0':
1576 return PIDX_PKEY_PARAM_EC_PUB_Y;
1577 }
1578 }
1579 break;
1580 case 'r':
1581 switch(s[1]) {
1582 default:
1583 break;
1584 case 'a':
1585 switch(s[2]) {
1586 default:
1587 break;
1588 case 'n':
1589 switch(s[3]) {
1590 default:
1591 break;
1592 case 'd':
1593 switch(s[4]) {
1594 default:
1595 break;
1596 case 'k':
1597 if (strcmp("ey", s + 5) == 0)
1598 return PIDX_CIPHER_PARAM_RANDOM_KEY;
1599 break;
1600 case 'o':
1601 if (strcmp("m_data", s + 5) == 0)
1602 return PIDX_DRBG_PARAM_RANDOM_DATA;
1603 }
1604 }
1605 break;
1606 case 'w':
1607 if (strcmp("-bytes", s + 3) == 0)
1608 return PIDX_SKEY_PARAM_RAW_BYTES;
1609 }
1610 break;
1611 case 'e':
1612 switch(s[2]) {
1613 default:
1614 break;
1615 case 'a':
1616 switch(s[3]) {
1617 default:
1618 break;
1619 case 'd':
1620 switch(s[4]) {
1621 default:
1622 break;
1623 case '_':
1624 switch(s[5]) {
1625 default:
1626 break;
1627 case 'a':
1628 if (strcmp("head", s + 6) == 0)
1629 return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD;
1630 break;
1631 case 'b':
1632 if (strcmp("uffer_len", s + 6) == 0)
1633 return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN;
1634 }
1635 }
1636 }
1637 break;
1638 case 'f':
1639 if (strcmp("erence", s + 3) == 0)
1640 return PIDX_OBJECT_PARAM_REFERENCE;
1641 break;
1642 case 's':
1643 switch(s[3]) {
1644 default:
1645 break;
1646 case 'e':
1647 switch(s[4]) {
1648 default:
1649 break;
1650 case 'e':
1651 switch(s[5]) {
1652 default:
1653 break;
1654 case 'd':
1655 switch(s[6]) {
1656 default:
1657 break;
1658 case '_':
1659 switch(s[7]) {
1660 default:
1661 break;
1662 case 'c':
1663 if (strcmp("ounter", s + 8) == 0)
1664 return PIDX_DRBG_PARAM_RESEED_COUNTER;
1665 break;
1666 case 'r':
1667 if (strcmp("equests", s + 8) == 0)
1668 return PIDX_DRBG_PARAM_RESEED_REQUESTS;
1669 break;
1670 case 't':
1671 switch(s[8]) {
1672 default:
1673 break;
1674 case 'i':
1675 switch(s[9]) {
1676 default:
1677 break;
1678 case 'm':
1679 switch(s[10]) {
1680 default:
1681 break;
1682 case 'e':
1683 switch(s[11]) {
1684 default:
1685 break;
1686 case '_':
1687 if (strcmp("interval", s + 12) == 0)
1688 return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL;
1689 break;
1690 case '\0':
1691 return PIDX_DRBG_PARAM_RESEED_TIME;
1692 }
1693 }
1694 }
1695 }
1696 }
1697 }
1698 }
1699 }
1700 }
1701 }
1702 break;
1703 case 'o':
1704 if (strcmp("unds", s + 2) == 0)
1705 return PIDX_CIPHER_PARAM_ROUNDS;
1706 break;
1707 case 's':
1708 switch(s[2]) {
1709 default:
1710 break;
1711 case 'a':
1712 switch(s[3]) {
1713 default:
1714 break;
1715 case '-':
1716 switch(s[4]) {
1717 default:
1718 break;
1719 case 'c':
1720 switch(s[5]) {
1721 default:
1722 break;
1723 case 'o':
1724 switch(s[6]) {
1725 default:
1726 break;
1727 case 'e':
1728 switch(s[7]) {
1729 default:
1730 break;
1731 case 'f':
1732 switch(s[8]) {
1733 default:
1734 break;
1735 case 'f':
1736 switch(s[9]) {
1737 default:
1738 break;
1739 case 'i':
1740 switch(s[10]) {
1741 default:
1742 break;
1743 case 'c':
1744 switch(s[11]) {
1745 default:
1746 break;
1747 case 'i':
1748 switch(s[12]) {
1749 default:
1750 break;
1751 case 'e':
1752 switch(s[13]) {
1753 default:
1754 break;
1755 case 'n':
1756 switch(s[14]) {
1757 default:
1758 break;
1759 case 't':
1760 switch(s[15]) {
1761 default:
1762 break;
1763 case '1':
1764 switch(s[16]) {
1765 default:
1766 break;
1767 case '\0':
1768 return PIDX_PKEY_PARAM_RSA_COEFFICIENT1;
1769 }
1770 break;
1771 case '2':
1772 switch(s[16]) {
1773 default:
1774 break;
1775 case '\0':
1776 return PIDX_PKEY_PARAM_RSA_COEFFICIENT2;
1777 }
1778 break;
1779 case '3':
1780 switch(s[16]) {
1781 default:
1782 break;
1783 case '\0':
1784 return PIDX_PKEY_PARAM_RSA_COEFFICIENT3;
1785 }
1786 break;
1787 case '4':
1788 switch(s[16]) {
1789 default:
1790 break;
1791 case '\0':
1792 return PIDX_PKEY_PARAM_RSA_COEFFICIENT4;
1793 }
1794 break;
1795 case '5':
1796 switch(s[16]) {
1797 default:
1798 break;
1799 case '\0':
1800 return PIDX_PKEY_PARAM_RSA_COEFFICIENT5;
1801 }
1802 break;
1803 case '6':
1804 switch(s[16]) {
1805 default:
1806 break;
1807 case '\0':
1808 return PIDX_PKEY_PARAM_RSA_COEFFICIENT6;
1809 }
1810 break;
1811 case '7':
1812 switch(s[16]) {
1813 default:
1814 break;
1815 case '\0':
1816 return PIDX_PKEY_PARAM_RSA_COEFFICIENT7;
1817 }
1818 break;
1819 case '8':
1820 switch(s[16]) {
1821 default:
1822 break;
1823 case '\0':
1824 return PIDX_PKEY_PARAM_RSA_COEFFICIENT8;
1825 }
1826 break;
1827 case '9':
1828 switch(s[16]) {
1829 default:
1830 break;
1831 case '\0':
1832 return PIDX_PKEY_PARAM_RSA_COEFFICIENT9;
1833 }
1834 break;
1835 case '\0':
1836 return PIDX_PKEY_PARAM_RSA_COEFFICIENT;
1837 }
1838 }
1839 }
1840 }
1841 }
1842 }
1843 }
1844 }
1845 }
1846 }
1847 }
1848 break;
1849 case 'd':
1850 if (strcmp("erive-from-pq", s + 5) == 0)
1851 return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ;
1852 break;
1853 case 'e':
1854 switch(s[5]) {
1855 default:
1856 break;
1857 case 'x':
1858 switch(s[6]) {
1859 default:
1860 break;
1861 case 'p':
1862 switch(s[7]) {
1863 default:
1864 break;
1865 case 'o':
1866 switch(s[8]) {
1867 default:
1868 break;
1869 case 'n':
1870 switch(s[9]) {
1871 default:
1872 break;
1873 case 'e':
1874 switch(s[10]) {
1875 default:
1876 break;
1877 case 'n':
1878 switch(s[11]) {
1879 default:
1880 break;
1881 case 't':
1882 switch(s[12]) {
1883 default:
1884 break;
1885 case '1':
1886 switch(s[13]) {
1887 default:
1888 break;
1889 case '0':
1890 switch(s[14]) {
1891 default:
1892 break;
1893 case '\0':
1894 return PIDX_PKEY_PARAM_RSA_EXPONENT10;
1895 }
1896 break;
1897 case '\0':
1898 return PIDX_PKEY_PARAM_RSA_EXPONENT1;
1899 }
1900 break;
1901 case '2':
1902 switch(s[13]) {
1903 default:
1904 break;
1905 case '\0':
1906 return PIDX_PKEY_PARAM_RSA_EXPONENT2;
1907 }
1908 break;
1909 case '3':
1910 switch(s[13]) {
1911 default:
1912 break;
1913 case '\0':
1914 return PIDX_PKEY_PARAM_RSA_EXPONENT3;
1915 }
1916 break;
1917 case '4':
1918 switch(s[13]) {
1919 default:
1920 break;
1921 case '\0':
1922 return PIDX_PKEY_PARAM_RSA_EXPONENT4;
1923 }
1924 break;
1925 case '5':
1926 switch(s[13]) {
1927 default:
1928 break;
1929 case '\0':
1930 return PIDX_PKEY_PARAM_RSA_EXPONENT5;
1931 }
1932 break;
1933 case '6':
1934 switch(s[13]) {
1935 default:
1936 break;
1937 case '\0':
1938 return PIDX_PKEY_PARAM_RSA_EXPONENT6;
1939 }
1940 break;
1941 case '7':
1942 switch(s[13]) {
1943 default:
1944 break;
1945 case '\0':
1946 return PIDX_PKEY_PARAM_RSA_EXPONENT7;
1947 }
1948 break;
1949 case '8':
1950 switch(s[13]) {
1951 default:
1952 break;
1953 case '\0':
1954 return PIDX_PKEY_PARAM_RSA_EXPONENT8;
1955 }
1956 break;
1957 case '9':
1958 switch(s[13]) {
1959 default:
1960 break;
1961 case '\0':
1962 return PIDX_PKEY_PARAM_RSA_EXPONENT9;
1963 }
1964 break;
1965 case '\0':
1966 return PIDX_PKEY_PARAM_RSA_EXPONENT;
1967 }
1968 }
1969 }
1970 }
1971 }
1972 }
1973 }
1974 }
1975 break;
1976 case 'f':
1977 switch(s[5]) {
1978 default:
1979 break;
1980 case 'a':
1981 switch(s[6]) {
1982 default:
1983 break;
1984 case 'c':
1985 switch(s[7]) {
1986 default:
1987 break;
1988 case 't':
1989 switch(s[8]) {
1990 default:
1991 break;
1992 case 'o':
1993 switch(s[9]) {
1994 default:
1995 break;
1996 case 'r':
1997 switch(s[10]) {
1998 default:
1999 break;
2000 case '1':
2001 switch(s[11]) {
2002 default:
2003 break;
2004 case '0':
2005 switch(s[12]) {
2006 default:
2007 break;
2008 case '\0':
2009 return PIDX_PKEY_PARAM_RSA_FACTOR10;
2010 }
2011 break;
2012 case '\0':
2013 return PIDX_PKEY_PARAM_RSA_FACTOR1;
2014 }
2015 break;
2016 case '2':
2017 switch(s[11]) {
2018 default:
2019 break;
2020 case '\0':
2021 return PIDX_PKEY_PARAM_RSA_FACTOR2;
2022 }
2023 break;
2024 case '3':
2025 switch(s[11]) {
2026 default:
2027 break;
2028 case '\0':
2029 return PIDX_PKEY_PARAM_RSA_FACTOR3;
2030 }
2031 break;
2032 case '4':
2033 switch(s[11]) {
2034 default:
2035 break;
2036 case '\0':
2037 return PIDX_PKEY_PARAM_RSA_FACTOR4;
2038 }
2039 break;
2040 case '5':
2041 switch(s[11]) {
2042 default:
2043 break;
2044 case '\0':
2045 return PIDX_PKEY_PARAM_RSA_FACTOR5;
2046 }
2047 break;
2048 case '6':
2049 switch(s[11]) {
2050 default:
2051 break;
2052 case '\0':
2053 return PIDX_PKEY_PARAM_RSA_FACTOR6;
2054 }
2055 break;
2056 case '7':
2057 switch(s[11]) {
2058 default:
2059 break;
2060 case '\0':
2061 return PIDX_PKEY_PARAM_RSA_FACTOR7;
2062 }
2063 break;
2064 case '8':
2065 switch(s[11]) {
2066 default:
2067 break;
2068 case '\0':
2069 return PIDX_PKEY_PARAM_RSA_FACTOR8;
2070 }
2071 break;
2072 case '9':
2073 switch(s[11]) {
2074 default:
2075 break;
2076 case '\0':
2077 return PIDX_PKEY_PARAM_RSA_FACTOR9;
2078 }
2079 break;
2080 case '\0':
2081 return PIDX_PKEY_PARAM_RSA_FACTOR;
2082 }
2083 }
2084 }
2085 }
2086 }
2087 }
2088 break;
2089 case 'p':
2090 switch(s[5]) {
2091 default:
2092 break;
2093 case 'k':
2094 if (strcmp("cs15-pad-disabled", s + 6) == 0)
2095 return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED;
2096 break;
2097 case 's':
2098 if (strcmp("s-saltlen-check", s + 6) == 0)
2099 return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK;
2100 }
2101 break;
2102 case 's':
2103 if (strcmp("ign-x931-pad-disabled", s + 5) == 0)
2104 return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED;
2105 }
2106 }
2107 }
2108 break;
2109 case '\0':
2110 return PIDX_KDF_PARAM_SCRYPT_R;
2111 }
2112 break;
2113 case 's':
2114 switch(s[1]) {
2115 default:
2116 break;
2117 case 'a':
2118 switch(s[2]) {
2119 default:
2120 break;
2121 case 'f':
2122 if (strcmp("eprime-generator", s + 3) == 0)
2123 return PIDX_PKEY_PARAM_DH_GENERATOR;
2124 break;
2125 case 'l':
2126 switch(s[3]) {
2127 default:
2128 break;
2129 case 't':
2130 switch(s[4]) {
2131 default:
2132 break;
2133 case 'l':
2134 if (strcmp("en", s + 5) == 0)
2135 return PIDX_SIGNATURE_PARAM_PSS_SALTLEN;
2136 break;
2137 case '\0':
2138 return PIDX_MAC_PARAM_SALT;
2139 }
2140 }
2141 break;
2142 case 'v':
2143 if (strcmp("e-parameters", s + 3) == 0)
2144 return PIDX_ENCODER_PARAM_SAVE_PARAMETERS;
2145 }
2146 break;
2147 case 'e':
2148 switch(s[2]) {
2149 default:
2150 break;
2151 case 'c':
2152 switch(s[3]) {
2153 default:
2154 break;
2155 case 'r':
2156 if (strcmp("et", s + 4) == 0)
2157 return PIDX_KDF_PARAM_SECRET;
2158 break;
2159 case 'u':
2160 switch(s[4]) {
2161 default:
2162 break;
2163 case 'r':
2164 switch(s[5]) {
2165 default:
2166 break;
2167 case 'i':
2168 switch(s[6]) {
2169 default:
2170 break;
2171 case 't':
2172 switch(s[7]) {
2173 default:
2174 break;
2175 case 'y':
2176 switch(s[8]) {
2177 default:
2178 break;
2179 case '-':
2180 switch(s[9]) {
2181 default:
2182 break;
2183 case 'b':
2184 if (strcmp("its", s + 10) == 0)
2185 return PIDX_PKEY_PARAM_SECURITY_BITS;
2186 break;
2187 case 'c':
2188 if (strcmp("hecks", s + 10) == 0)
2189 return PIDX_PROV_PARAM_SECURITY_CHECKS;
2190 }
2191 }
2192 }
2193 }
2194 }
2195 }
2196 }
2197 break;
2198 case 'e':
2199 if (strcmp("d", s + 3) == 0)
2200 return PIDX_PKEY_PARAM_SLH_DSA_SEED;
2201 break;
2202 case 'r':
2203 if (strcmp("ial", s + 3) == 0)
2204 return PIDX_STORE_PARAM_SERIAL;
2205 break;
2206 case 's':
2207 if (strcmp("sion_id", s + 3) == 0)
2208 return PIDX_KDF_PARAM_SSHKDF_SESSION_ID;
2209 }
2210 break;
2211 case 'i':
2212 switch(s[2]) {
2213 default:
2214 break;
2215 case 'g':
2216 switch(s[3]) {
2217 default:
2218 break;
2219 case 'n':
2220 switch(s[4]) {
2221 default:
2222 break;
2223 case '-':
2224 switch(s[5]) {
2225 default:
2226 break;
2227 case 'c':
2228 if (strcmp("heck", s + 6) == 0)
2229 return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK;
2230 break;
2231 case 'x':
2232 if (strcmp("931-pad-check", s + 6) == 0)
2233 return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK;
2234 }
2235 break;
2236 case 'a':
2237 switch(s[5]) {
2238 default:
2239 break;
2240 case 't':
2241 switch(s[6]) {
2242 default:
2243 break;
2244 case 'u':
2245 switch(s[7]) {
2246 default:
2247 break;
2248 case 'r':
2249 switch(s[8]) {
2250 default:
2251 break;
2252 case 'e':
2253 switch(s[9]) {
2254 default:
2255 break;
2256 case '-':
2257 if (strcmp("digest-check", s + 10) == 0)
2258 return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK;
2259 break;
2260 case '\0':
2261 return PIDX_SIGNATURE_PARAM_SIGNATURE;
2262 }
2263 }
2264 }
2265 }
2266 }
2267 }
2268 }
2269 break;
2270 case 'z':
2271 if (strcmp("e", s + 3) == 0)
2272 return PIDX_MAC_PARAM_SIZE;
2273 }
2274 break;
2275 case 'p':
2276 if (strcmp("eed", s + 2) == 0)
2277 return PIDX_CIPHER_PARAM_SPEED;
2278 break;
2279 case 's':
2280 switch(s[2]) {
2281 default:
2282 break;
2283 case 'h':
2284 switch(s[3]) {
2285 default:
2286 break;
2287 case 'k':
2288 switch(s[4]) {
2289 default:
2290 break;
2291 case 'd':
2292 switch(s[5]) {
2293 default:
2294 break;
2295 case 'f':
2296 switch(s[6]) {
2297 default:
2298 break;
2299 case '-':
2300 switch(s[7]) {
2301 default:
2302 break;
2303 case 'd':
2304 if (strcmp("igest-check", s + 8) == 0)
2305 return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK;
2306 break;
2307 case 'k':
2308 if (strcmp("ey-check", s + 8) == 0)
2309 return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK;
2310 }
2311 }
2312 }
2313 }
2314 }
2315 break;
2316 case 'k':
2317 switch(s[3]) {
2318 default:
2319 break;
2320 case 'd':
2321 switch(s[4]) {
2322 default:
2323 break;
2324 case 'f':
2325 switch(s[5]) {
2326 default:
2327 break;
2328 case '-':
2329 switch(s[6]) {
2330 default:
2331 break;
2332 case 'd':
2333 if (strcmp("igest-check", s + 7) == 0)
2334 return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK;
2335 break;
2336 case 'k':
2337 if (strcmp("ey-check", s + 7) == 0)
2338 return PIDX_PROV_PARAM_SSKDF_KEY_CHECK;
2339 }
2340 }
2341 }
2342 }
2343 break;
2344 case 'l':
2345 if (strcmp("3-ms", s + 3) == 0)
2346 return PIDX_DIGEST_PARAM_SSL3_MS;
2347 }
2348 break;
2349 case 't':
2350 switch(s[2]) {
2351 default:
2352 break;
2353 case '-':
2354 switch(s[3]) {
2355 default:
2356 break;
2357 case 'd':
2358 if (strcmp("esc", s + 4) == 0)
2359 return PIDX_PROV_PARAM_SELF_TEST_DESC;
2360 break;
2361 case 'p':
2362 if (strcmp("hase", s + 4) == 0)
2363 return PIDX_PROV_PARAM_SELF_TEST_PHASE;
2364 break;
2365 case 't':
2366 if (strcmp("ype", s + 4) == 0)
2367 return PIDX_PROV_PARAM_SELF_TEST_TYPE;
2368 }
2369 break;
2370 case 'a':
2371 switch(s[3]) {
2372 default:
2373 break;
2374 case 't':
2375 switch(s[4]) {
2376 default:
2377 break;
2378 case 'e':
2379 switch(s[5]) {
2380 default:
2381 break;
2382 case '\0':
2383 return PIDX_RAND_PARAM_STATE;
2384 }
2385 break;
2386 case 'u':
2387 if (strcmp("s", s + 5) == 0)
2388 return PIDX_PROV_PARAM_STATUS;
2389 }
2390 }
2391 break;
2392 case 'r':
2393 switch(s[3]) {
2394 default:
2395 break;
2396 case 'e':
2397 switch(s[4]) {
2398 default:
2399 break;
2400 case 'a':
2401 if (strcmp("m_mac", s + 5) == 0)
2402 return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC;
2403 break;
2404 case 'n':
2405 if (strcmp("gth", s + 5) == 0)
2406 return PIDX_RAND_PARAM_STRENGTH;
2407 }
2408 }
2409 }
2410 break;
2411 case 'u':
2412 switch(s[2]) {
2413 default:
2414 break;
2415 case 'b':
2416 if (strcmp("ject", s + 3) == 0)
2417 return PIDX_STORE_PARAM_SUBJECT;
2418 break;
2419 case 'p':
2420 switch(s[3]) {
2421 default:
2422 break;
2423 case 'p':
2424 switch(s[4]) {
2425 default:
2426 break;
2427 case '-':
2428 switch(s[5]) {
2429 default:
2430 break;
2431 case 'p':
2432 switch(s[6]) {
2433 default:
2434 break;
2435 case 'r':
2436 if (strcmp("ivinfo", s + 7) == 0)
2437 return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO;
2438 break;
2439 case 'u':
2440 if (strcmp("binfo", s + 7) == 0)
2441 return PIDX_KDF_PARAM_X942_SUPP_PUBINFO;
2442 }
2443 }
2444 }
2445 }
2446 }
2447 }
2448 break;
2449 case 't':
2450 switch(s[1]) {
2451 default:
2452 break;
2453 case 'a':
2454 switch(s[2]) {
2455 default:
2456 break;
2457 case 'g':
2458 switch(s[3]) {
2459 default:
2460 break;
2461 case 'l':
2462 if (strcmp("en", s + 4) == 0)
2463 return PIDX_CIPHER_PARAM_AEAD_TAGLEN;
2464 break;
2465 case '\0':
2466 return PIDX_CIPHER_PARAM_AEAD_TAG;
2467 }
2468 }
2469 break;
2470 case 'd':
2471 if (strcmp("es-encrypt-disabled", s + 2) == 0)
2472 return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED;
2473 break;
2474 case 'e':
2475 switch(s[2]) {
2476 default:
2477 break;
2478 case 's':
2479 switch(s[3]) {
2480 default:
2481 break;
2482 case 't':
2483 switch(s[4]) {
2484 default:
2485 break;
2486 case '-':
2487 if (strcmp("entropy", s + 5) == 0)
2488 return PIDX_SIGNATURE_PARAM_TEST_ENTROPY;
2489 break;
2490 case '_':
2491 switch(s[5]) {
2492 default:
2493 break;
2494 case 'e':
2495 if (strcmp("ntropy", s + 6) == 0)
2496 return PIDX_RAND_PARAM_TEST_ENTROPY;
2497 break;
2498 case 'n':
2499 if (strcmp("once", s + 6) == 0)
2500 return PIDX_RAND_PARAM_TEST_NONCE;
2501 }
2502 }
2503 }
2504 }
2505 break;
2506 case 'h':
2507 if (strcmp("reads", s + 2) == 0)
2508 return PIDX_KDF_PARAM_THREADS;
2509 break;
2510 case 'l':
2511 switch(s[2]) {
2512 default:
2513 break;
2514 case 's':
2515 switch(s[3]) {
2516 default:
2517 break;
2518 case '-':
2519 switch(s[4]) {
2520 default:
2521 break;
2522 case 'c':
2523 if (strcmp("lient-version", s + 5) == 0)
2524 return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION;
2525 break;
2526 case 'd':
2527 if (strcmp("ata-size", s + 5) == 0)
2528 return PIDX_MAC_PARAM_TLS_DATA_SIZE;
2529 break;
2530 case 'g':
2531 switch(s[5]) {
2532 default:
2533 break;
2534 case 'r':
2535 switch(s[6]) {
2536 default:
2537 break;
2538 case 'o':
2539 switch(s[7]) {
2540 default:
2541 break;
2542 case 'u':
2543 switch(s[8]) {
2544 default:
2545 break;
2546 case 'p':
2547 switch(s[9]) {
2548 default:
2549 break;
2550 case '-':
2551 switch(s[10]) {
2552 default:
2553 break;
2554 case 'a':
2555 if (strcmp("lg", s + 11) == 0)
2556 return PIDX_CAPABILITY_TLS_GROUP_ALG;
2557 break;
2558 case 'i':
2559 switch(s[11]) {
2560 default:
2561 break;
2562 case 'd':
2563 switch(s[12]) {
2564 default:
2565 break;
2566 case '\0':
2567 return PIDX_CAPABILITY_TLS_GROUP_ID;
2568 }
2569 break;
2570 case 's':
2571 if (strcmp("-kem", s + 12) == 0)
2572 return PIDX_CAPABILITY_TLS_GROUP_IS_KEM;
2573 }
2574 break;
2575 case 'n':
2576 switch(s[11]) {
2577 default:
2578 break;
2579 case 'a':
2580 switch(s[12]) {
2581 default:
2582 break;
2583 case 'm':
2584 switch(s[13]) {
2585 default:
2586 break;
2587 case 'e':
2588 switch(s[14]) {
2589 default:
2590 break;
2591 case '-':
2592 if (strcmp("internal", s + 15) == 0)
2593 return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL;
2594 break;
2595 case '\0':
2596 return PIDX_CAPABILITY_TLS_GROUP_NAME;
2597 }
2598 }
2599 }
2600 }
2601 break;
2602 case 's':
2603 if (strcmp("ec-bits", s + 11) == 0)
2604 return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS;
2605 }
2606 }
2607 }
2608 }
2609 }
2610 }
2611 break;
2612 case 'm':
2613 switch(s[5]) {
2614 default:
2615 break;
2616 case 'a':
2617 switch(s[6]) {
2618 default:
2619 break;
2620 case 'c':
2621 switch(s[7]) {
2622 default:
2623 break;
2624 case '-':
2625 if (strcmp("size", s + 8) == 0)
2626 return PIDX_CIPHER_PARAM_TLS_MAC_SIZE;
2627 break;
2628 case '\0':
2629 return PIDX_CIPHER_PARAM_TLS_MAC;
2630 }
2631 break;
2632 case 'x':
2633 switch(s[7]) {
2634 default:
2635 break;
2636 case '-':
2637 switch(s[8]) {
2638 default:
2639 break;
2640 case 'd':
2641 if (strcmp("tls", s + 9) == 0)
2642 return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS;
2643 break;
2644 case 't':
2645 if (strcmp("ls", s + 9) == 0)
2646 return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS;
2647 }
2648 }
2649 }
2650 break;
2651 case 'i':
2652 switch(s[6]) {
2653 default:
2654 break;
2655 case 'n':
2656 switch(s[7]) {
2657 default:
2658 break;
2659 case '-':
2660 switch(s[8]) {
2661 default:
2662 break;
2663 case 'd':
2664 if (strcmp("tls", s + 9) == 0)
2665 return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS;
2666 break;
2667 case 't':
2668 if (strcmp("ls", s + 9) == 0)
2669 return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS;
2670 }
2671 }
2672 }
2673 break;
2674 case 'u':
2675 if (strcmp("lti", s + 6) == 0)
2676 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK;
2677 }
2678 break;
2679 case 'n':
2680 if (strcmp("egotiated-version", s + 5) == 0)
2681 return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION;
2682 break;
2683 case 's':
2684 switch(s[5]) {
2685 default:
2686 break;
2687 case 'i':
2688 switch(s[6]) {
2689 default:
2690 break;
2691 case 'g':
2692 switch(s[7]) {
2693 default:
2694 break;
2695 case 'a':
2696 switch(s[8]) {
2697 default:
2698 break;
2699 case 'l':
2700 switch(s[9]) {
2701 default:
2702 break;
2703 case 'g':
2704 switch(s[10]) {
2705 default:
2706 break;
2707 case '-':
2708 switch(s[11]) {
2709 default:
2710 break;
2711 case 'c':
2712 if (strcmp("ode-point", s + 12) == 0)
2713 return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT;
2714 break;
2715 case 'h':
2716 switch(s[12]) {
2717 default:
2718 break;
2719 case 'a':
2720 switch(s[13]) {
2721 default:
2722 break;
2723 case 's':
2724 switch(s[14]) {
2725 default:
2726 break;
2727 case 'h':
2728 switch(s[15]) {
2729 default:
2730 break;
2731 case '-':
2732 switch(s[16]) {
2733 default:
2734 break;
2735 case 'n':
2736 if (strcmp("ame", s + 17) == 0)
2737 return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME;
2738 break;
2739 case 'o':
2740 if (strcmp("id", s + 17) == 0)
2741 return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID;
2742 }
2743 }
2744 }
2745 }
2746 }
2747 break;
2748 case 'i':
2749 if (strcmp("ana-name", s + 12) == 0)
2750 return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME;
2751 break;
2752 case 'k':
2753 switch(s[12]) {
2754 default:
2755 break;
2756 case 'e':
2757 switch(s[13]) {
2758 default:
2759 break;
2760 case 'y':
2761 switch(s[14]) {
2762 default:
2763 break;
2764 case 't':
2765 switch(s[15]) {
2766 default:
2767 break;
2768 case 'y':
2769 switch(s[16]) {
2770 default:
2771 break;
2772 case 'p':
2773 switch(s[17]) {
2774 default:
2775 break;
2776 case 'e':
2777 switch(s[18]) {
2778 default:
2779 break;
2780 case '-':
2781 if (strcmp("oid", s + 19) == 0)
2782 return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID;
2783 break;
2784 case '\0':
2785 return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE;
2786 }
2787 }
2788 }
2789 }
2790 }
2791 }
2792 }
2793 break;
2794 case 'n':
2795 if (strcmp("ame", s + 12) == 0)
2796 return PIDX_CAPABILITY_TLS_SIGALG_NAME;
2797 break;
2798 case 'o':
2799 if (strcmp("id", s + 12) == 0)
2800 return PIDX_CAPABILITY_TLS_SIGALG_OID;
2801 break;
2802 case 's':
2803 switch(s[12]) {
2804 default:
2805 break;
2806 case 'e':
2807 if (strcmp("c-bits", s + 13) == 0)
2808 return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS;
2809 break;
2810 case 'i':
2811 switch(s[13]) {
2812 default:
2813 break;
2814 case 'g':
2815 switch(s[14]) {
2816 default:
2817 break;
2818 case '-':
2819 switch(s[15]) {
2820 default:
2821 break;
2822 case 'n':
2823 if (strcmp("ame", s + 16) == 0)
2824 return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME;
2825 break;
2826 case 'o':
2827 if (strcmp("id", s + 16) == 0)
2828 return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID;
2829 }
2830 }
2831 }
2832 }
2833 }
2834 }
2835 }
2836 }
2837 }
2838 }
2839 }
2840 break;
2841 case 'v':
2842 if (strcmp("ersion", s + 5) == 0)
2843 return PIDX_CIPHER_PARAM_TLS_VERSION;
2844 }
2845 break;
2846 case '1':
2847 switch(s[4]) {
2848 default:
2849 break;
2850 case '-':
2851 switch(s[5]) {
2852 default:
2853 break;
2854 case 'p':
2855 switch(s[6]) {
2856 default:
2857 break;
2858 case 'r':
2859 switch(s[7]) {
2860 default:
2861 break;
2862 case 'f':
2863 switch(s[8]) {
2864 default:
2865 break;
2866 case '-':
2867 switch(s[9]) {
2868 default:
2869 break;
2870 case 'd':
2871 if (strcmp("igest-check", s + 10) == 0)
2872 return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK;
2873 break;
2874 case 'e':
2875 if (strcmp("ms-check", s + 10) == 0)
2876 return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK;
2877 break;
2878 case 'k':
2879 if (strcmp("ey-check", s + 10) == 0)
2880 return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK;
2881 }
2882 }
2883 }
2884 }
2885 }
2886 break;
2887 case '3':
2888 switch(s[5]) {
2889 default:
2890 break;
2891 case '-':
2892 switch(s[6]) {
2893 default:
2894 break;
2895 case 'k':
2896 switch(s[7]) {
2897 default:
2898 break;
2899 case 'd':
2900 switch(s[8]) {
2901 default:
2902 break;
2903 case 'f':
2904 switch(s[9]) {
2905 default:
2906 break;
2907 case '-':
2908 switch(s[10]) {
2909 default:
2910 break;
2911 case 'd':
2912 if (strcmp("igest-check", s + 11) == 0)
2913 return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK;
2914 break;
2915 case 'k':
2916 if (strcmp("ey-check", s + 11) == 0)
2917 return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK;
2918 }
2919 }
2920 }
2921 }
2922 }
2923 }
2924 break;
2925 case 'm':
2926 switch(s[5]) {
2927 default:
2928 break;
2929 case 'u':
2930 switch(s[6]) {
2931 default:
2932 break;
2933 case 'l':
2934 switch(s[7]) {
2935 default:
2936 break;
2937 case 't':
2938 switch(s[8]) {
2939 default:
2940 break;
2941 case 'i':
2942 switch(s[9]) {
2943 default:
2944 break;
2945 case '_':
2946 switch(s[10]) {
2947 default:
2948 break;
2949 case 'a':
2950 switch(s[11]) {
2951 default:
2952 break;
2953 case 'a':
2954 switch(s[12]) {
2955 default:
2956 break;
2957 case 'd':
2958 switch(s[13]) {
2959 default:
2960 break;
2961 case 'p':
2962 if (strcmp("acklen", s + 14) == 0)
2963 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN;
2964 break;
2965 case '\0':
2966 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD;
2967 }
2968 }
2969 }
2970 break;
2971 case 'e':
2972 switch(s[11]) {
2973 default:
2974 break;
2975 case 'n':
2976 switch(s[12]) {
2977 default:
2978 break;
2979 case 'c':
2980 switch(s[13]) {
2981 default:
2982 break;
2983 case 'i':
2984 if (strcmp("n", s + 14) == 0)
2985 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN;
2986 break;
2987 case 'l':
2988 if (strcmp("en", s + 14) == 0)
2989 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN;
2990 break;
2991 case '\0':
2992 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC;
2993 }
2994 }
2995 }
2996 break;
2997 case 'i':
2998 if (strcmp("nterleave", s + 11) == 0)
2999 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE;
3000 break;
3001 case 'm':
3002 switch(s[11]) {
3003 default:
3004 break;
3005 case 'a':
3006 switch(s[12]) {
3007 default:
3008 break;
3009 case 'x':
3010 switch(s[13]) {
3011 default:
3012 break;
3013 case 'b':
3014 if (strcmp("ufsz", s + 14) == 0)
3015 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE;
3016 break;
3017 case 's':
3018 if (strcmp("ndfrag", s + 14) == 0)
3019 return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT;
3020 }
3021 }
3022 }
3023 }
3024 }
3025 }
3026 }
3027 }
3028 }
3029 }
3030 break;
3031 case 'a':
3032 switch(s[4]) {
3033 default:
3034 break;
3035 case 'a':
3036 switch(s[5]) {
3037 default:
3038 break;
3039 case 'd':
3040 switch(s[6]) {
3041 default:
3042 break;
3043 case 'p':
3044 if (strcmp("ad", s + 7) == 0)
3045 return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD;
3046 break;
3047 case '\0':
3048 return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD;
3049 }
3050 }
3051 }
3052 break;
3053 case 'i':
3054 switch(s[4]) {
3055 default:
3056 break;
3057 case 'v':
3058 switch(s[5]) {
3059 default:
3060 break;
3061 case 'f':
3062 if (strcmp("ixed", s + 6) == 0)
3063 return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED;
3064 break;
3065 case 'g':
3066 if (strcmp("en", s + 6) == 0)
3067 return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN;
3068 break;
3069 case 'i':
3070 if (strcmp("nv", s + 6) == 0)
3071 return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV;
3072 }
3073 }
3074 break;
3075 case 't':
3076 if (strcmp("ree", s + 4) == 0)
3077 return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE;
3078 }
3079 }
3080 break;
3081 case 'p':
3082 switch(s[2]) {
3083 default:
3084 break;
3085 case '\0':
3086 return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS;
3087 }
3088 break;
3089 case 'y':
3090 if (strcmp("pe", s + 2) == 0)
3091 return PIDX_PKEY_PARAM_FFC_TYPE;
3092 }
3093 break;
3094 case 'u':
3095 switch(s[1]) {
3096 default:
3097 break;
3098 case 'k':
3099 if (strcmp("m", s + 2) == 0)
3100 return PIDX_KDF_PARAM_UKM;
3101 break;
3102 case 'p':
3103 if (strcmp("dated-iv", s + 2) == 0)
3104 return PIDX_CIPHER_PARAM_UPDATED_IV;
3105 break;
3106 case 's':
3107 switch(s[2]) {
3108 default:
3109 break;
3110 case 'e':
3111 switch(s[3]) {
3112 default:
3113 break;
3114 case '-':
3115 switch(s[4]) {
3116 default:
3117 break;
3118 case 'b':
3119 if (strcmp("its", s + 5) == 0)
3120 return PIDX_CIPHER_PARAM_USE_BITS;
3121 break;
3122 case 'c':
3123 if (strcmp("ofactor-flag", s + 5) == 0)
3124 return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG;
3125 break;
3126 case 'k':
3127 if (strcmp("eybits", s + 5) == 0)
3128 return PIDX_KDF_PARAM_X942_USE_KEYBITS;
3129 break;
3130 case 'l':
3131 switch(s[5]) {
3132 default:
3133 break;
3134 case '\0':
3135 return PIDX_KDF_PARAM_KBKDF_USE_L;
3136 }
3137 break;
3138 case 's':
3139 if (strcmp("eparator", s + 5) == 0)
3140 return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR;
3141 }
3142 break;
3143 case '_':
3144 switch(s[4]) {
3145 default:
3146 break;
3147 case 'd':
3148 if (strcmp("erivation_function", s + 5) == 0)
3149 return PIDX_DRBG_PARAM_USE_DF;
3150 break;
3151 case 'e':
3152 if (strcmp("tm", s + 5) == 0)
3153 return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM;
3154 }
3155 }
3156 }
3157 }
3158 break;
3159 case 'v':
3160 switch(s[1]) {
3161 default:
3162 break;
3163 case 'a':
3164 switch(s[2]) {
3165 default:
3166 break;
3167 case 'l':
3168 switch(s[3]) {
3169 default:
3170 break;
3171 case 'i':
3172 switch(s[4]) {
3173 default:
3174 break;
3175 case 'd':
3176 switch(s[5]) {
3177 default:
3178 break;
3179 case 'a':
3180 switch(s[6]) {
3181 default:
3182 break;
3183 case 't':
3184 switch(s[7]) {
3185 default:
3186 break;
3187 case 'e':
3188 switch(s[8]) {
3189 default:
3190 break;
3191 case '-':
3192 switch(s[9]) {
3193 default:
3194 break;
3195 case 'g':
3196 switch(s[10]) {
3197 default:
3198 break;
3199 case '\0':
3200 return PIDX_PKEY_PARAM_FFC_VALIDATE_G;
3201 }
3202 break;
3203 case 'l':
3204 if (strcmp("egacy", s + 10) == 0)
3205 return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY;
3206 break;
3207 case 'p':
3208 if (strcmp("q", s + 10) == 0)
3209 return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ;
3210 }
3211 }
3212 }
3213 }
3214 }
3215 }
3216 }
3217 }
3218 break;
3219 case 'e':
3220 switch(s[2]) {
3221 default:
3222 break;
3223 case 'r':
3224 switch(s[3]) {
3225 default:
3226 break;
3227 case 'i':
3228 if (strcmp("fy-message", s + 4) == 0)
3229 return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE;
3230 break;
3231 case 's':
3232 if (strcmp("ion", s + 4) == 0)
3233 return PIDX_PROV_PARAM_VERSION;
3234 }
3235 }
3236 }
3237 break;
3238 case 'x':
3239 switch(s[1]) {
3240 default:
3241 break;
3242 case '9':
3243 switch(s[2]) {
3244 default:
3245 break;
3246 case '4':
3247 if (strcmp("2kdf-key-check", s + 3) == 0)
3248 return PIDX_PROV_PARAM_X942KDF_KEY_CHECK;
3249 break;
3250 case '6':
3251 switch(s[3]) {
3252 default:
3253 break;
3254 case '3':
3255 switch(s[4]) {
3256 default:
3257 break;
3258 case 'k':
3259 switch(s[5]) {
3260 default:
3261 break;
3262 case 'd':
3263 switch(s[6]) {
3264 default:
3265 break;
3266 case 'f':
3267 switch(s[7]) {
3268 default:
3269 break;
3270 case '-':
3271 switch(s[8]) {
3272 default:
3273 break;
3274 case 'd':
3275 if (strcmp("igest-check", s + 9) == 0)
3276 return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK;
3277 break;
3278 case 'k':
3279 if (strcmp("ey-check", s + 9) == 0)
3280 return PIDX_PROV_PARAM_X963KDF_KEY_CHECK;
3281 }
3282 }
3283 }
3284 }
3285 }
3286 }
3287 }
3288 break;
3289 case 'c':
3290 if (strcmp("ghash", s + 2) == 0)
3291 return PIDX_KDF_PARAM_SSHKDF_XCGHASH;
3292 break;
3293 case 'o':
3294 switch(s[2]) {
3295 default:
3296 break;
3297 case 'f':
3298 switch(s[3]) {
3299 default:
3300 break;
3301 case 'l':
3302 if (strcmp("en", s + 4) == 0)
3303 return PIDX_DIGEST_PARAM_XOFLEN;
3304 break;
3305 case '\0':
3306 return PIDX_MAC_PARAM_XOF;
3307 }
3308 }
3309 break;
3310 case 'p':
3311 switch(s[2]) {
3312 default:
3313 break;
3314 case '1':
3315 switch(s[3]) {
3316 default:
3317 break;
3318 case '\0':
3319 return PIDX_PKEY_PARAM_RSA_TEST_XP1;
3320 }
3321 break;
3322 case '2':
3323 switch(s[3]) {
3324 default:
3325 break;
3326 case '\0':
3327 return PIDX_PKEY_PARAM_RSA_TEST_XP2;
3328 }
3329 break;
3330 case '\0':
3331 return PIDX_PKEY_PARAM_RSA_TEST_XP;
3332 }
3333 break;
3334 case 'q':
3335 switch(s[2]) {
3336 default:
3337 break;
3338 case '1':
3339 switch(s[3]) {
3340 default:
3341 break;
3342 case '\0':
3343 return PIDX_PKEY_PARAM_RSA_TEST_XQ1;
3344 }
3345 break;
3346 case '2':
3347 switch(s[3]) {
3348 default:
3349 break;
3350 case '\0':
3351 return PIDX_PKEY_PARAM_RSA_TEST_XQ2;
3352 }
3353 break;
3354 case '\0':
3355 return PIDX_PKEY_PARAM_RSA_TEST_XQ;
3356 }
3357 break;
3358 case 't':
3359 if (strcmp("s_standard", s + 2) == 0)
3360 return PIDX_CIPHER_PARAM_XTS_STANDARD;
3361 }
3362 }
3363 return -1;
3364 }
3365
3366 /* End of TRIE */
3367