rxkad: Update ticket5 from heimdal
[openafs.git] / src / rxkad / README.v5
1 #
2 #  This code depends on heimdal's asn1_compile generated krb5 decoding
3 #  stuff. The code is originally from rxkad that Björn Grönvall
4 #  <bg@sics.se> for kth-krb and was included in Arla.
5 #
6 #  The first file, v5der.c are part for of support functions
7 #  that all generated files depends on.
8 #
9 #  The second file (v5gen.h) is the header file that is generated for
10 #  the decoding functions.
11 #
12 #  The third file (v5gen.c) is the subset of the generated functions we
13 #  need to decode the authenticator.
14 #
15 #  The forth file (v5gen-rewrite.h) is used to make sure we don't
16 #  pollute the namespace.
17 #
18 #  All files are modified to build within OpenAFS environment without
19 #  any external dependencies. Below is the shell script that is used to
20 #  import the code into the four files.
21 #
22 #  All internal symbols are rewritten to _rxkad_v5_.
23 #
24
25 # Make sure we don't export too much
26 #
27 # : lha@nutcracker ; nm ticket5.o | grep T | grep -v _rxkad_v5
28 # 00005748 T tkt_DecodeTicket5
29 #
30
31
32 htree=/home/lha/src/cvs/heimdal
33 hotree=/sources/obj/heimdal
34 otree=/sources/afs/openafs-rxkad5
35
36 export htree hotree otree
37
38 (cd $htree/lib/asn1 ; \
39  echo '#include "asn1_err.h"'; \
40  echo '#include <errno.h>'; \
41  echo '#include <limits.h>'; \
42  cat  timegm.c \
43  der_get.c \
44  der_put.c \
45  der_free.c \
46  der_length.c \
47  der_copy.c \
48 )  \
49 | grep -v 'include "der_locl.h"' \
50 | grep -v 'include <version.h>' \
51 | sed 's!\(RCSID.*\)!/* \1 */!' \
52 | sed 's!$Id: !Heimdal: !' \
53 > $otree/src/rxkad/v5der.c
54
55 grep -v 'struct units'  $hotree/lib/asn1/krb5_asn1.h \
56  | sed s/uint16_t/afs_uint16/ \
57  | sed s/uint32_t/afs_uint32/ \
58    > $otree/src/rxkad/v5gen.h
59
60 cp  $hotree/lib/asn1/der-protos.h \
61     $otree/src/rxkad/der-protos.h
62
63 < $hotree/lib/asn1/asn1_err.h \
64  sed 's!#include <et/com_err[.]h>!struct et_list;!' \
65  > $otree/src/rxkad/asn1_err.h
66
67 (cd $hotree/lib/asn1 ; \
68  echo '#define HEIMDAL_UNUSED_ATTRIBUTE AFS_UNUSED' ; \
69  cat krb5_asn1-priv.h ; \
70  cat asn1_krb5_asn1.x ) \
71  | grep -v 'include <krb5-types.h>' \
72  | grep -v 'include "krb5_asn1.h"' \
73  | grep -v 'include "krb5_asn1-priv.h"' \
74  | grep -v 'include <der.h>' \
75  | grep -v 'include <der-private.h>' \
76  | grep -v 'include <parse_units.h>' \
77  | grep -v 'include <asn1-template.h>' \
78  | perl \
79    -e '$f=0; while(<>){$f=1 if(/struct units/);print if($f eq 0);$f=0 if(/^}/);}' \
80  | sed -n '/^encode_Checksum[(]/q;p' \
81  | head -n -2 \
82  > $otree/src/rxkad/v5gen.c
83
84 ( \
85  perl -p -e 's/^(encode_|decode_|free_|copy_|length_)([^(]*)\([^)]*\)\n$/#define $1$2 _rxkad_v5_$1$2\n/' $otree/src/rxkad/v5gen.c ; \
86   perl -p -e 's/^(der_|copy_|encode_|decode_|len_|length_|free_|fix_dce|time2generalizedtime)([^( ]*).*/#define $1$2 _rxkad_v5_$1$2/' $otree/src/rxkad/v5der.c ; \
87   echo '#define TicketFlags2int _rxkad_v5_TicketFlags2int' ; \
88   echo '#define int2TicketFlags _rxkad_v5_int2TicketFlags' ; \
89   : ) | \
90   grep _rxkad_v5 \
91   > $otree/src/rxkad/v5gen-rewrite.h
92
93 ( \
94   < $otree/src/rxkad/v5gen.c \
95   indent -npro -nbad -bap -nbc -br -ce -cd4 -brs -ncdb -di2 -ndj -nfc1 -i4 -lp -npcs -psl -sc -nsob \
96   > $otree/src/rxkad/v5gen.c.indent ; \
97   mv $otree/src/rxkad/v5gen.c.indent $otree/src/rxkad/v5gen.c \
98 )