rxkad: Improve ticket5 import from Heimdal 16/13816/3
authorAndrew Deason <adeason@sinenomine.net>
Mon, 26 Aug 2019 21:54:55 +0000 (16:54 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Thu, 29 Aug 2019 06:20:54 +0000 (02:20 -0400)
The current method of importing our ticket5 code from Heimdal has a
few issues:

- The der-protos.h file we generate contains numerous function
  prototype declarations that looks like this:

    ret-type func(parm-list, type */* comment */);

  which cause numerous warnings on WINNT, because the '*/*' sequence
  looks like the end of a nonexistent comment. This was previously
  fixed manually in commit 8b5d3a73 (rxkad: remove warnings from
  der-protos.h), but each time we regenerated our ticket5 code, the
  same thing would happen.

- We manually insert an include for "asn1_err.h" in our v5der.c, and
  the v5gen.c we pull in has an include for <asn1_err.h> inside it.
  During a WINNT build, these can pull in different asn1_err.h files
  (one from us, and one from the "Heimdal compatibility layer SDK" or
  anything else in our include paths). Since the asn1_err.h in our
  tree doesn't have an include guard, the code for both gets included,
  which can cause various problems.

- Our current asn1_err.h file that we include is ultimately generated
  by the awk-based compile_et from e2fsprogs, not the C-based
  compile_et from Heimdal. This likely happened by accident because
  the Heimdal build system uses the system compile_et by default. This
  flavor of compile_et generates arguably inferior comerr-based header
  files (they lack include guards, and they use #define constants
  instead of enums).

Fix these issues with some edits to our README.v5 script:

- Apply a simple sed filter when we pull in der-protos.h to change
  '*/*' into '* /*', to remove the relevant warnings.

- Instead of inserting an include for asn1_err.h into v5der.c in our
  import script, just put it in ticket5.c, making it easier to see and
  edit. Change this to <asn1_err.h> so it uses the same asn1_err.h as
  in v5gen.c.

- Add a note to run the Heimdal build with COMPILE_ET=no, so the
  Heimdal build system uses the in-tree compile_et, instead of
  whatever is on the relevant system.

With these changes, redo the Heimdal import from the same version of
the Heimdal codebase.

Change-Id: I01e06f2799f1c828b8224c3425079b313ffb5b6b
Reviewed-on: https://gerrit.openafs.org/13816
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/rxkad/README.v5
src/rxkad/asn1_err.h
src/rxkad/der-protos.h
src/rxkad/ticket5.c
src/rxkad/v5der.c

index f6f77aa..7691f8d 100644 (file)
 #
 #  All files are modified to build within OpenAFS environment without
 #  any external dependencies. Below is the shell script that is used to
-#  import the code into the four files.
+#  import the code into the four files. Before running this, you must first run
+#  a build from the heimdal tree like so:
+#
+# $ sh autogen.sh && COMPILE_ET=no ./configure && make
 #
 #  All internal symbols are rewritten to _rxkad_v5_.
 #
@@ -36,7 +39,6 @@ otree=/sources/afs/openafs-rxkad5
 export htree hotree otree
 
 (cd $htree/lib/asn1 ; \
- echo '#include "asn1_err.h"'; \
  echo '#include <errno.h>'; \
  echo '#include <limits.h>'; \
  cat  timegm.c \
@@ -57,8 +59,9 @@ grep -v 'struct units'  $hotree/lib/asn1/krb5_asn1.h \
  | sed s/uint32_t/afs_uint32/ \
    > $otree/src/rxkad/v5gen.h
 
-cp  $hotree/lib/asn1/der-protos.h \
-    $otree/src/rxkad/der-protos.h
+cat $hotree/lib/asn1/der-protos.h \
+ | sed 's:[*]/[*]:* /*:g' \
+   > $otree/src/rxkad/der-protos.h
 
 < $hotree/lib/asn1/asn1_err.h \
  sed 's!#include <et/com_err[.]h>!struct et_list;!' \
index 8e3be52..63cfbfa 100644 (file)
@@ -1,37 +1,40 @@
-/*
- * asn1_err.h:
- * This file is automatically generated; please do not edit it.
- */
+/* Generated from asn1_err.et */
+/* $Id$ */
+
+#ifndef __asn1_err_h__
+#define __asn1_err_h__
 
 struct et_list;
 
-#define ASN1_BAD_TIMEFORMAT                      (1859794432L)
-#define ASN1_MISSING_FIELD                       (1859794433L)
-#define ASN1_MISPLACED_FIELD                     (1859794434L)
-#define ASN1_TYPE_MISMATCH                       (1859794435L)
-#define ASN1_OVERFLOW                            (1859794436L)
-#define ASN1_OVERRUN                             (1859794437L)
-#define ASN1_BAD_ID                              (1859794438L)
-#define ASN1_BAD_LENGTH                          (1859794439L)
-#define ASN1_BAD_FORMAT                          (1859794440L)
-#define ASN1_PARSE_ERROR                         (1859794441L)
-#define ASN1_EXTRA_DATA                          (1859794442L)
-#define ASN1_BAD_CHARACTER                       (1859794443L)
-#define ASN1_MIN_CONSTRAINT                      (1859794444L)
-#define ASN1_MAX_CONSTRAINT                      (1859794445L)
-#define ASN1_EXACT_CONSTRAINT                    (1859794446L)
-#define ASN1_INDEF_OVERRUN                       (1859794447L)
-#define ASN1_INDEF_UNDERRUN                      (1859794448L)
-#define ASN1_GOT_BER                             (1859794449L)
-#define ASN1_INDEF_EXTRA_DATA                    (1859794450L)
-extern const struct error_table et_asn1_error_table;
-extern void initialize_asn1_error_table(void);
-
-/* For compatibility with Heimdal */
-extern void initialize_asn1_error_table_r(struct et_list **list);
-
-#define ERROR_TABLE_BASE_asn1 (1859794432L)
-
-/* for compatibility with older versions... */
+void initialize_asn1_error_table_r(struct et_list **);
+
+void initialize_asn1_error_table(void);
 #define init_asn1_err_tbl initialize_asn1_error_table
-#define asn1_err_base ERROR_TABLE_BASE_asn1
+
+typedef enum asn1_error_number{
+       ASN1_BAD_TIMEFORMAT = 1859794432,
+       ASN1_MISSING_FIELD = 1859794433,
+       ASN1_MISPLACED_FIELD = 1859794434,
+       ASN1_TYPE_MISMATCH = 1859794435,
+       ASN1_OVERFLOW = 1859794436,
+       ASN1_OVERRUN = 1859794437,
+       ASN1_BAD_ID = 1859794438,
+       ASN1_BAD_LENGTH = 1859794439,
+       ASN1_BAD_FORMAT = 1859794440,
+       ASN1_PARSE_ERROR = 1859794441,
+       ASN1_EXTRA_DATA = 1859794442,
+       ASN1_BAD_CHARACTER = 1859794443,
+       ASN1_MIN_CONSTRAINT = 1859794444,
+       ASN1_MAX_CONSTRAINT = 1859794445,
+       ASN1_EXACT_CONSTRAINT = 1859794446,
+       ASN1_INDEF_OVERRUN = 1859794447,
+       ASN1_INDEF_UNDERRUN = 1859794448,
+       ASN1_GOT_BER = 1859794449,
+       ASN1_INDEF_EXTRA_DATA = 1859794450
+} asn1_error_number;
+
+#define ERROR_TABLE_BASE_asn1 1859794432
+
+#define COM_ERR_BINDDOMAIN_asn1 "heim_com_err1859794432"
+
+#endif /* __asn1_err_h__ */
index 9f70941..1a5d3fa 100644 (file)
@@ -13,7 +13,7 @@ int
 asn1_fuzzer_done (void);
 
 int
-asn1_fuzzer_method (const char */*mode*/);
+asn1_fuzzer_method (const char * /*mode*/);
 
 void
 asn1_fuzzer_next (void);
@@ -23,666 +23,666 @@ asn1_fuzzer_reset (void);
 
 int
 copy_heim_any (
-       const heim_any */*from*/,
-       heim_any */*to*/);
+       const heim_any * /*from*/,
+       heim_any * /*to*/);
 
 int
 copy_heim_any_set (
-       const heim_any_set */*from*/,
-       heim_any_set */*to*/);
+       const heim_any_set * /*from*/,
+       heim_any_set * /*to*/);
 
 int
 decode_heim_any (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_any */*data*/,
-       size_t */*size*/);
+       heim_any * /*data*/,
+       size_t * /*size*/);
 
 int
 decode_heim_any_set (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_any_set */*data*/,
-       size_t */*size*/);
+       heim_any_set * /*data*/,
+       size_t * /*size*/);
 
 int
 der_copy_bit_string (
-       const heim_bit_string */*from*/,
-       heim_bit_string */*to*/);
+       const heim_bit_string * /*from*/,
+       heim_bit_string * /*to*/);
 
 int
 der_copy_bmp_string (
-       const heim_bmp_string */*from*/,
-       heim_bmp_string */*to*/);
+       const heim_bmp_string * /*from*/,
+       heim_bmp_string * /*to*/);
 
 int
 der_copy_general_string (
-       const heim_general_string */*from*/,
-       heim_general_string */*to*/);
+       const heim_general_string * /*from*/,
+       heim_general_string * /*to*/);
 
 int
 der_copy_generalized_time (
-       const time_t */*from*/,
-       time_t */*to*/);
+       const time_t * /*from*/,
+       time_t * /*to*/);
 
 int
 der_copy_heim_integer (
-       const heim_integer */*from*/,
-       heim_integer */*to*/);
+       const heim_integer * /*from*/,
+       heim_integer * /*to*/);
 
 int
 der_copy_ia5_string (
-       const heim_ia5_string */*from*/,
-       heim_ia5_string */*to*/);
+       const heim_ia5_string * /*from*/,
+       heim_ia5_string * /*to*/);
 
 int
 der_copy_integer (
-       const int */*from*/,
-       int */*to*/);
+       const int * /*from*/,
+       int * /*to*/);
 
 int
 der_copy_integer64 (
-       const int64_t */*from*/,
-       int64_t */*to*/);
+       const int64_t * /*from*/,
+       int64_t * /*to*/);
 
 int
 der_copy_octet_string (
-       const heim_octet_string */*from*/,
-       heim_octet_string */*to*/);
+       const heim_octet_string * /*from*/,
+       heim_octet_string * /*to*/);
 
 int
 der_copy_oid (
-       const heim_oid */*from*/,
-       heim_oid */*to*/);
+       const heim_oid * /*from*/,
+       heim_oid * /*to*/);
 
 int
 der_copy_printable_string (
-       const heim_printable_string */*from*/,
-       heim_printable_string */*to*/);
+       const heim_printable_string * /*from*/,
+       heim_printable_string * /*to*/);
 
 int
 der_copy_universal_string (
-       const heim_universal_string */*from*/,
-       heim_universal_string */*to*/);
+       const heim_universal_string * /*from*/,
+       heim_universal_string * /*to*/);
 
 int
 der_copy_unsigned (
-       const unsigned */*from*/,
-       unsigned */*to*/);
+       const unsigned * /*from*/,
+       unsigned * /*to*/);
 
 int
 der_copy_unsigned64 (
-       const uint64_t */*from*/,
-       uint64_t */*to*/);
+       const uint64_t * /*from*/,
+       uint64_t * /*to*/);
 
 int
 der_copy_utctime (
-       const time_t */*from*/,
-       time_t */*to*/);
+       const time_t * /*from*/,
+       time_t * /*to*/);
 
 int
 der_copy_utf8string (
-       const heim_utf8_string */*from*/,
-       heim_utf8_string */*to*/);
+       const heim_utf8_string * /*from*/,
+       heim_utf8_string * /*to*/);
 
 int
 der_copy_visible_string (
-       const heim_visible_string */*from*/,
-       heim_visible_string */*to*/);
+       const heim_visible_string * /*from*/,
+       heim_visible_string * /*to*/);
 
 void
