2 # This code depends on heimdal's asn1_compile generated krb5 decoding
3 # stuff. The code is orignally from rxkad that Björn Grönvall
4 # <bg@sics.se> for kth-krb and was included in Arla.
6 # The first file, v5der.c are part for of support functions
7 # that all generated files depends on.
9 # The second file (v5gen.h) is the headerfile that is generated for
10 # the decoding functions.
12 # The third file (v5gen.c) is the subset of the genrated functions we
13 # need to decode the authenticator.
15 # The forth file (v5gen-rewrite.h) is used to make sure we don't
16 # polute the namespace.
18 # All files are modified to build within OpenAFS enviroment without
19 # any external dependencies. Below is the shellscript that is used to
20 # import the code into the four files.
22 # All internal symbols are rewritten to _rxkad_v5_.
25 # Make sure we don't export too much
27 # : lha@nutcracker ; nm ticket5.o | grep T | grep -v _rxkad_v5
28 # 00005748 T tkt_DecodeTicket5
32 htree=/home/lha/src/cvs/heimdal
33 hotree=/sources/obj/heimdal
34 otree=/sources/afs/openafs-rxkad5
38 (cd $htree/lib/asn1 ; \
39 echo '#include "asn1_err.h"';
40 echo '#include <errno.h>';
48 | grep -v 'include "der_locl.h"' \
49 | grep -v 'include <version.h>' \
50 | sed 's!\(RCSID.*\)!/* \1 */!' \
51 | sed 's!$Id: !Heimdal: !' \
52 | cat > $otree/src/rxkad/v5der.c
54 grep -v 'struct units' $hotree/lib/asn1/krb5_asn1.h \
55 > $otree/src/rxkad/v5gen.h
57 (cd $hotree/lib/asn1 ; \
59 asn1_EncryptedData.c \
60 asn1_PrincipalName.c \
61 asn1_HostAddresses.c \
63 asn1_AuthorizationData.c \
64 asn1_EncTicketPart.c \
66 asn1_TransitedEncoding.c \
67 asn1_EncryptionKey.c \
73 | grep -v 'include <krb5_asn1.h>' \
74 | grep -v 'include <der.h>' \
75 | grep -v 'include <parse_units.h>' \
77 -e '$f=0; while(<>){$f=1 if(/struct units/);print if($f eq 0);$f=0 if(/^};/);}' \
78 | cat > $otree/src/rxkad/v5gen.c
81 perl -p -e 's/^(encode_|decode_|free_|copy_|length_)([^(]*)\([^)]*\)\n$/#define $1$2 _rxkad_v5_$1$2\n/' $otree/src/rxkad/v5gen.c ; \
82 perl -p -e 's/^(der_|copy_|encode_|decode_|len_|length_|free_|fix_dce|time2generalizedtime)([^(]*).*/#define $1$2 _rxkad_v5_$1$2/' /sources/afs/openafs-krb5/src/rxkad/v5der.c ; \
83 echo '#define TicketFlags2int _rxkad_v5_TicketFlags2int' ; \
84 echo '#define int2TicketFlags _rxkad_v5_int2TicketFlags' ; \
87 echo '#ifndef HAVE_TIMEGM' ; \
88 echo '#define timegm _rxkad_timegm' ; \
90 :) > $otree/src/rxkad/v5gen-rewrite.h