diff options
Diffstat (limited to 'src/daemon/https/minitasn1/element.c')
-rw-r--r-- | src/daemon/https/minitasn1/element.c | 123 |
1 files changed, 64 insertions, 59 deletions
diff --git a/src/daemon/https/minitasn1/element.c b/src/daemon/https/minitasn1/element.c index 4e29772e..7cda2174 100644 --- a/src/daemon/https/minitasn1/element.c +++ b/src/daemon/https/minitasn1/element.c | |||
@@ -76,7 +76,7 @@ MHD__asn1_hierarchical_name (node_asn * node, char *name, int name_size) | |||
76 | /******************************************************************/ | 76 | /******************************************************************/ |
77 | MHD__asn1_retCode | 77 | MHD__asn1_retCode |
78 | MHD__asn1_convert_integer (const char *value, unsigned char *value_out, | 78 | MHD__asn1_convert_integer (const char *value, unsigned char *value_out, |
79 | int value_out_size, int *len) | 79 | int value_out_size, int *len) |
80 | { | 80 | { |
81 | char negative; | 81 | char negative; |
82 | unsigned char val[SIZEOF_UNSIGNED_LONG_INT]; | 82 | unsigned char val[SIZEOF_UNSIGNED_LONG_INT]; |
@@ -117,7 +117,8 @@ MHD__asn1_convert_integer (const char *value, unsigned char *value_out, | |||
117 | 117 | ||
118 | 118 | ||
119 | #ifdef LIBTASN1_DEBUG_INTEGER | 119 | #ifdef LIBTASN1_DEBUG_INTEGER |
120 | MHD__libtasn1_log ("MHD__asn1_convert_integer: valueIn=%s, lenOut=%d", value, *len); | 120 | MHD__libtasn1_log ("MHD__asn1_convert_integer: valueIn=%s, lenOut=%d", |
121 | value, *len); | ||
121 | for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++) | 122 | for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++) |
122 | MHD__libtasn1_log (", vOut[%d]=%d", k, value_out[k]); | 123 | MHD__libtasn1_log (", vOut[%d]=%d", k, value_out[k]); |
123 | MHD__libtasn1_log ("\n"); | 124 | MHD__libtasn1_log ("\n"); |
@@ -276,7 +277,7 @@ MHD__asn1_append_sequence_set (node_asn * node) | |||
276 | **/ | 277 | **/ |
277 | MHD__asn1_retCode | 278 | MHD__asn1_retCode |
278 | MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | 279 | MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, |
279 | const void *ivalue, int len) | 280 | const void *ivalue, int len) |
280 | { | 281 | { |
281 | node_asn *node, *p, *p2; | 282 | node_asn *node, *p, *p2; |
282 | unsigned char *temp, *value_temp = NULL, *default_temp = NULL; | 283 | unsigned char *temp, *value_temp = NULL, *default_temp = NULL; |
@@ -355,7 +356,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
355 | return ASN1_MEM_ALLOC_ERROR; | 356 | return ASN1_MEM_ALLOC_ERROR; |
356 | 357 | ||
357 | MHD__asn1_convert_integer (value, value_temp, | 358 | MHD__asn1_convert_integer (value, value_temp, |
358 | SIZEOF_UNSIGNED_LONG_INT, &len); | 359 | SIZEOF_UNSIGNED_LONG_INT, &len); |
359 | } | 360 | } |
360 | else | 361 | else |
361 | { /* is an identifier like v1 */ | 362 | { /* is an identifier like v1 */ |
@@ -374,10 +375,10 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
374 | if (value_temp == NULL) | 375 | if (value_temp == NULL) |
375 | return ASN1_MEM_ALLOC_ERROR; | 376 | return ASN1_MEM_ALLOC_ERROR; |
376 | 377 | ||
377 | MHD__asn1_convert_integer ((const char*) p->value, | 378 | MHD__asn1_convert_integer ((const char *) p->value, |
378 | value_temp, | 379 | value_temp, |
379 | SIZEOF_UNSIGNED_LONG_INT, | 380 | SIZEOF_UNSIGNED_LONG_INT, |
380 | &len); | 381 | &len); |
381 | break; | 382 | break; |
382 | } | 383 | } |
383 | } | 384 | } |
@@ -420,10 +421,10 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
420 | MHD__asn1_length_der (len - k, NULL, &len2); | 421 | MHD__asn1_length_der (len - k, NULL, &len2); |
421 | temp = (unsigned char *) MHD__asn1_alloca (len - k + len2); | 422 | temp = (unsigned char *) MHD__asn1_alloca (len - k + len2); |
422 | if (temp == NULL) | 423 | if (temp == NULL) |
423 | { | 424 | { |
424 | MHD__asn1_afree (value_temp); | 425 | MHD__asn1_afree (value_temp); |
425 | return ASN1_MEM_ALLOC_ERROR; | 426 | return ASN1_MEM_ALLOC_ERROR; |
426 | } | 427 | } |
427 | 428 | ||
428 | MHD__asn1_octet_der (value_temp + k, len - k, temp, &len2); | 429 | MHD__asn1_octet_der (value_temp + k, len - k, temp, &len2); |
429 | MHD__asn1_set_value (node, temp, len2); | 430 | MHD__asn1_set_value (node, temp, len2); |
@@ -441,51 +442,53 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
441 | default_temp = | 442 | default_temp = |
442 | (unsigned char *) MHD__asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); | 443 | (unsigned char *) MHD__asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); |
443 | if (default_temp == NULL) | 444 | if (default_temp == NULL) |
444 | { | 445 | { |
445 | MHD__asn1_afree (value_temp); | 446 | MHD__asn1_afree (value_temp); |
446 | return ASN1_MEM_ALLOC_ERROR; | 447 | return ASN1_MEM_ALLOC_ERROR; |
447 | } | 448 | } |
448 | 449 | ||
449 | MHD__asn1_convert_integer ((const char*) p->value, default_temp, | 450 | MHD__asn1_convert_integer ((const char *) p->value, |
450 | SIZEOF_UNSIGNED_LONG_INT, &len2); | 451 | default_temp, |
452 | SIZEOF_UNSIGNED_LONG_INT, &len2); | ||
451 | } | 453 | } |
452 | else | 454 | else |
453 | { /* is an identifier like v1 */ | 455 | { /* is an identifier like v1 */ |
454 | if (!(node->type & CONST_LIST)) | 456 | if (!(node->type & CONST_LIST)) |
455 | { | 457 | { |
456 | MHD__asn1_afree (value_temp); | 458 | MHD__asn1_afree (value_temp); |
457 | return ASN1_VALUE_NOT_VALID; | 459 | return ASN1_VALUE_NOT_VALID; |
458 | } | 460 | } |
459 | p2 = node->down; | 461 | p2 = node->down; |
460 | while (p2) | 462 | while (p2) |
461 | { | 463 | { |
462 | if (type_field (p2->type) == TYPE_CONSTANT) | 464 | if (type_field (p2->type) == TYPE_CONSTANT) |
463 | { | 465 | { |
464 | if ((p2->name) && (!strcmp (p2->name,(const char*) p->value))) | 466 | if ((p2->name) |
467 | && (!strcmp (p2->name, (const char *) p->value))) | ||
465 | { | 468 | { |
466 | default_temp = | 469 | default_temp = |
467 | (unsigned char *) | 470 | (unsigned char *) |
468 | MHD__asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); | 471 | MHD__asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); |
469 | if (default_temp == NULL) | 472 | if (default_temp == NULL) |
470 | { | 473 | { |
471 | MHD__asn1_afree (value_temp); | 474 | MHD__asn1_afree (value_temp); |
472 | return ASN1_MEM_ALLOC_ERROR; | 475 | return ASN1_MEM_ALLOC_ERROR; |
473 | } | 476 | } |
474 | 477 | ||
475 | MHD__asn1_convert_integer ((const char*) p2->value, | 478 | MHD__asn1_convert_integer ((const char *) p2->value, |
476 | default_temp, | 479 | default_temp, |
477 | SIZEOF_UNSIGNED_LONG_INT, | 480 | SIZEOF_UNSIGNED_LONG_INT, |
478 | &len2); | 481 | &len2); |
479 | break; | 482 | break; |
480 | } | 483 | } |
481 | } | 484 | } |
482 | p2 = p2->right; | 485 | p2 = p2->right; |
483 | } | 486 | } |
484 | if (p2 == NULL) | 487 | if (p2 == NULL) |
485 | { | 488 | { |
486 | MHD__asn1_afree (value_temp); | 489 | MHD__asn1_afree (value_temp); |
487 | return ASN1_VALUE_NOT_VALID; | 490 | return ASN1_VALUE_NOT_VALID; |
488 | } | 491 | } |
489 | } | 492 | } |
490 | 493 | ||
491 | 494 | ||
@@ -512,7 +515,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
512 | p = node->down; | 515 | p = node->down; |
513 | while (type_field (p->type) != TYPE_DEFAULT) | 516 | while (type_field (p->type) != TYPE_DEFAULT) |
514 | p = p->right; | 517 | p = p->right; |
515 | if (!strcmp (value,(const char*) p->value)) | 518 | if (!strcmp (value, (const char *) p->value)) |
516 | { | 519 | { |
517 | MHD__asn1_set_value (node, NULL, 0); | 520 | MHD__asn1_set_value (node, NULL, 0); |
518 | break; | 521 | break; |
@@ -574,7 +577,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
574 | if (temp == NULL) | 577 | if (temp == NULL) |
575 | return ASN1_MEM_ALLOC_ERROR; | 578 | return ASN1_MEM_ALLOC_ERROR; |
576 | 579 | ||
577 | MHD__asn1_octet_der ((const unsigned char*) value, len, temp, &len2); | 580 | MHD__asn1_octet_der ((const unsigned char *) value, len, temp, &len2); |
578 | MHD__asn1_set_value (node, temp, len2); | 581 | MHD__asn1_set_value (node, temp, len2); |
579 | MHD__asn1_afree (temp); | 582 | MHD__asn1_afree (temp); |
580 | break; | 583 | break; |
@@ -586,7 +589,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
586 | if (temp == NULL) | 589 | if (temp == NULL) |
587 | return ASN1_MEM_ALLOC_ERROR; | 590 | return ASN1_MEM_ALLOC_ERROR; |
588 | 591 | ||
589 | MHD__asn1_octet_der ((const unsigned char*)value, len, temp, &len2); | 592 | MHD__asn1_octet_der ((const unsigned char *) value, len, temp, &len2); |
590 | MHD__asn1_set_value (node, temp, len2); | 593 | MHD__asn1_set_value (node, temp, len2); |
591 | MHD__asn1_afree (temp); | 594 | MHD__asn1_afree (temp); |
592 | break; | 595 | break; |
@@ -598,7 +601,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
598 | if (temp == NULL) | 601 | if (temp == NULL) |
599 | return ASN1_MEM_ALLOC_ERROR; | 602 | return ASN1_MEM_ALLOC_ERROR; |
600 | 603 | ||
601 | MHD__asn1_bit_der ((const unsigned char*)value, len, temp, &len2); | 604 | MHD__asn1_bit_der ((const unsigned char *) value, len, temp, &len2); |
602 | MHD__asn1_set_value (node, temp, len2); | 605 | MHD__asn1_set_value (node, temp, len2); |
603 | MHD__asn1_afree (temp); | 606 | MHD__asn1_afree (temp); |
604 | break; | 607 | break; |
@@ -632,7 +635,7 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
632 | if (temp == NULL) | 635 | if (temp == NULL) |
633 | return ASN1_MEM_ALLOC_ERROR; | 636 | return ASN1_MEM_ALLOC_ERROR; |
634 | 637 | ||
635 | MHD__asn1_octet_der ((const unsigned char*)value, len, temp, &len2); | 638 | MHD__asn1_octet_der ((const unsigned char *) value, len, temp, &len2); |
636 | MHD__asn1_set_value (node, temp, len2); | 639 | MHD__asn1_set_value (node, temp, len2); |
637 | MHD__asn1_afree (temp); | 640 | MHD__asn1_afree (temp); |
638 | break; | 641 | break; |
@@ -744,7 +747,8 @@ MHD__asn1_write_value (ASN1_TYPE node_root, const char *name, | |||
744 | * | 747 | * |
745 | **/ | 748 | **/ |
746 | MHD__asn1_retCode | 749 | MHD__asn1_retCode |
747 | MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | 750 | MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, |
751 | int *len) | ||
748 | { | 752 | { |
749 | node_asn *node, *p, *p2; | 753 | node_asn *node, *p, *p2; |
750 | int len2, len3; | 754 | int len2, len3; |
@@ -801,7 +805,8 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
801 | || (p->value[0] == '+')) | 805 | || (p->value[0] == '+')) |
802 | { | 806 | { |
803 | if (MHD__asn1_convert_integer | 807 | if (MHD__asn1_convert_integer |
804 | ((const char*) p->value, (unsigned char*) value, value_size, len) != ASN1_SUCCESS) | 808 | ((const char *) p->value, (unsigned char *) value, |
809 | value_size, len) != ASN1_SUCCESS) | ||
805 | return ASN1_MEM_ERROR; | 810 | return ASN1_MEM_ERROR; |
806 | } | 811 | } |
807 | else | 812 | else |
@@ -811,10 +816,12 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
811 | { | 816 | { |
812 | if (type_field (p2->type) == TYPE_CONSTANT) | 817 | if (type_field (p2->type) == TYPE_CONSTANT) |
813 | { | 818 | { |
814 | if ((p2->name) && (!strcmp (p2->name, (const char*) p->value))) | 819 | if ((p2->name) |
820 | && (!strcmp (p2->name, (const char *) p->value))) | ||
815 | { | 821 | { |
816 | if (MHD__asn1_convert_integer | 822 | if (MHD__asn1_convert_integer |
817 | ((const char*) p2->value, (unsigned char*) value, value_size, | 823 | ((const char *) p2->value, |
824 | (unsigned char *) value, value_size, | ||
818 | len) != ASN1_SUCCESS) | 825 | len) != ASN1_SUCCESS) |
819 | return ASN1_MEM_ERROR; | 826 | return ASN1_MEM_ERROR; |
820 | break; | 827 | break; |
@@ -828,8 +835,8 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
828 | { | 835 | { |
829 | len2 = -1; | 836 | len2 = -1; |
830 | if (MHD__asn1_get_octet_der | 837 | if (MHD__asn1_get_octet_der |
831 | (node->value, node->value_len, &len2, (unsigned char*) value, value_size, | 838 | (node->value, node->value_len, &len2, (unsigned char *) value, |
832 | len) != ASN1_SUCCESS) | 839 | value_size, len) != ASN1_SUCCESS) |
833 | return ASN1_MEM_ERROR; | 840 | return ASN1_MEM_ERROR; |
834 | } | 841 | } |
835 | break; | 842 | break; |
@@ -842,7 +849,7 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
842 | { | 849 | { |
843 | if (type_field (p->type) == TYPE_CONSTANT) | 850 | if (type_field (p->type) == TYPE_CONSTANT) |
844 | { | 851 | { |
845 | ADD_STR_VALUE (value, value_size, (const char*) p->value); | 852 | ADD_STR_VALUE (value, value_size, (const char *) p->value); |
846 | if (p->right) | 853 | if (p->right) |
847 | { | 854 | { |
848 | ADD_STR_VALUE (value, value_size, "."); | 855 | ADD_STR_VALUE (value, value_size, "."); |
@@ -857,35 +864,35 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
857 | p = node->down; | 864 | p = node->down; |
858 | while (type_field (p->type) != TYPE_DEFAULT) | 865 | while (type_field (p->type) != TYPE_DEFAULT) |
859 | p = p->right; | 866 | p = p->right; |
860 | PUT_STR_VALUE (value, value_size, (const char*) p->value); | 867 | PUT_STR_VALUE (value, value_size, (const char *) p->value); |
861 | } | 868 | } |
862 | else | 869 | else |
863 | { | 870 | { |
864 | PUT_STR_VALUE (value, value_size, (const char*) node->value); | 871 | PUT_STR_VALUE (value, value_size, (const char *) node->value); |
865 | } | 872 | } |
866 | break; | 873 | break; |
867 | case TYPE_TIME: | 874 | case TYPE_TIME: |
868 | PUT_STR_VALUE (value, value_size, (const char*) node->value); | 875 | PUT_STR_VALUE (value, value_size, (const char *) node->value); |
869 | break; | 876 | break; |
870 | case TYPE_OCTET_STRING: | 877 | case TYPE_OCTET_STRING: |
871 | len2 = -1; | 878 | len2 = -1; |
872 | if (MHD__asn1_get_octet_der | 879 | if (MHD__asn1_get_octet_der |
873 | (node->value, node->value_len, &len2, (unsigned char*) value, value_size, | 880 | (node->value, node->value_len, &len2, (unsigned char *) value, |
874 | len) != ASN1_SUCCESS) | 881 | value_size, len) != ASN1_SUCCESS) |
875 | return ASN1_MEM_ERROR; | 882 | return ASN1_MEM_ERROR; |
876 | break; | 883 | break; |
877 | case TYPE_GENERALSTRING: | 884 | case TYPE_GENERALSTRING: |
878 | len2 = -1; | 885 | len2 = -1; |
879 | if (MHD__asn1_get_octet_der | 886 | if (MHD__asn1_get_octet_der |
880 | (node->value, node->value_len, &len2, (unsigned char*) value, value_size, | 887 | (node->value, node->value_len, &len2, (unsigned char *) value, |
881 | len) != ASN1_SUCCESS) | 888 | value_size, len) != ASN1_SUCCESS) |
882 | return ASN1_MEM_ERROR; | 889 | return ASN1_MEM_ERROR; |
883 | break; | 890 | break; |
884 | case TYPE_BIT_STRING: | 891 | case TYPE_BIT_STRING: |
885 | len2 = -1; | 892 | len2 = -1; |
886 | if (MHD__asn1_get_bit_der | 893 | if (MHD__asn1_get_bit_der |
887 | (node->value, node->value_len, &len2, (unsigned char*) value, value_size, | 894 | (node->value, node->value_len, &len2, (unsigned char *) value, |
888 | len) != ASN1_SUCCESS) | 895 | value_size, len) != ASN1_SUCCESS) |
889 | return ASN1_MEM_ERROR; | 896 | return ASN1_MEM_ERROR; |
890 | break; | 897 | break; |
891 | case TYPE_CHOICE: | 898 | case TYPE_CHOICE: |
@@ -904,5 +911,3 @@ MHD__asn1_read_value (ASN1_TYPE root, const char *name, void *ivalue, int *len) | |||
904 | } | 911 | } |
905 | return ASN1_SUCCESS; | 912 | return ASN1_SUCCESS; |
906 | } | 913 | } |
907 | |||
908 | |||