-der_free_bit_string (heim_bit_string */*k*/);
+der_free_bit_string (heim_bit_string * /*k*/);
 
 void
-der_free_bmp_string (heim_bmp_string */*k*/);
+der_free_bmp_string (heim_bmp_string * /*k*/);
 
 void
-der_free_general_string (heim_general_string */*str*/);
+der_free_general_string (heim_general_string * /*str*/);
 
 void
-der_free_generalized_time (time_t */*t*/);
+der_free_generalized_time (time_t * /*t*/);
 
 void
-der_free_heim_integer (heim_integer */*k*/);
+der_free_heim_integer (heim_integer * /*k*/);
 
 void
-der_free_ia5_string (heim_ia5_string */*str*/);
+der_free_ia5_string (heim_ia5_string * /*str*/);
 
 void
-der_free_integer (int */*i*/);
+der_free_integer (int * /*i*/);
 
 void
-der_free_integer64 (int64_t */*i*/);
+der_free_integer64 (int64_t * /*i*/);
 
 void
-der_free_octet_string (heim_octet_string */*k*/);
+der_free_octet_string (heim_octet_string * /*k*/);
 
 void
-der_free_oid (heim_oid */*k*/);
+der_free_oid (heim_oid * /*k*/);
 
 void
-der_free_printable_string (heim_printable_string */*str*/);
+der_free_printable_string (heim_printable_string * /*str*/);
 
 void
