[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 03/22] libtasn1: disable code not needed in grub
From: |
Gary Lin |
Subject: |
Re: [PATCH v8 03/22] libtasn1: disable code not needed in grub |
Date: |
Wed, 17 Jan 2024 16:15:47 +0800 |
On Wed, Jan 17, 2024 at 05:28:20AM +0300, Vladimir 'phcoder' Serbinenko wrote:
> I would suggest something a bit more descriptive than if 0. What about
> #ifdef GRUB_SKIPPED_IMPORTING ?
>
That makes sense and improves the readability. Will update it for v9.
Thanks,
Gary Lin
> Le mar. 16 janv. 2024, 12:24, Gary Lin via Grub-devel <grub-devel@gnu.org>
> a écrit :
>
> > From: Daniel Axtens <dja@axtens.net>
> >
> > We don't expect to be able to write ASN.1, only read it,
> > so we can disable some code.
> >
> > Do that with #if 0/#endif, rather than deletion. This means
> > that the difference between upstream and grub is smaller,
> > which should make updating libtasn1 easier in the future.
> >
> > With these exclusions we also avoid the need for minmax.h,
> > which is convenient because it means we don't have to
> > import it from gnulib.
> >
> > Signed-off-by: Daniel Axtens <dja@axtens.net>
> > Signed-off-by: Gary Lin <glin@suse.com>
> > ---
> > grub-core/lib/libtasn1/lib/coding.c | 12 ++++++++++--
> > grub-core/lib/libtasn1/lib/decoding.c | 2 ++
> > grub-core/lib/libtasn1/lib/element.c | 4 ++--
> > grub-core/lib/libtasn1/lib/errors.c | 3 +++
> > grub-core/lib/libtasn1/lib/structure.c | 10 ++++++----
> > include/grub/libtasn1.h | 15 +++++++++++++++
> > 6 files changed, 38 insertions(+), 8 deletions(-)
> >
> > diff --git a/grub-core/lib/libtasn1/lib/coding.c
> > b/grub-core/lib/libtasn1/lib/coding.c
> > index ea5bc370e..841fe47a9 100644
> > --- a/grub-core/lib/libtasn1/lib/coding.c
> > +++ b/grub-core/lib/libtasn1/lib/coding.c
> > @@ -30,11 +30,11 @@
> > #include "parser_aux.h"
> > #include <gstr.h>
> > #include "element.h"
> > -#include "minmax.h"
> > #include <structure.h>
> >
> > #define MAX_TAG_LEN 16
> >
> > +#if 0
> > /******************************************************/
> > /* Function : _asn1_error_description_value_not_found */
> > /* Description: creates the ErrorDescription string */
> > @@ -58,6 +58,7 @@ _asn1_error_description_value_not_found (asn1_node node,
> > Estrcat (ErrorDescription, "' not found");
> >
> > }
> > +#endif
> >
> > /**
> > * asn1_length_der:
> > @@ -244,6 +245,7 @@ asn1_encode_simple_der (unsigned int etype, const
> > unsigned char *str,
> > return ASN1_SUCCESS;
> > }
> >
> > +#if 0
> > /******************************************************/
> > /* Function : _asn1_time_der */
> > /* Description: creates the DER coding for a TIME */
> > @@ -278,7 +280,7 @@ _asn1_time_der (unsigned char *str, int str_len,
> > unsigned char *der,
> >
> > return ASN1_SUCCESS;
> > }
> > -
> > +#endif
> >
> > /*
> > void
> > @@ -519,6 +521,7 @@ asn1_bit_der (const unsigned char *str, int bit_len,
> > }
> >
> >
> > +#if 0
> > /******************************************************/
> > /* Function : _asn1_complete_explicit_tag */
> > /* Description: add the length coding to the EXPLICIT */
> > @@ -595,6 +598,7 @@ _asn1_complete_explicit_tag (asn1_node node, unsigned
> > char *der,
> >
> > return ASN1_SUCCESS;
> > }
> > +#endif
> >
> > const tag_and_class_st _asn1_tags[] = {
> > [ASN1_ETYPE_GENERALSTRING] =
> > @@ -647,6 +651,8 @@ const tag_and_class_st _asn1_tags[] = {
> >
> > unsigned int _asn1_tags_size = sizeof (_asn1_tags) / sizeof
> > (_asn1_tags[0]);
> >
> > +
> > +#if 0
> > /******************************************************/
> > /* Function : _asn1_insert_tag_der */
> > /* Description: creates the DER coding of tags of one */
> > @@ -1423,3 +1429,5 @@ error:
> > asn1_delete_structure (&node);
> > return err;
> > }
> > +
> > +#endif
> > \ No newline at end of file
> > diff --git a/grub-core/lib/libtasn1/lib/decoding.c
> > b/grub-core/lib/libtasn1/lib/decoding.c
> > index b9245c486..92fc87c23 100644
> > --- a/grub-core/lib/libtasn1/lib/decoding.c
> > +++ b/grub-core/lib/libtasn1/lib/decoding.c
> > @@ -1620,6 +1620,7 @@ asn1_der_decoding (asn1_node * element, const void
> > *ider, int ider_len,
> > return asn1_der_decoding2 (element, ider, &ider_len, 0,
> > errorDescription);
> > }
> >
> > +#if 0
> > /**
> > * asn1_der_decoding_element:
> > * @structure: pointer to an ASN1 structure
> > @@ -1650,6 +1651,7 @@ asn1_der_decoding_element (asn1_node * structure,
> > const char *elementName,
> > {
> > return asn1_der_decoding (structure, ider, len, errorDescription);
> > }
> > +#endif
> >
> > /**
> > * asn1_der_decoding_startEnd:
> > diff --git a/grub-core/lib/libtasn1/lib/element.c
> > b/grub-core/lib/libtasn1/lib/element.c
> > index d4c558e10..5c7941e53 100644
> > --- a/grub-core/lib/libtasn1/lib/element.c
> > +++ b/grub-core/lib/libtasn1/lib/element.c
> > @@ -191,7 +191,7 @@ _asn1_append_sequence_set (asn1_node node, struct
> > node_tail_cache_st *pcache)
> > return ASN1_SUCCESS;
> > }
> >
> > -
> > +#if 0
> > /**
> > * asn1_write_value:
> > * @node_root: pointer to a structure
> > @@ -646,7 +646,7 @@ asn1_write_value (asn1_node node_root, const char
> > *name,
> >
> > return ASN1_SUCCESS;
> > }
> > -
> > +#endif
> >
> > #define PUT_VALUE( ptr, ptr_size, data, data_size) \
> > *len = data_size; \
> > diff --git a/grub-core/lib/libtasn1/lib/errors.c
> > b/grub-core/lib/libtasn1/lib/errors.c
> > index aef5dfe6f..0175ddedb 100644
> > --- a/grub-core/lib/libtasn1/lib/errors.c
> > +++ b/grub-core/lib/libtasn1/lib/errors.c
> > @@ -57,6 +57,8 @@ static const libtasn1_error_entry error_algorithms[] = {
> > {0, 0}
> > };
> >
> > +
> > +#if 0
> > /**
> > * asn1_perror:
> > * @error: is an error returned by a libtasn1 function.
> > @@ -73,6 +75,7 @@ asn1_perror (int error)
> > const char *str = asn1_strerror (error);
> > fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)");
> > }
> > +#endif
> >
> > /**
> > * asn1_strerror:
> > diff --git a/grub-core/lib/libtasn1/lib/structure.c
> > b/grub-core/lib/libtasn1/lib/structure.c
> > index 512dd601f..3e1e35ba5 100644
> > --- a/grub-core/lib/libtasn1/lib/structure.c
> > +++ b/grub-core/lib/libtasn1/lib/structure.c
> > @@ -76,7 +76,7 @@ _asn1_find_left (asn1_node_const node)
> > return node->left;
> > }
> >
> > -
> > +#if 0
> > int
> > _asn1_create_static_structure (asn1_node_const pointer,
> > char *output_file_name, char *vector_name)
> > @@ -155,7 +155,7 @@ _asn1_create_static_structure (asn1_node_const pointer,
> >
> > return ASN1_SUCCESS;
> > }
> > -
> > +#endif
> >
> > /**
> > * asn1_array2tree:
> > @@ -721,7 +721,7 @@ asn1_create_element (asn1_node_const definitions,
> > const char *source_name,
> > return res;
> > }
> >
> > -
> > +#if 0
> > /**
> > * asn1_print_structure:
> > * @out: pointer to the output file (e.g. stdout).
> > @@ -1062,7 +1062,7 @@ asn1_print_structure (FILE * out, asn1_node_const
> > structure, const char *name,
> > }
> > }
> > }
> > -
> > +#endif
> >
> >
> > /**
> > @@ -1158,6 +1158,7 @@ asn1_find_structure_from_oid (asn1_node_const
> > definitions,
> > return NULL; /* ASN1_ELEMENT_NOT_FOUND; */
> > }
> >
> > +#if 0
> > /**
> > * asn1_copy_node:
> > * @dst: Destination asn1 node.
> > @@ -1207,6 +1208,7 @@ asn1_copy_node (asn1_node dst, const char *dst_name,
> >
> > return result;
> > }
> > +#endif
> >
> > /**
> > * asn1_dup_node:
> > diff --git a/include/grub/libtasn1.h b/include/grub/libtasn1.h
> > index 51cc7879f..507e0679e 100644
> > --- a/include/grub/libtasn1.h
> > +++ b/include/grub/libtasn1.h
> > @@ -318,6 +318,8 @@ extern "C"
> > /* Functions definitions */
> > /***********************************/
> >
> > +/* These functions are not used in grub and should not be referenced. */
> > +# if 0
> > extern ASN1_API int
> > asn1_parser2tree (const char *file,
> > asn1_node * definitions, char *error_desc);
> > @@ -326,14 +328,17 @@ extern "C"
> > asn1_parser2array (const char *inputFileName,
> > const char *outputFileName,
> > const char *vectorName, char *error_desc);
> > +# endif
> >
> > extern ASN1_API int
> > asn1_array2tree (const asn1_static_node * array,
> > asn1_node * definitions, char *errorDescription);
> >
> > +# if 0
> > extern ASN1_API void
> > asn1_print_structure (FILE * out, asn1_node_const structure,
> > const char *name, int mode);
> > +# endif
> >
> > extern ASN1_API int
> > asn1_create_element (asn1_node_const definitions,
> > @@ -347,9 +352,11 @@ extern "C"
> > extern ASN1_API int
> > asn1_delete_element (asn1_node structure, const char *element_name);
> >
> > +# if 0
> > extern ASN1_API int
> > asn1_write_value (asn1_node node_root, const char *name,
> > const void *ivalue, int len);
> > +# endif
> >
> > extern ASN1_API int
> > asn1_read_value (asn1_node_const root, const char *name,
> > @@ -366,9 +373,11 @@ extern "C"
> > asn1_number_of_elements (asn1_node_const element, const char *name,
> > int *num);
> >
> > +# if 0
> > extern ASN1_API int
> > asn1_der_coding (asn1_node_const element, const char *name,
> > void *ider, int *len, char *ErrorDescription);
> > +# endif
> >
> > extern ASN1_API int
> > asn1_der_decoding2 (asn1_node * element, const void *ider,
> > @@ -379,6 +388,7 @@ extern "C"
> > asn1_der_decoding (asn1_node * element, const void *ider,
> > int ider_len, char *errorDescription);
> >
> > +# if 0
> > /* Do not use. Use asn1_der_decoding() instead. */
> > extern ASN1_API int
> > asn1_der_decoding_element (asn1_node * structure,
> > @@ -386,6 +396,7 @@ extern "C"
> > const void *ider, int len,
> > char *errorDescription)
> > _ASN1_GCC_ATTR_DEPRECATED;
> > +# endif
> >
> > extern ASN1_API int
> > asn1_der_decoding_startEnd (asn1_node element,
> > @@ -411,12 +422,16 @@ extern "C"
> > const char
> > *oidValue);
> >
> > +# if 0
> > __LIBTASN1_PURE__
> > extern ASN1_API const char *asn1_check_version (const char
> > *req_version);
> > +# endif
> >
> > __LIBTASN1_PURE__ extern ASN1_API const char *asn1_strerror (int error);
> >
> > +# if 0
> > extern ASN1_API void asn1_perror (int error);
> > +# endif
> >
> > # define ASN1_MAX_TAG_SIZE 4
> > # define ASN1_MAX_LENGTH_SIZE 9
> > --
> > 2.35.3
> >
> >
> > _______________________________________________
> > Grub-devel mailing list
> > Grub-devel@gnu.org
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> >
- [PATCH v8 00/22] Automatic Disk Unlock with TPM2, Gary Lin, 2024/01/16
- [PATCH v8 07/22] libtasn1: Add the documentation, Gary Lin, 2024/01/16
- [PATCH v8 06/22] test_asn1: test module for libtasn1, Gary Lin, 2024/01/16
- [PATCH v8 02/22] libtasn1: import libtasn1-4.19.0, Gary Lin, 2024/01/16
- [PATCH v8 04/22] libtasn1: changes for grub compatibility, Gary Lin, 2024/01/16