-der_free_universal_string (heim_universal_string */*k*/);
+der_free_universal_string (heim_universal_string * /*k*/);
 
 void
-der_free_unsigned (unsigned */*u*/);
+der_free_unsigned (unsigned * /*u*/);
 
 void
-der_free_unsigned64 (uint64_t */*u*/);
+der_free_unsigned64 (uint64_t * /*u*/);
 
 void
-der_free_utctime (time_t */*t*/);
+der_free_utctime (time_t * /*t*/);
 
 void
-der_free_utf8string (heim_utf8_string */*str*/);
+der_free_utf8string (heim_utf8_string * /*str*/);
 
 void
-der_free_visible_string (heim_visible_string */*str*/);
+der_free_visible_string (heim_visible_string * /*str*/);
 
 int
 der_get_bit_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_bit_string */*data*/,
-       size_t */*size*/);
+       heim_bit_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_bmp_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_bmp_string */*data*/,
-       size_t */*size*/);
+       heim_bmp_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_boolean (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       int */*data*/,
-       size_t */*size*/);
+       int * /*data*/,
+       size_t * /*size*/);
 
 const char *
 der_get_class_name (unsigned /*num*/);
 
 int
-der_get_class_num (const char */*name*/);
+der_get_class_num (const char * /*name*/);
 
 int
 der_get_general_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_general_string */*str*/,
-       size_t */*size*/);
+       heim_general_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_get_generalized_time (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       time_t */*data*/,
-       size_t */*size*/);
+       time_t * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_heim_integer (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_integer */*data*/,
-       size_t */*size*/);
+       heim_integer * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_ia5_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_ia5_string */*str*/,
-       size_t */*size*/);
+       heim_ia5_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_get_integer (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       int */*ret*/,
-       size_t */*size*/);
+       int * /*ret*/,
+       size_t * /*size*/);
 
 int
 der_get_integer64 (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       int64_t */*ret*/,
-       size_t */*size*/);
+       int64_t * /*ret*/,
+       size_t * /*size*/);
 
 int
 der_get_length (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       size_t */*val*/,
-       size_t */*size*/);
+       size_t * /*val*/,
+       size_t * /*size*/);
 
 int
 der_get_octet_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_octet_string */*data*/,
-       size_t */*size*/);
+       heim_octet_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_octet_string_ber (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_octet_string */*data*/,
-       size_t */*size*/);
+       heim_octet_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_oid (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_oid */*data*/,
-       size_t */*size*/);
+       heim_oid * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_printable_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_printable_string */*str*/,
-       size_t */*size*/);
+       heim_printable_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_get_tag (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       Der_class */*cls*/,
-       Der_type */*type*/,
-       unsigned int */*tag*/,
-       size_t */*size*/);
+       Der_class * /*cls*/,
+       Der_type * /*type*/,
+       unsigned int * /*tag*/,
+       size_t * /*size*/);
 
 const char *
 der_get_tag_name (unsigned /*num*/);
 
 int
-der_get_tag_num (const char */*name*/);
+der_get_tag_num (const char * /*name*/);
 
 const char *
 der_get_type_name (unsigned /*num*/);
 
 int
-der_get_type_num (const char */*name*/);
+der_get_type_num (const char * /*name*/);
 
 int
 der_get_universal_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_universal_string */*data*/,
-       size_t */*size*/);
+       heim_universal_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_unsigned (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       unsigned */*ret*/,
-       size_t */*size*/);
+       unsigned * /*ret*/,
+       size_t * /*size*/);
 
 int
 der_get_unsigned64 (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       uint64_t */*ret*/,
-       size_t */*size*/);
+       uint64_t * /*ret*/,
+       size_t * /*size*/);
 
 int
 der_get_utctime (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       time_t */*data*/,
-       size_t */*size*/);
+       time_t * /*data*/,
+       size_t * /*size*/);
 
 int
 der_get_utf8string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_utf8_string */*str*/,
-       size_t */*size*/);
+       heim_utf8_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_get_visible_string (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
-       heim_visible_string */*str*/,
-       size_t */*size*/);
+       heim_visible_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_heim_bit_string_cmp (
-       const heim_bit_string */*p*/,
-       const heim_bit_string */*q*/);
+       const heim_bit_string * /*p*/,
+       const heim_bit_string * /*q*/);
 
 int
 der_heim_bmp_string_cmp (
-       const heim_bmp_string */*p*/,
-       const heim_bmp_string */*q*/);
+       const heim_bmp_string * /*p*/,
+       const heim_bmp_string * /*q*/);
 
 int
 der_heim_integer_cmp (
-       const heim_integer */*p*/,
-       const heim_integer */*q*/);
+       const heim_integer * /*p*/,
+       const heim_integer * /*q*/);
 
 int
 der_heim_octet_string_cmp (
-       const heim_octet_string */*p*/,
-       const heim_octet_string */*q*/);
+       const heim_octet_string * /*p*/,
+       const heim_octet_string * /*q*/);
 
 int
 der_heim_oid_cmp (
-       const heim_oid */*p*/,
-       const heim_oid */*q*/);
+       const heim_oid * /*p*/,
+       const heim_oid * /*q*/);
 
 int
 der_heim_universal_string_cmp (
-       const heim_universal_string */*p*/,
-       const heim_universal_string */*q*/);
+       const heim_universal_string * /*p*/,
+       const heim_universal_string * /*q*/);
 
 int
 der_ia5_string_cmp (
-       const heim_ia5_string */*p*/,
-       const heim_ia5_string */*q*/);
+       const heim_ia5_string * /*p*/,
+       const heim_ia5_string * /*q*/);
 
 size_t
-der_length_bit_string (const heim_bit_string */*k*/);
+der_length_bit_string (const heim_bit_string * /*k*/);
 
 size_t
-der_length_bmp_string (const heim_bmp_string */*data*/);
+der_length_bmp_string (const heim_bmp_string * /*data*/);
 
 size_t
-der_length_boolean (const int */*k*/);
+der_length_boolean (const int * /*k*/);
 
 size_t
-der_length_enumerated (const unsigned */*data*/);
+der_length_enumerated (const unsigned * /*data*/);
 
 size_t
-der_length_general_string (const heim_general_string */*data*/);
+der_length_general_string (const heim_general_string * /*data*/);
 
 size_t
-der_length_generalized_time (const time_t */*t*/);
+der_length_generalized_time (const time_t * /*t*/);
 
 size_t
-der_length_heim_integer (const heim_integer */*k*/);
+der_length_heim_integer (const heim_integer * /*k*/);
 
 size_t
-der_length_ia5_string (const heim_ia5_string */*data*/);
+der_length_ia5_string (const heim_ia5_string * /*data*/);
 
 size_t
-der_length_integer (const int */*data*/);
+der_length_integer (const int * /*data*/);
 
 size_t
-der_length_integer64 (const int64_t */*data*/);
+der_length_integer64 (const int64_t * /*data*/);
 
 size_t
 der_length_len (size_t /*len*/);
 
 size_t
-der_length_octet_string (const heim_octet_string */*k*/);
+der_length_octet_string (const heim_octet_string * /*k*/);
 
 size_t
-der_length_oid (const heim_oid */*k*/);
+der_length_oid (const heim_oid * /*k*/);
 
 size_t
-der_length_printable_string (const heim_printable_string */*data*/);
+der_length_printable_string (const heim_printable_string * /*data*/);
 
 size_t
 der_length_tag (unsigned int /*tag*/);
 
 size_t
-der_length_universal_string (const heim_universal_string */*data*/);
+der_length_universal_string (const heim_universal_string * /*data*/);
 
 size_t
-der_length_unsigned (const unsigned */*data*/);
+der_length_unsigned (const unsigned * /*data*/);
 
 size_t
-der_length_unsigned64 (const uint64_t */*data*/);
+der_length_unsigned64 (const uint64_t * /*data*/);
 
 size_t
-der_length_utctime (const time_t */*t*/);
+der_length_utctime (const time_t * /*t*/);
 
 size_t
-der_length_utf8string (const heim_utf8_string */*data*/);
+der_length_utf8string (const heim_utf8_string * /*data*/);
 
 size_t
-der_length_visible_string (const heim_visible_string */*data*/);
+der_length_visible_string (const heim_visible_string * /*data*/);
 
 int
 der_match_tag (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
        Der_class /*cls*/,
        Der_type /*type*/,
        unsigned int /*tag*/,
-       size_t */*size*/);
+       size_t * /*size*/);
 
 int
 der_match_tag2 (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
        Der_class /*cls*/,
-       Der_type */*type*/,
+       Der_type * /*type*/,
        unsigned int /*tag*/,
-       size_t */*size*/);
+       size_t * /*size*/);
 
 int
 der_match_tag_and_length (
-       const unsigned char */*p*/,
+       const unsigned char * /*p*/,
        size_t /*len*/,
        Der_class /*cls*/,
-       Der_type */*type*/,
+       Der_type * /*type*/,
        unsigned int /*tag*/,
-       size_t */*length_ret*/,
-       size_t */*size*/);
+       size_t * /*length_ret*/,
+       size_t * /*size*/);
 
 int
 der_parse_heim_oid (
-       const char */*str*/,
-       const char */*sep*/,
-       heim_oid */*data*/);
+       const char * /*str*/,
+       const char * /*sep*/,
+       heim_oid * /*data*/);
 
 int
 der_parse_hex_heim_integer (
-       const char */*p*/,
-       heim_integer */*data*/);
+       const char * /*p*/,
+       heim_integer * /*data*/);
 
 int
 der_print_heim_oid (
-       const heim_oid */*oid*/,
+       const heim_oid * /*oid*/,
        char /*delim*/,
-       char **/*str*/);
+       char ** /*str*/);
 
 int
 der_print_hex_heim_integer (
-       const heim_integer */*data*/,
-       char **/*p*/);
+       const heim_integer * /*data*/,
+       char ** /*p*/);
 
 int
 der_printable_string_cmp (
-       const heim_printable_string */*p*/,
-       const heim_printable_string */*q*/);
+       const heim_printable_string * /*p*/,
+       const heim_printable_string * /*q*/);
 
 int
 der_put_bit_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_bit_string */*data*/,
-       size_t */*size*/);
+       const heim_bit_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_bmp_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_bmp_string */*data*/,
-       size_t */*size*/);
+       const heim_bmp_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_boolean (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const int */*data*/,
-       size_t */*size*/);
+       const int * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_general_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_general_string */*str*/,
-       size_t */*size*/);
+       const heim_general_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_put_generalized_time (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const time_t */*data*/,
-       size_t */*size*/);
+       const time_t * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_heim_integer (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_integer */*data*/,
-       size_t */*size*/);
+       const heim_integer * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_ia5_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_ia5_string */*str*/,
-       size_t */*size*/);
+       const heim_ia5_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_put_integer (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const int */*v*/,
-       size_t */*size*/);
+       const int * /*v*/,
+       size_t * /*size*/);
 
 int
 der_put_integer64 (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const int64_t */*v*/,
-       size_t */*size*/);
+       const int64_t * /*v*/,
+       size_t * /*size*/);
 
 int
 der_put_length (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
        size_t /*val*/,
-       size_t */*size*/);
+       size_t * /*size*/);
 
 int
 der_put_length_and_tag (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
        size_t /*len_val*/,
        Der_class /*class*/,
        Der_type /*type*/,
        unsigned int /*tag*/,
-       size_t */*size*/);
+       size_t * /*size*/);
 
 int
 der_put_octet_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_octet_string */*data*/,
-       size_t */*size*/);
+       const heim_octet_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_oid (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_oid */*data*/,
-       size_t */*size*/);
+       const heim_oid * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_printable_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_printable_string */*str*/,
-       size_t */*size*/);
+       const heim_printable_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_put_tag (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
        Der_class /*class*/,
        Der_type /*type*/,
        unsigned int /*tag*/,
-       size_t */*size*/);
+       size_t * /*size*/);
 
 int
 der_put_universal_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_universal_string */*data*/,
-       size_t */*size*/);
+       const heim_universal_string * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_unsigned (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const unsigned */*v*/,
-       size_t */*size*/);
+       const unsigned * /*v*/,
+       size_t * /*size*/);
 
 int
 der_put_unsigned64 (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const uint64_t */*v*/,
-       size_t */*size*/);
+       const uint64_t * /*v*/,
+       size_t * /*size*/);
 
 int
 der_put_utctime (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const time_t */*data*/,
-       size_t */*size*/);
+       const time_t * /*data*/,
+       size_t * /*size*/);
 
 int
 der_put_utf8string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_utf8_string */*str*/,
-       size_t */*size*/);
+       const heim_utf8_string * /*str*/,
+       size_t * /*size*/);
 
 int
 der_put_visible_string (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_visible_string */*str*/,
-       size_t */*size*/);
+       const heim_visible_string * /*str*/,
+       size_t * /*size*/);
 
 int
 encode_heim_any (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_any */*data*/,
-       size_t */*size*/);
+       const heim_any * /*data*/,
+       size_t * /*size*/);
 
 int
 encode_heim_any_set (
-       unsigned char */*p*/,
+       unsigned char * /*p*/,
        size_t /*len*/,
-       const heim_any_set */*data*/,
-       size_t */*size*/);
+       const heim_any_set * /*data*/,
+       size_t * /*size*/);
 
 void
-free_heim_any (heim_any */*data*/);
+free_heim_any (heim_any * /*data*/);
 
 void
-free_heim_any_set (heim_any_set */*data*/);
+free_heim_any_set (heim_any_set * /*data*/);
 
 int
 heim_any_cmp (
-       const heim_any_set */*p*/,
-       const heim_any_set */*q*/);
+       const heim_any_set * /*p*/,
+       const heim_any_set * /*q*/);
 
 size_t
-length_heim_any (const heim_any */*data*/);
+length_heim_any (const heim_any * /*data*/);
 
 size_t
-length_heim_any_set (const heim_any */*data*/);
+length_heim_any_set (const heim_any * /*data*/);
 
 #ifdef __cplusplus
 }
index 49a1732..0c9ef33 100644 (file)
@@ -80,6 +80,7 @@
 #include "v5gen-rewrite.h"
 #include "v5gen.h"
 #include "der.h"
+#include <asn1_err.h>
 
 #if defined(IGNORE_SOME_GCC_WARNINGS) && !defined(__clang__) && __GNUC__ >= 7
 # pragma GCC diagnostic push
index 98545b1..2f2ed6a 100644 (file)
@@ -1,4 +1,3 @@
-#include "asn1_err.h"
 #include <errno.h>
 #include <limits.h>
 /*