~ubuntu-branches/ubuntu/maverick/krb5/maverick

« back to all changes in this revision

Viewing changes to src/tests/asn.1/krb5_decode_test.c

  • Committer: Bazaar Package Importer
  • Author(s): Sam Hartman
  • Date: 2009-05-07 16:16:34 UTC
  • mfrom: (13.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20090507161634-xqyk0s9na0le4flj
Tags: 1.7dfsg~beta1-4
When  decrypting the TGS response fails with the subkey, try with the
session key to work around Heimdal bug, Closes: #527353 

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
void krb5_ktest_free_enc_data(krb5_context context, krb5_enc_data *val);
17
17
 
18
18
int main(argc, argv)
19
 
        int argc;
20
 
        char **argv;
 
19
    int argc;
 
20
    char **argv;
21
21
{
22
 
  krb5_data code;
23
 
  krb5_error_code retval;
24
 
  
25
 
  retval = krb5_init_context(&test_context);
26
 
  if (retval) {
27
 
          com_err(argv[0], retval, "while initializing krb5");
28
 
          exit(1);
29
 
  }
30
 
  
31
 
 
32
 
#define setup(type,typestring,constructor)\
33
 
  type ref, *var;\
34
 
  retval = constructor(&ref);\
35
 
  if(retval){\
36
 
    com_err("krb5_decode_test", retval, "while making sample %s", typestring);\
37
 
    exit(1);\
38
 
  }
39
 
 
40
 
#define decode_run(typestring,description,encoding,decoder,comparator,cleanup)\
41
 
    retval = krb5_data_hex_parse(&code,encoding);\
42
 
    if(retval){\
43
 
      com_err("krb5_decode_test", retval, "while parsing %s", typestring);\
44
 
      exit(1);\
45
 
    }\
46
 
    retval = decoder(&code,&var);\
47
 
    if(retval){\
48
 
      com_err("krb5_decode_test", retval, "while decoding %s", typestring);\
49
 
      error_count++;\
50
 
    }\
51
 
    test(comparator(&ref,var),typestring);\
52
 
    printf("%s\n",description);\
53
 
    krb5_free_data_contents(test_context, &code);\
 
22
    krb5_data code;
 
23
    krb5_error_code retval;
 
24
  
 
25
    retval = krb5_init_context(&test_context);
 
26
    if (retval) {
 
27
        com_err(argv[0], retval, "while initializing krb5");
 
28
        exit(1);
 
29
    }
 
30
    init_access(argv[0]);
 
31
  
 
32
 
 
33
#define setup(type,typestring,constructor)                              \
 
34
    type ref, *var;                                                     \
 
35
    retval = constructor(&ref);                                         \
 
36
    if (retval) {                                                       \
 
37
        com_err("krb5_decode_test", retval, "while making sample %s", typestring); \
 
38
        exit(1);                                                        \
 
39
    }
 
40
 
 
41
#define decode_run(typestring,description,encoding,decoder,comparator,cleanup) \
 
42
    retval = krb5_data_hex_parse(&code,encoding);                       \
 
43
    if (retval) {                                                       \
 
44
        com_err("krb5_decode_test", retval, "while parsing %s", typestring); \
 
45
        exit(1);                                                        \
 
46
    }                                                                   \
 
47
    retval = decoder(&code,&var);                                       \
 
48
    if (retval) {                                                       \
 
49
        com_err("krb5_decode_test", retval, "while decoding %s", typestring); \
 
50
        error_count++;                                                  \
 
51
    }                                                                   \
 
52
    test(comparator(&ref,var),typestring);                              \
 
53
    printf("%s\n",description);                                         \
 
54
    krb5_free_data_contents(test_context, &code);                       \
54
55
    cleanup(test_context, var);
55
56
 
56
 
  /****************************************************************/
57
 
  /* decode_krb5_authenticator */
58
 
  {
59
 
    setup(krb5_authenticator,"krb5_authenticator",ktest_make_sample_authenticator);
60
 
 
61
 
    decode_run("authenticator","","62 81 A1 30 81 9E A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A7 03 02 01 11 A8 24 30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
62
 
 
63
 
    ref.seq_number = 0xffffff80;
64
 
    decode_run("authenticator","(80 -> seq-number 0xffffff80)",
65
 
               "62 81 A1 30 81 9E"
66
 
               "   A0 03 02 01 05"
67
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
68
 
               "   A2 1A 30 18"
69
 
               "      A0 03 02 01 01"
70
 
               "      A1 11 30 0F"
71
 
               "         1B 06 68 66 74 73 61 69"
72
 
               "         1B 05 65 78 74 72 61"
73
 
               "   A3 0F 30 0D"
74
 
               "      A0 03 02 01 01"
75
 
               "      A1 06 04 04 31 32 33 34"
76
 
               "   A4 05 02 03 01 E2 40"
77
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
78
 
               "   A6 13 30 11"
79
 
               "      A0 03 02 01 01"
80
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
81
 
               "   A7 03 02 01 80"
82
 
               "   A8 24 30 22"
83
 
               "      30 0F"
84
 
               "         A0 03 02 01 01"
85
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
86
 
               "      30 0F"
87
 
               "         A0 03 02 01 01"
88
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
89
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
90
 
 
91
 
    ref.seq_number = 0xffffffff;
92
 
    decode_run("authenticator","(FF -> seq-number 0xffffffff)",
93
 
               "62 81 A1 30 81 9E"
94
 
               "   A0 03 02 01 05"
95
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
96
 
               "   A2 1A 30 18"
97
 
               "      A0 03 02 01 01"
98
 
               "      A1 11 30 0F"
99
 
               "         1B 06 68 66 74 73 61 69"
100
 
               "         1B 05 65 78 74 72 61"
101
 
               "   A3 0F 30 0D"
102
 
               "      A0 03 02 01 01"
103
 
               "      A1 06 04 04 31 32 33 34"
104
 
               "   A4 05 02 03 01 E2 40"
105
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
106
 
               "   A6 13 30 11"
107
 
               "      A0 03 02 01 01"
108
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
109
 
               "   A7 03 02 01 FF"
110
 
               "   A8 24 30 22"
111
 
               "      30 0F"
112
 
               "         A0 03 02 01 01"
113
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
114
 
               "      30 0F"
115
 
               "         A0 03 02 01 01"
116
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
117
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
118
 
 
119
 
    ref.seq_number = 0xff;
120
 
    decode_run("authenticator","(00FF -> seq-number 0xff)",
121
 
               "62 81 A2 30 81 9F"
122
 
               "   A0 03 02 01 05"
123
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
124
 
               "   A2 1A 30 18"
125
 
               "      A0 03 02 01 01"
126
 
               "      A1 11 30 0F"
127
 
               "         1B 06 68 66 74 73 61 69"
128
 
               "         1B 05 65 78 74 72 61"
129
 
               "   A3 0F 30 0D"
130
 
               "      A0 03 02 01 01"
131
 
               "      A1 06 04 04 31 32 33 34"
132
 
               "   A4 05 02 03 01 E2 40"
133
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
134
 
               "   A6 13 30 11"
135
 
               "      A0 03 02 01 01"
136
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
137
 
               "   A7 04 02 02 00 FF"
138
 
               "   A8 24 30 22"
139
 
               "      30 0F"
140
 
               "         A0 03 02 01 01"
141
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
142
 
               "      30 0F"
143
 
               "         A0 03 02 01 01"
144
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
145
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
146
 
 
147
 
    ref.seq_number = 0xffffffff;
148
 
    decode_run("authenticator","(00FFFFFFFF -> seq-number 0xffffffff)",
149
 
               "62 81 A5 30 81 A2"
150
 
               "   A0 03 02 01 05"
151
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
152
 
               "   A2 1A 30 18"
153
 
               "      A0 03 02 01 01"
154
 
               "      A1 11 30 0F"
155
 
               "         1B 06 68 66 74 73 61 69"
156
 
               "         1B 05 65 78 74 72 61"
157
 
               "   A3 0F 30 0D"
158
 
               "      A0 03 02 01 01"
159
 
               "      A1 06 04 04 31 32 33 34"
160
 
               "   A4 05 02 03 01 E2 40"
161
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
162
 
               "   A6 13 30 11"
163
 
               "      A0 03 02 01 01"
164
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
165
 
               "   A7 07 02 05 00 FF FF FF FF"
166
 
               "   A8 24 30 22"
167
 
               "      30 0F"
168
 
               "         A0 03 02 01 01"
169
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
170
 
               "      30 0F"
171
 
               "         A0 03 02 01 01"
172
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
173
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
174
 
 
175
 
    ref.seq_number = 0x7fffffff;
176
 
    decode_run("authenticator","(7FFFFFFF -> seq-number 0x7fffffff)",
177
 
               "62 81 A4 30 81 A1"
178
 
               "   A0 03 02 01 05"
179
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
180
 
               "   A2 1A 30 18"
181
 
               "      A0 03 02 01 01"
182
 
               "      A1 11 30 0F"
183
 
               "         1B 06 68 66 74 73 61 69"
184
 
               "         1B 05 65 78 74 72 61"
185
 
               "   A3 0F 30 0D"
186
 
               "      A0 03 02 01 01"
187
 
               "      A1 06 04 04 31 32 33 34"
188
 
               "   A4 05 02 03 01 E2 40"
189
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
190
 
               "   A6 13 30 11"
191
 
               "      A0 03 02 01 01"
192
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
193
 
               "   A7 06 02 04 7F FF FF FF"
194
 
               "   A8 24 30 22"
195
 
               "      30 0F"
196
 
               "         A0 03 02 01 01"
197
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
198
 
               "      30 0F"
199
 
               "         A0 03 02 01 01"
200
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
201
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
202
 
 
203
 
    ref.seq_number = 0xffffffff;
204
 
    decode_run("authenticator","(FFFFFFFF -> seq-number 0xffffffff)",
205
 
               "62 81 A4 30 81 A1"
206
 
               "   A0 03 02 01 05"
207
 
               "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
208
 
               "   A2 1A 30 18"
209
 
               "      A0 03 02 01 01"
210
 
               "      A1 11 30 0F"
211
 
               "         1B 06 68 66 74 73 61 69"
212
 
               "         1B 05 65 78 74 72 61"
213
 
               "   A3 0F 30 0D"
214
 
               "      A0 03 02 01 01"
215
 
               "      A1 06 04 04 31 32 33 34"
216
 
               "   A4 05 02 03 01 E2 40"
217
 
               "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
218
 
               "   A6 13 30 11"
219
 
               "      A0 03 02 01 01"
220
 
               "      A1 0A 04 08 31 32 33 34 35 36 37 38"
221
 
               "   A7 06 02 04 FF FF FF FF"
222
 
               "   A8 24 30 22"
223
 
               "      30 0F"
224
 
               "         A0 03 02 01 01"
225
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
226
 
               "      30 0F"
227
 
               "         A0 03 02 01 01"
228
 
               "         A1 08 04 06 66 6F 6F 62 61 72"
229
 
               ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
230
 
 
231
 
    ktest_destroy_checksum(&(ref.checksum));
232
 
    ktest_destroy_keyblock(&(ref.subkey));
233
 
    ref.seq_number = 0;
234
 
    ktest_empty_authorization_data(ref.authorization_data);
235
 
    decode_run("authenticator","(optionals empty)","62 4F 30 4D A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
236
 
 
237
 
    ktest_destroy_authorization_data(&(ref.authorization_data));
 
57
    /****************************************************************/
 
58
    /* decode_krb5_authenticator */
 
59
    {
 
60
        setup(krb5_authenticator,"krb5_authenticator",ktest_make_sample_authenticator);
 
61
 
 
62
        decode_run("authenticator","","62 81 A1 30 81 9E A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A7 03 02 01 11 A8 24 30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
63
 
 
64
        ref.seq_number = 0xffffff80;
 
65
        decode_run("authenticator","(80 -> seq-number 0xffffff80)",
 
66
                   "62 81 A1 30 81 9E"
 
67
                   "   A0 03 02 01 05"
 
68
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
69
                   "   A2 1A 30 18"
 
70
                   "      A0 03 02 01 01"
 
71
                   "      A1 11 30 0F"
 
72
                   "         1B 06 68 66 74 73 61 69"
 
73
                   "         1B 05 65 78 74 72 61"
 
74
                   "   A3 0F 30 0D"
 
75
                   "      A0 03 02 01 01"
 
76
                   "      A1 06 04 04 31 32 33 34"
 
77
                   "   A4 05 02 03 01 E2 40"
 
78
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
79
                   "   A6 13 30 11"
 
80
                   "      A0 03 02 01 01"
 
81
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
82
                   "   A7 03 02 01 80"
 
83
                   "   A8 24 30 22"
 
84
                   "      30 0F"
 
85
                   "         A0 03 02 01 01"
 
86
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
87
                   "      30 0F"
 
88
                   "         A0 03 02 01 01"
 
89
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
90
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
91
 
 
92
        ref.seq_number = 0xffffffff;
 
93
        decode_run("authenticator","(FF -> seq-number 0xffffffff)",
 
94
                   "62 81 A1 30 81 9E"
 
95
                   "   A0 03 02 01 05"
 
96
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
97
                   "   A2 1A 30 18"
 
98
                   "      A0 03 02 01 01"
 
99
                   "      A1 11 30 0F"
 
100
                   "         1B 06 68 66 74 73 61 69"
 
101
                   "         1B 05 65 78 74 72 61"
 
102
                   "   A3 0F 30 0D"
 
103
                   "      A0 03 02 01 01"
 
104
                   "      A1 06 04 04 31 32 33 34"
 
105
                   "   A4 05 02 03 01 E2 40"
 
106
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
107
                   "   A6 13 30 11"
 
108
                   "      A0 03 02 01 01"
 
109
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
110
                   "   A7 03 02 01 FF"
 
111
                   "   A8 24 30 22"
 
112
                   "      30 0F"
 
113
                   "         A0 03 02 01 01"
 
114
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
115
                   "      30 0F"
 
116
                   "         A0 03 02 01 01"
 
117
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
118
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
119
 
 
120
        ref.seq_number = 0xff;
 
121
        decode_run("authenticator","(00FF -> seq-number 0xff)",
 
122
                   "62 81 A2 30 81 9F"
 
123
                   "   A0 03 02 01 05"
 
124
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
125
                   "   A2 1A 30 18"
 
126
                   "      A0 03 02 01 01"
 
127
                   "      A1 11 30 0F"
 
128
                   "         1B 06 68 66 74 73 61 69"
 
129
                   "         1B 05 65 78 74 72 61"
 
130
                   "   A3 0F 30 0D"
 
131
                   "      A0 03 02 01 01"
 
132
                   "      A1 06 04 04 31 32 33 34"
 
133
                   "   A4 05 02 03 01 E2 40"
 
134
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
135
                   "   A6 13 30 11"
 
136
                   "      A0 03 02 01 01"
 
137
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
138
                   "   A7 04 02 02 00 FF"
 
139
                   "   A8 24 30 22"
 
140
                   "      30 0F"
 
141
                   "         A0 03 02 01 01"
 
142
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
143
                   "      30 0F"
 
144
                   "         A0 03 02 01 01"
 
145
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
146
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
147
 
 
148
        ref.seq_number = 0xffffffff;
 
149
        decode_run("authenticator","(00FFFFFFFF -> seq-number 0xffffffff)",
 
150
                   "62 81 A5 30 81 A2"
 
151
                   "   A0 03 02 01 05"
 
152
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
153
                   "   A2 1A 30 18"
 
154
                   "      A0 03 02 01 01"
 
155
                   "      A1 11 30 0F"
 
156
                   "         1B 06 68 66 74 73 61 69"
 
157
                   "         1B 05 65 78 74 72 61"
 
158
                   "   A3 0F 30 0D"
 
159
                   "      A0 03 02 01 01"
 
160
                   "      A1 06 04 04 31 32 33 34"
 
161
                   "   A4 05 02 03 01 E2 40"
 
162
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
163
                   "   A6 13 30 11"
 
164
                   "      A0 03 02 01 01"
 
165
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
166
                   "   A7 07 02 05 00 FF FF FF FF"
 
167
                   "   A8 24 30 22"
 
168
                   "      30 0F"
 
169
                   "         A0 03 02 01 01"
 
170
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
171
                   "      30 0F"
 
172
                   "         A0 03 02 01 01"
 
173
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
174
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
175
 
 
176
        ref.seq_number = 0x7fffffff;
 
177
        decode_run("authenticator","(7FFFFFFF -> seq-number 0x7fffffff)",
 
178
                   "62 81 A4 30 81 A1"
 
179
                   "   A0 03 02 01 05"
 
180
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
181
                   "   A2 1A 30 18"
 
182
                   "      A0 03 02 01 01"
 
183
                   "      A1 11 30 0F"
 
184
                   "         1B 06 68 66 74 73 61 69"
 
185
                   "         1B 05 65 78 74 72 61"
 
186
                   "   A3 0F 30 0D"
 
187
                   "      A0 03 02 01 01"
 
188
                   "      A1 06 04 04 31 32 33 34"
 
189
                   "   A4 05 02 03 01 E2 40"
 
190
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
191
                   "   A6 13 30 11"
 
192
                   "      A0 03 02 01 01"
 
193
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
194
                   "   A7 06 02 04 7F FF FF FF"
 
195
                   "   A8 24 30 22"
 
196
                   "      30 0F"
 
197
                   "         A0 03 02 01 01"
 
198
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
199
                   "      30 0F"
 
200
                   "         A0 03 02 01 01"
 
201
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
202
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
203
 
 
204
        ref.seq_number = 0xffffffff;
 
205
        decode_run("authenticator","(FFFFFFFF -> seq-number 0xffffffff)",
 
206
                   "62 81 A4 30 81 A1"
 
207
                   "   A0 03 02 01 05"
 
208
                   "   A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55"
 
209
                   "   A2 1A 30 18"
 
210
                   "      A0 03 02 01 01"
 
211
                   "      A1 11 30 0F"
 
212
                   "         1B 06 68 66 74 73 61 69"
 
213
                   "         1B 05 65 78 74 72 61"
 
214
                   "   A3 0F 30 0D"
 
215
                   "      A0 03 02 01 01"
 
216
                   "      A1 06 04 04 31 32 33 34"
 
217
                   "   A4 05 02 03 01 E2 40"
 
218
                   "   A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A"
 
219
                   "   A6 13 30 11"
 
220
                   "      A0 03 02 01 01"
 
221
                   "      A1 0A 04 08 31 32 33 34 35 36 37 38"
 
222
                   "   A7 06 02 04 FF FF FF FF"
 
223
                   "   A8 24 30 22"
 
224
                   "      30 0F"
 
225
                   "         A0 03 02 01 01"
 
226
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
227
                   "      30 0F"
 
228
                   "         A0 03 02 01 01"
 
229
                   "         A1 08 04 06 66 6F 6F 62 61 72"
 
230
                   ,decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
231
 
 
232
        ktest_destroy_checksum(&(ref.checksum));
 
233
        ktest_destroy_keyblock(&(ref.subkey));
 
234
        ref.seq_number = 0;
 
235
        ktest_empty_authorization_data(ref.authorization_data);
 
236
        decode_run("authenticator","(optionals empty)","62 4F 30 4D A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
237
 
 
238
        ktest_destroy_authorization_data(&(ref.authorization_data));
238
239
    
239
 
    decode_run("authenticator","(optionals NULL)","62 4F 30 4D A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
 
240
        decode_run("authenticator","(optionals NULL)","62 4F 30 4D A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 05 02 03 01 E2 40 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_authenticator,ktest_equal_authenticator,krb5_free_authenticator);
240
241
 
241
 
    ktest_empty_authenticator(&ref);
242
 
  }
 
242
        ktest_empty_authenticator(&ref);
 
243
    }
243
244
  
244
 
  /****************************************************************/
245
 
  /* decode_krb5_ticket */
246
 
  {
247
 
    setup(krb5_ticket,"krb5_ticket",ktest_make_sample_ticket);
248
 
    decode_run("ticket","","61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
249
 
    decode_run("ticket","(+ trailing [4] INTEGER","61 61 30 5F A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A4 03 02 01 01",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
 
245
    /****************************************************************/
 
246
    /* decode_krb5_ticket */
 
247
    {
 
248
        setup(krb5_ticket,"krb5_ticket",ktest_make_sample_ticket);
 
249
        decode_run("ticket","","61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
 
250
        decode_run("ticket","(+ trailing [4] INTEGER","61 61 30 5F A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A4 03 02 01 01",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
250
251
 
251
252
/*
252
253
  "61 80 30 80 "
267
268
  "  00 00 00 00"
268
269
  "00 00 00 00"
269
270
*/
270
 
    decode_run("ticket","(indefinite lengths)", "61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00" ,decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
 
271
        decode_run("ticket","(indefinite lengths)", "61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00" ,decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
271
272
/*
272
273
  "61 80 30 80 "
273
274
  "  A0 03 02 01 05 "
288
289
  "  A4 03 02 01 01 "
289
290
  "00 00 00 00"
290
291
*/
291
 
    decode_run("ticket","(indefinite lengths + trailing [4] INTEGER)", "61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 A4 03 02 01 01 00 00 00 00",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
292
 
 
293
 
    ktest_empty_ticket(&ref);
294
 
 
295
 
  }
296
 
 
297
 
  /****************************************************************/
298
 
  /* decode_krb5_encryption_key */
299
 
  {
300
 
    setup(krb5_keyblock,"krb5_keyblock",ktest_make_sample_keyblock);
301
 
 
302
 
    decode_run("encryption_key","","30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
303
 
 
304
 
    decode_run("encryption_key","(+ trailing [2] INTEGER)","30 16 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 03 02 01 01",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
305
 
    decode_run("encryption_key","(+ trailing [2] SEQUENCE {[0] INTEGER})","30 1A A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 07 30 05 A0 03 02 01 01",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
306
 
    decode_run("encryption_key","(indefinite lengths)","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
307
 
    decode_run("encryption_key","(indefinite lengths + trailing [2] INTEGER)","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 03 02 01 01 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
308
 
    decode_run("encryption_key","(indefinite lengths + trailing [2] SEQUENCE {[0] INTEGER})","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 80 30 80 A0 03 02 01 01 00 00 00 00 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
309
 
    decode_run("encryption_key","(indefinite lengths + trailing SEQUENCE {[0] INTEGER})","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 30 80 A0 03 02 01 01 00 00 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
310
 
    ref.enctype = -1;
311
 
    decode_run("encryption_key","(enctype = -1)","30 11 A0 03 02 01 FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
312
 
    ref.enctype = -255;
313
 
    decode_run("encryption_key","(enctype = -255)","30 12 A0 04 02 02 FF 01 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
314
 
    ref.enctype = 255;
315
 
    decode_run("encryption_key","(enctype = 255)","30 12 A0 04 02 02 00 FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
316
 
    ref.enctype = -2147483648;
317
 
    decode_run("encryption_key","(enctype = -2147483648)","30 14 A0 06 02 04 80 00 00 00 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
318
 
    ref.enctype = 2147483647;
319
 
    decode_run("encryption_key","(enctype = 2147483647)","30 14 A0 06 02 04 7F FF FF FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
320
 
 
321
 
    ktest_empty_keyblock(&ref);
322
 
  }  
323
 
  
324
 
  /****************************************************************/
325
 
  /* decode_krb5_enc_tkt_part */
326
 
  {
327
 
    setup(krb5_enc_tkt_part,"krb5_enc_tkt_part",ktest_make_sample_enc_tkt_part);
328
 
    decode_run("enc_tkt_part","","63 82 01 14 30 82 01 10 A0 07 03 05 00 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 24 30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
329
 
  
330
 
    /* ref.times.starttime = 0; */
331
 
    ref.times.starttime = ref.times.authtime;
332
 
    ref.times.renew_till = 0;
333
 
    ktest_destroy_address(&(ref.caddrs[1]));
334
 
    ktest_destroy_address(&(ref.caddrs[0]));
335
 
    ktest_destroy_authdata(&(ref.authorization_data[1]));
336
 
    ktest_destroy_authdata(&(ref.authorization_data[0]));
337
 
    /* ISODE version fails on the empty caddrs field */
338
 
    ktest_destroy_addresses(&(ref.caddrs));
339
 
    ktest_destroy_authorization_data(&(ref.authorization_data));
340
 
  
341
 
    decode_run("enc_tkt_part","(optionals NULL)","63 81 A5 30 81 A2 A0 07 03 05 00 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part, krb5_free_enc_tkt_part);
342
 
 
343
 
    decode_run("enc_tkt_part","(optionals NULL + bitstring enlarged to 38 bits)","63 81 A6 30 81 A3 A0 08 03 06 02 FE DC BA 98 DC A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
344
 
 
345
 
    decode_run("enc_tkt_part","(optionals NULL + bitstring enlarged to 40 bits)","63 81 A6 30 81 A3 A0 08 03 06 00 FE DC BA 98 DE A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
346
 
 
347
 
    decode_run("enc_tkt_part","(optionals NULL + bitstring reduced to 29 bits)","63 81 A5 30 81 A2 A0 07 03 05 03 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
348
 
 
349
 
    ref.flags &= 0xFFFFFF00;
350
 
 
351
 
    decode_run("enc_tkt_part","(optionals NULL + bitstring reduced to 24 bits)","63 81 A4 30 81 A1 A0 06 03 04 00 FE DC BA A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
352
 
 
353
 
    ktest_empty_enc_tkt_part(&ref);
354
 
  }  
355
 
  
356
 
  /****************************************************************/
357
 
  /* decode_krb5_enc_kdc_rep_part */
358
 
  {
359
 
    setup(krb5_enc_kdc_rep_part,"krb5_enc_kdc_rep_part",ktest_make_sample_enc_kdc_rep_part);
360
 
  
361
 
#ifdef KRB5_GENEROUS_LR_TYPE
362
 
    decode_run("enc_kdc_rep_part","(compat_lr_type)","7A 82 01 10 30 82 01 0C A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 38 30 36 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A3 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A4 07 03 05 00 FE DC BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
363
 
#endif
364
 
  
365
 
    decode_run("enc_kdc_rep_part","","7A 82 01 0E 30 82 01 0A A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 36 30 34 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A3 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A4 07 03 05 00 FE DC BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
366
 
  
367
 
    ref.key_exp = 0;
368
 
    /* ref.times.starttime = 0;*/
369
 
    ref.times.starttime = ref.times.authtime;
370
 
    ref.times.renew_till = 0;
371
 
    ref.flags &= ~TKT_FLG_RENEWABLE;
372
 
    ktest_destroy_addresses(&(ref.caddrs));
373
 
  
374
 
#ifdef KRB5_GENEROUS_LR_TYPE
375
 
    decode_run("enc_kdc_rep_part","(optionals NULL)(compat lr_type)","7A 81 B4 30 81 B1 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 38 30 36 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A4 07 03 05 00 FE 5C BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
376
 
#endif
377
 
 
378
 
    decode_run("enc_kdc_rep_part","(optionals NULL)","7A 81 B2 30 81 AF A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 36 30 34 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A4 07 03 05 00 FE 5C BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
379
 
 
380
 
    ktest_empty_enc_kdc_rep_part(&ref);
381
 
  }  
382
 
 
383
 
  /****************************************************************/
384
 
  /* decode_krb5_as_rep */
385
 
  {
386
 
    setup(krb5_kdc_rep,"krb5_kdc_rep",ktest_make_sample_kdc_rep);
387
 
    ref.msg_type = KRB5_AS_REP;
388
 
 
389
 
    decode_run("as_rep","","6B 81 EA 30 81 E7 A0 03 02 01 05 A1 03 02 01 0B A2 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
 
292
        decode_run("ticket","(indefinite lengths + trailing [4] INTEGER)", "61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 A4 03 02 01 01 00 00 00 00",decode_krb5_ticket,ktest_equal_ticket,krb5_free_ticket);
 
293
 
 
294
        ktest_empty_ticket(&ref);
 
295
 
 
296
    }
 
297
 
 
298
    /****************************************************************/
 
299
    /* decode_krb5_encryption_key */
 
300
    {
 
301
        setup(krb5_keyblock,"krb5_keyblock",ktest_make_sample_keyblock);
 
302
 
 
303
        decode_run("encryption_key","","30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
304
 
 
305
        decode_run("encryption_key","(+ trailing [2] INTEGER)","30 16 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 03 02 01 01",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
306
        decode_run("encryption_key","(+ trailing [2] SEQUENCE {[0] INTEGER})","30 1A A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 07 30 05 A0 03 02 01 01",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
307
        decode_run("encryption_key","(indefinite lengths)","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
308
        decode_run("encryption_key","(indefinite lengths + trailing [2] INTEGER)","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 03 02 01 01 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
309
        decode_run("encryption_key","(indefinite lengths + trailing [2] SEQUENCE {[0] INTEGER})","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 80 30 80 A0 03 02 01 01 00 00 00 00 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
310
        decode_run("encryption_key","(indefinite lengths + trailing SEQUENCE {[0] INTEGER})","30 80 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 30 80 A0 03 02 01 01 00 00 00 00",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
311
        ref.enctype = -1;
 
312
        decode_run("encryption_key","(enctype = -1)","30 11 A0 03 02 01 FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
313
        ref.enctype = -255;
 
314
        decode_run("encryption_key","(enctype = -255)","30 12 A0 04 02 02 FF 01 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
315
        ref.enctype = 255;
 
316
        decode_run("encryption_key","(enctype = 255)","30 12 A0 04 02 02 00 FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
317
        ref.enctype = -2147483648U;
 
318
        decode_run("encryption_key","(enctype = -2147483648)","30 14 A0 06 02 04 80 00 00 00 A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
319
        ref.enctype = 2147483647;
 
320
        decode_run("encryption_key","(enctype = 2147483647)","30 14 A0 06 02 04 7F FF FF FF A1 0A 04 08 31 32 33 34 35 36 37 38",decode_krb5_encryption_key,ktest_equal_encryption_key,krb5_free_keyblock);
 
321
 
 
322
        ktest_empty_keyblock(&ref);
 
323
    }  
 
324
  
 
325
    /****************************************************************/
 
326
    /* decode_krb5_enc_tkt_part */
 
327
    {
 
328
        setup(krb5_enc_tkt_part,"krb5_enc_tkt_part",ktest_make_sample_enc_tkt_part);
 
329
        decode_run("enc_tkt_part","","63 82 01 14 30 82 01 10 A0 07 03 05 00 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 24 30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
 
330
  
 
331
        /* ref.times.starttime = 0; */
 
332
        ref.times.starttime = ref.times.authtime;
 
333
        ref.times.renew_till = 0;
 
334
        ktest_destroy_address(&(ref.caddrs[1]));
 
335
        ktest_destroy_address(&(ref.caddrs[0]));
 
336
        ktest_destroy_authdata(&(ref.authorization_data[1]));
 
337
        ktest_destroy_authdata(&(ref.authorization_data[0]));
 
338
        /* ISODE version fails on the empty caddrs field */
 
339
        ktest_destroy_addresses(&(ref.caddrs));
 
340
        ktest_destroy_authorization_data(&(ref.authorization_data));
 
341
  
 
342
        decode_run("enc_tkt_part","(optionals NULL)","63 81 A5 30 81 A2 A0 07 03 05 00 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part, krb5_free_enc_tkt_part);
 
343
 
 
344
        decode_run("enc_tkt_part","(optionals NULL + bitstring enlarged to 38 bits)","63 81 A6 30 81 A3 A0 08 03 06 02 FE DC BA 98 DC A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
 
345
 
 
346
        decode_run("enc_tkt_part","(optionals NULL + bitstring enlarged to 40 bits)","63 81 A6 30 81 A3 A0 08 03 06 00 FE DC BA 98 DE A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
 
347
 
 
348
        decode_run("enc_tkt_part","(optionals NULL + bitstring reduced to 29 bits)","63 81 A5 30 81 A2 A0 07 03 05 03 FE DC BA 98 A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
 
349
 
 
350
        ref.flags &= 0xFFFFFF00;
 
351
 
 
352
        decode_run("enc_tkt_part","(optionals NULL + bitstring reduced to 24 bits)","63 81 A4 30 81 A1 A0 06 03 04 00 FE DC BA A1 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 2E 30 2C A0 03 02 01 01 A1 25 04 23 45 44 55 2C 4D 49 54 2E 2C 41 54 48 45 4E 41 2E 2C 57 41 53 48 49 4E 47 54 4F 4E 2E 45 44 55 2C 43 53 2E A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_enc_tkt_part,ktest_equal_enc_tkt_part,krb5_free_enc_tkt_part);
 
353
 
 
354
        ktest_empty_enc_tkt_part(&ref);
 
355
    }  
 
356
  
 
357
    /****************************************************************/
 
358
    /* decode_krb5_enc_kdc_rep_part */
 
359
    {
 
360
        setup(krb5_enc_kdc_rep_part,"krb5_enc_kdc_rep_part",ktest_make_sample_enc_kdc_rep_part);
 
361
  
 
362
#ifdef KRB5_GENEROUS_LR_TYPE
 
363
        decode_run("enc_kdc_rep_part","(compat_lr_type)","7A 82 01 10 30 82 01 0C A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 38 30 36 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A3 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A4 07 03 05 00 FE DC BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
 
364
#endif
 
365
  
 
366
        decode_run("enc_kdc_rep_part","","7A 82 01 0E 30 82 01 0A A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 36 30 34 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A3 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A4 07 03 05 00 FE DC BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
 
367
  
 
368
        ref.key_exp = 0;
 
369
        /* ref.times.starttime = 0;*/
 
370
        ref.times.starttime = ref.times.authtime;
 
371
        ref.times.renew_till = 0;
 
372
        ref.flags &= ~TKT_FLG_RENEWABLE;
 
373
        ktest_destroy_addresses(&(ref.caddrs));
 
374
  
 
375
#ifdef KRB5_GENEROUS_LR_TYPE
 
376
        decode_run("enc_kdc_rep_part","(optionals NULL)(compat lr_type)","7A 81 B4 30 81 B1 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 38 30 36 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 19 A0 04 02 02 00 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A4 07 03 05 00 FE 5C BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
 
377
#endif
 
378
 
 
379
        decode_run("enc_kdc_rep_part","(optionals NULL)","7A 81 B2 30 81 AF A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 36 30 34 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A 30 18 A0 03 02 01 FB A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 03 02 01 2A A4 07 03 05 00 FE 5C BA 98 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_enc_kdc_rep_part,ktest_equal_enc_kdc_rep_part,krb5_free_enc_kdc_rep_part);
 
380
 
 
381
        ktest_empty_enc_kdc_rep_part(&ref);
 
382
    }  
 
383
 
 
384
    /****************************************************************/
 
385
    /* decode_krb5_as_rep */
 
386
    {
 
387
        setup(krb5_kdc_rep,"krb5_kdc_rep",ktest_make_sample_kdc_rep);
 
388
        ref.msg_type = KRB5_AS_REP;
 
389
 
 
390
        decode_run("as_rep","","6B 81 EA 30 81 E7 A0 03 02 01 05 A1 03 02 01 0B A2 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
390
391
 
391
392
/*
392
393
  6B 80 30 80
393
 
    A0 03 02 01 05
394
 
    A1 03 02 01 0B
395
 
    A2 80 30 80
396
 
      30 80
397
 
        A1 03 02 01 0D
398
 
        A2 09 04 07 70 61 2D 64 61 74 61
399
 
      00 00
400
 
      30 80
401
 
        A1 03 02 01 0D
402
 
        A2 09 04 07 70 61 2D 64 61 74 61
403
 
      00 00
404
 
    00 00 00 00
405
 
    A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55
406
 
    A4 80 30 80
407
 
      A0 03 02 01 01
408
 
      A1 80 30 80
409
 
        1B 06 68 66 74 73 61 69
410
 
        1B 05 65 78 74 72 61
411
 
      00 00 00 00
412
 
    00 00 00 00
413
 
    A5 80 61 80 30 80
414
 
      A0 03 02 01 05
415
 
      A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55
416
 
      A2 80 30 80
417
 
        A0 03 02 01 01
418
 
        A1 80 30 80
419
 
          1B 06 68 66 74 73 61 69
420
 
          1B 05 65 78 74 72 61
421
 
        00 00 00 00
422
 
      00 00 00 00
423
 
      A3 80 30 80
424
 
        A0 03 02 01 00
425
 
        A1 03 02 01 05
426
 
        A2 17 04 15 6B 72 62 41 53 4E 2E 31
427
 
          20 74 65 73 74 20 6D 65
428
 
          73 73 61 67 65
429
 
      00 00 00 00
430
 
    00 00 00 00 00 00
431
 
    A6 80 30 80
432
 
      A0 03 02 01 00
433
 
      A1 03 02 01 05
434
 
      A2 17 04 15 6B 72 62 41 53 4E 2E 31
435
 
        20 74 65 73 74 20 6D 65
436
 
        73 73 61 67 65
437
 
    00 00 00 00
 
394
  A0 03 02 01 05
 
395
  A1 03 02 01 0B
 
396
  A2 80 30 80
 
397
  30 80
 
398
  A1 03 02 01 0D
 
399
  A2 09 04 07 70 61 2D 64 61 74 61
 
400
  00 00
 
401
  30 80
 
402
  A1 03 02 01 0D
 
403
  A2 09 04 07 70 61 2D 64 61 74 61
 
404
  00 00
 
405
  00 00 00 00
 
406
  A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55
 
407
  A4 80 30 80
 
408
  A0 03 02 01 01
 
409
  A1 80 30 80
 
410
  1B 06 68 66 74 73 61 69
 
411
  1B 05 65 78 74 72 61
 
412
  00 00 00 00
 
413
  00 00 00 00
 
414
  A5 80 61 80 30 80
 
415
  A0 03 02 01 05
 
416
  A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55
 
417
  A2 80 30 80
 
418
  A0 03 02 01 01
 
419
  A1 80 30 80
 
420
  1B 06 68 66 74 73 61 69
 
421
  1B 05 65 78 74 72 61
 
422
  00 00 00 00
 
423
  00 00 00 00
 
424
  A3 80 30 80
 
425
  A0 03 02 01 00
 
426
  A1 03 02 01 05
 
427
  A2 17 04 15 6B 72 62 41 53 4E 2E 31
 
428
  20 74 65 73 74 20 6D 65
 
429
  73 73 61 67 65
 
430
  00 00 00 00
 
431
  00 00 00 00 00 00
 
432
  A6 80 30 80
 
433
  A0 03 02 01 00
 
434
  A1 03 02 01 05
 
435
  A2 17 04 15 6B 72 62 41 53 4E 2E 31
 
436
  20 74 65 73 74 20 6D 65
 
437
  73 73 61 67 65
 
438
  00 00 00 00
438
439
  00 00 00 00
439
440
*/
440
 
    decode_run("as_rep","(indefinite lengths)","6B 80 30 80 A0 03 02 01 05 A1 03 02 01 0B A2 80 30 80 30 80 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 00 00 30 80 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 00 00 00 00 00 00 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A5 80 61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00 00 00 A6 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
441
 
    ktest_destroy_pa_data_array(&(ref.padata));
442
 
    decode_run("as_rep","(optionals NULL)","6B 81 C2 30 81 BF A0 03 02 01 05 A1 03 02 01 0B A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
443
 
 
444
 
  ktest_empty_kdc_rep(&ref);
445
 
  }  
446
 
  
447
 
  /****************************************************************/
448
 
  /* decode_krb5_tgs_rep */
449
 
  {
450
 
    setup(krb5_kdc_rep,"krb5_kdc_rep",ktest_make_sample_kdc_rep);
451
 
    ref.msg_type = KRB5_TGS_REP;
452
 
 
453
 
    decode_run("tgs_rep","","6D 81 EA 30 81 E7 A0 03 02 01 05 A1 03 02 01 0D A2 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_rep,ktest_equal_tgs_rep,krb5_free_kdc_rep);
454
 
 
455
 
    ktest_destroy_pa_data_array(&(ref.padata));
456
 
    decode_run("tgs_rep","(optionals NULL)","6D 81 C2 30 81 BF A0 03 02 01 05 A1 03 02 01 0D A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_rep,ktest_equal_tgs_rep,krb5_free_kdc_rep);
457
 
 
458
 
  ktest_empty_kdc_rep(&ref);
459
 
  }  
460
 
  
461
 
  /****************************************************************/
462
 
  /* decode_krb5_ap_req */
463
 
  {
464
 
    setup(krb5_ap_req,"krb5_ap_req",ktest_make_sample_ap_req);
465
 
    decode_run("ap_req","","6E 81 9D 30 81 9A A0 03 02 01 05 A1 03 02 01 0E A2 07 03 05 00 FE DC BA 98 A3 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A4 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ap_req,ktest_equal_ap_req,krb5_free_ap_req);
466
 
    ktest_empty_ap_req(&ref);
467
 
 
468
 
  }  
469
 
 
470
 
  /****************************************************************/
471
 
  /* decode_krb5_ap_rep */
472
 
  {
473
 
    setup(krb5_ap_rep,"krb5_ap_rep",ktest_make_sample_ap_rep);
474
 
    decode_run("ap_rep","","6F 33 30 31 A0 03 02 01 05 A1 03 02 01 0F A2 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ap_rep,ktest_equal_ap_rep,krb5_free_ap_rep);
475
 
    ktest_empty_ap_rep(&ref);
476
 
  }  
477
 
 
478
 
  /****************************************************************/
479
 
  /* decode_krb5_ap_rep_enc_part */
480
 
  {
481
 
    setup(krb5_ap_rep_enc_part,"krb5_ap_rep_enc_part",ktest_make_sample_ap_rep_enc_part);
482
 
 
483
 
    decode_run("ap_rep_enc_part","","7B 36 30 34 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40 A2 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A3 03 02 01 11",decode_krb5_ap_rep_enc_part,ktest_equal_ap_rep_enc_part,krb5_free_ap_rep_enc_part);
484
 
  
485
 
    ktest_destroy_keyblock(&(ref.subkey));
486
 
    ref.seq_number = 0;
487
 
    decode_run("ap_rep_enc_part","(optionals NULL)","7B 1C 30 1A A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40",decode_krb5_ap_rep_enc_part,ktest_equal_ap_rep_enc_part,krb5_free_ap_rep_enc_part);
488
 
 
489
 
    retval = krb5_data_hex_parse(&code, "7B 06 30 04 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40");
490
 
    if (retval) {
491
 
        com_err("krb5_decode_test", retval, "while parsing");
492
 
        exit(1);
493
 
    }
494
 
    retval = decode_krb5_ap_rep_enc_part(&code, &var);
495
 
    if (retval != ASN1_OVERRUN) {
496
 
        printf("ERROR: ");
497
 
    } else {
498
 
        printf("OK: ");
499
 
    }
500
 
    printf("ap_rep_enc_part(optionals NULL + expect ASN1_OVERRUN for inconsistent length of timestamp)\n");
501
 
    krb5_free_data_contents(test_context, &code);
502
 
    krb5_free_ap_rep_enc_part(test_context, var);
503
 
 
504
 
    ktest_empty_ap_rep_enc_part(&ref);
505
 
  }
506
 
  
507
 
  /****************************************************************/
508
 
  /* decode_krb5_as_req */
509
 
  {
510
 
    setup(krb5_kdc_req,"krb5_kdc_req",ktest_make_sample_kdc_req);
511
 
    ref.msg_type = KRB5_AS_REQ;
512
 
 
513
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
514
 
    decode_run("as_req","","6A 82 01 E4 30 82 01 E0 A1 03 02 01 05 A2 03 02 01 0A A3 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A4 82 01 AA 30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
515
 
 
516
 
    ktest_destroy_pa_data_array(&(ref.padata));
517
 
    ktest_destroy_principal(&(ref.client));
518
 
#ifndef ISODE_SUCKS
519
 
    ktest_destroy_principal(&(ref.server));
520
 
#endif
521
 
    ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
522
 
    ref.from = 0;
523
 
    ref.rtime = 0;
524
 
    ktest_destroy_addresses(&(ref.addresses));
525
 
    ktest_destroy_enc_data(&(ref.authorization_data));
526
 
    decode_run("as_req","(optionals NULL except second_ticket)","6A 82 01 14 30 82 01 10 A1 03 02 01 05 A2 03 02 01 0A A4 82 01 02 30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
527
 
    ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
528
 
#ifndef ISODE_SUCKS
529
 
    ktest_make_sample_principal(&(ref.server));
530
 
#endif
531
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
532
 
    decode_run("as_req","(optionals NULL except server)","6A 69 30 67 A1 03 02 01 05 A2 03 02 01 0A A4 5B 30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
533
 
 
534
 
  ktest_empty_kdc_req(&ref);
535
 
 
536
 
  }
537
 
 
538
 
  
539
 
  /****************************************************************/
540
 
  /* decode_krb5_tgs_req */
541
 
  {
542
 
    setup(krb5_kdc_req,"krb5_kdc_req",ktest_make_sample_kdc_req);
543
 
    ref.msg_type = KRB5_TGS_REQ;
544
 
 
545
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
546
 
    decode_run("tgs_req","","6C 82 01 E4 30 82 01 E0 A1 03 02 01 05 A2 03 02 01 0C A3 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A4 82 01 AA 30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
547
 
 
548
 
    ktest_destroy_pa_data_array(&(ref.padata));
549
 
    ktest_destroy_principal(&(ref.client));
550
 
#ifndef ISODE_SUCKS
551
 
    ktest_destroy_principal(&(ref.server));
552
 
#endif
553
 
    ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
554
 
    ref.from = 0;
555
 
    ref.rtime = 0;
556
 
    ktest_destroy_addresses(&(ref.addresses));
557
 
    ktest_destroy_enc_data(&(ref.authorization_data));
558
 
    decode_run("tgs_req","(optionals NULL except second_ticket)","6C 82 01 14 30 82 01 10 A1 03 02 01 05 A2 03 02 01 0C A4 82 01 02 30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
559
 
 
560
 
    ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
561
 
#ifndef ISODE_SUCKS
562
 
    ktest_make_sample_principal(&(ref.server));
563
 
#endif
564
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
565
 
    decode_run("tgs_req","(optionals NULL except server)","6C 69 30 67 A1 03 02 01 05 A2 03 02 01 0C A4 5B 30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
566
 
 
567
 
    ktest_empty_kdc_req(&ref);
568
 
  }
569
 
  
570
 
  /****************************************************************/
571
 
  /* decode_krb5_kdc_req_body */
572
 
  {
573
 
    krb5_kdc_req ref, *var;
574
 
    memset(&ref, 0, sizeof(krb5_kdc_req));
575
 
    retval = ktest_make_sample_kdc_req_body(&ref);
576
 
    if(retval){
577
 
      com_err("making sample kdc_req_body",retval,"");
578
 
      exit(1);
579
 
    }
580
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
581
 
    decode_run("kdc_req_body","","30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
582
 
 
583
 
    ktest_destroy_principal(&(ref.client));
584
 
#ifndef ISODE_SUCKS
585
 
    ktest_destroy_principal(&(ref.server));
586
 
#endif
587
 
    ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
588
 
    ref.from = 0;
589
 
    ref.rtime = 0;
590
 
    ktest_destroy_addresses(&(ref.addresses));
591
 
    ktest_destroy_enc_data(&(ref.authorization_data));
592
 
    decode_run("kdc_req_body","(optionals NULL except second_ticket)","30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
593
 
 
594
 
    ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
595
 
#ifndef ISODE_SUCKS
596
 
    ktest_make_sample_principal(&(ref.server));
597
 
#endif
598
 
    ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
599
 
    decode_run("kdc_req_body","(optionals NULL except server)","30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
600
 
    ref.nktypes = 0;
601
 
    free(ref.ktype);
602
 
    ref.ktype = NULL;
603
 
    decode_run("kdc_req_body","(optionals NULL except server; zero-length etypes)","30 53 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 02 30 00",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
604
 
 
605
 
    ktest_empty_kdc_req(&ref);
606
 
  }
607
 
 
608
 
  
609
 
  /****************************************************************/
610
 
  /* decode_krb5_safe */
611
 
  {
612
 
    setup(krb5_safe,"krb5_safe",ktest_make_sample_safe);
613
 
    decode_run("safe","","74 6E 30 6C A0 03 02 01 05 A1 03 02 01 14 A2 4F 30 4D A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 05 02 03 01 E2 40 A3 03 02 01 11 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_safe,ktest_equal_safe,krb5_free_safe);
614
 
 
615
 
    ref.timestamp = 0;
616
 
    ref.usec = 0;
617
 
    ref.seq_number = 0;
618
 
    ktest_destroy_address(&(ref.r_address));
619
 
    decode_run("safe","(optionals NULL)","74 3E 30 3C A0 03 02 01 05 A1 03 02 01 14 A2 1F 30 1D A0 0A 04 08 6B 72 62 35 64 61 74 61 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_safe,ktest_equal_safe,krb5_free_safe);
620
 
 
621
 
    ktest_empty_safe(&ref);
622
 
  }
623
 
  
624
 
  /****************************************************************/
625
 
  /* decode_krb5_priv */
626
 
  {
627
 
    setup(krb5_priv,"krb5_priv",ktest_make_sample_priv);
628
 
    decode_run("priv","","75 33 30 31 A0 03 02 01 05 A1 03 02 01 15 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_priv,ktest_equal_priv,krb5_free_priv);
629
 
    ktest_empty_priv(&ref);
630
 
  }
631
 
  
632
 
  /****************************************************************/
633
 
  /* decode_krb5_enc_priv_part */
634
 
  {
635
 
    setup(krb5_priv_enc_part,"krb5_priv_enc_part",ktest_make_sample_priv_enc_part);
636
 
    decode_run("enc_priv_part","","7C 4F 30 4D A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 05 02 03 01 E2 40 A3 03 02 01 11 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_priv_part,ktest_equal_enc_priv_part,krb5_free_priv_enc_part);
637
 
 
638
 
    ref.timestamp = 0;
639
 
    ref.usec = 0;
640
 
    ref.seq_number = 0;
641
 
    ktest_destroy_address(&(ref.r_address));
642
 
    decode_run("enc_priv_part","(optionals NULL)","7C 1F 30 1D A0 0A 04 08 6B 72 62 35 64 61 74 61 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_priv_part,ktest_equal_enc_priv_part,krb5_free_priv_enc_part);
643
 
    ktest_empty_priv_enc_part(&ref);
644
 
  }
645
 
  
646
 
  /****************************************************************/
647
 
  /* decode_krb5_cred */
648
 
  {
649
 
    setup(krb5_cred,"krb5_cred",ktest_make_sample_cred);
650
 
    decode_run("cred","","76 81 F6 30 81 F3 A0 03 02 01 05 A1 03 02 01 16 A2 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_cred,ktest_equal_cred,krb5_free_cred);
651
 
    ktest_empty_cred(&ref);
652
 
  }
653
 
  
654
 
  /****************************************************************/
655
 
  /* decode_krb5_enc_cred_part */
656
 
  {
657
 
    setup(krb5_cred_enc_part,"krb5_cred_enc_part",ktest_make_sample_cred_enc_part);
658
 
    decode_run("enc_cred_part","","7D 82 02 23 30 82 02 1F A0 82 01 DA 30 82 01 D6 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A1 03 02 01 2A A2 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A3 05 02 03 01 E2 40 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_cred_part,ktest_equal_enc_cred_part,krb5_free_cred_enc_part);
659
 
    /* free_cred_enc_part does not free the pointer */
660
 
    krb5_xfree(var);
661
 
    ktest_destroy_principal(&(ref.ticket_info[0]->client));
662
 
    ktest_destroy_principal(&(ref.ticket_info[0]->server));
663
 
    ref.ticket_info[0]->flags = 0;
664
 
    ref.ticket_info[0]->times.authtime = 0;
665
 
    ref.ticket_info[0]->times.starttime = 0;
666
 
    ref.ticket_info[0]->times.endtime = 0;
667
 
    ref.ticket_info[0]->times.renew_till = 0;
668
 
    ktest_destroy_addresses(&(ref.ticket_info[0]->caddrs));
669
 
    ref.nonce = 0;
670
 
    ref.timestamp = 0;
671
 
    ref.usec = 0;
672
 
    ktest_destroy_address(&(ref.s_address));
673
 
    ktest_destroy_address(&(ref.r_address));
674
 
    decode_run("enc_cred_part","(optionals NULL)","7D 82 01 0E 30 82 01 0A A0 82 01 06 30 82 01 02 30 15 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_cred_part,ktest_equal_enc_cred_part,krb5_free_cred_enc_part);
675
 
    /* free_cred_enc_part does not free the pointer */
676
 
    krb5_xfree(var);
677
 
 
678
 
    ktest_empty_cred_enc_part(&ref);
679
 
  }
680
 
  
681
 
  /****************************************************************/
682
 
  /* decode_krb5_error */
683
 
  {
684
 
    setup(krb5_error,"krb5_error",ktest_make_sample_error);
685
 
    decode_run("error","","7E 81 BA 30 81 B7 A0 03 02 01 05 A1 03 02 01 1E A2 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A3 05 02 03 01 E2 40 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 05 02 03 01 E2 40 A6 03 02 01 3C A7 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A8 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 0A 1B 08 6B 72 62 35 64 61 74 61 AC 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_error,ktest_equal_error,krb5_free_error);
686
 
 
687
 
    ref.ctime = 0;
688
 
    ktest_destroy_principal(&(ref.client));
689
 
    ktest_empty_data(&(ref.text));
690
 
    ktest_empty_data(&(ref.e_data));
691
 
    decode_run("error","(optionals NULL)","7E 60 30 5E A0 03 02 01 05 A1 03 02 01 1E A3 05 02 03 01 E2 40 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 05 02 03 01 E2 40 A6 03 02 01 3C A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_error,ktest_equal_error,krb5_free_error);
692
 
 
693
 
    ktest_empty_error(&ref);
694
 
  }
695
 
  
696
 
  /****************************************************************/
697
 
  /* decode_krb5_authdata */
698
 
  {
699
 
    krb5_authdata **ref, **var;
700
 
    retval = ktest_make_sample_authorization_data(&ref);
701
 
    if(retval){
702
 
      com_err("making sample authorization_data",retval,"");
703
 
      exit(1);
704
 
    }
705
 
    retval = krb5_data_hex_parse(&code,"30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72");
706
 
    if(retval){
707
 
      com_err("parsing authorization_data",retval,"");
708
 
      exit(1);
709
 
    }
710
 
    retval = decode_krb5_authdata(&code,&var);
711
 
    if(retval) com_err("decoding authorization_data",retval,"");
712
 
    test(ktest_equal_authorization_data(ref,var),"authorization_data\n")
713
 
    krb5_free_data_contents(test_context, &code);
714
 
    krb5_free_authdata(test_context, var);
715
 
    ktest_destroy_authorization_data(&ref);
716
 
  }
717
 
  
718
 
  /****************************************************************/
719
 
  /* decode_pwd_sequence */
720
 
  {
721
 
    setup(passwd_phrase_element,"passwd_phrase_element",ktest_make_sample_passwd_phrase_element);
722
 
    decode_run("PasswdSequence","","30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_pwd_sequence,ktest_equal_passwd_phrase_element,krb5_ktest_free_pwd_sequence);
723
 
    ktest_empty_passwd_phrase_element(&ref);
724
 
  }
725
 
 
726
 
  /****************************************************************/
727
 
  /* decode_passwd_data */
728
 
  {
729
 
    setup(krb5_pwd_data,"krb5_pwd_data",ktest_make_sample_krb5_pwd_data);
730
 
    decode_run("PasswdData","","30 3D A0 03 02 01 02 A1 36 30 34 30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61 30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_pwd_data,ktest_equal_krb5_pwd_data,krb5_free_pwd_data);
731
 
    ktest_empty_pwd_data(&ref);
732
 
  }
733
 
 
734
 
  /****************************************************************/
735
 
  /* decode_krb5_padata_sequence */
736
 
  {
737
 
    krb5_pa_data **ref, **var;
738
 
    retval = ktest_make_sample_pa_data_array(&ref);
739
 
    if(retval){
740
 
      com_err("making sample pa_data array",retval,"");
741
 
      exit(1);
742
 
    }
743
 
    retval = krb5_data_hex_parse(&code,"30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61");
744
 
    if(retval){
745
 
      com_err("parsing padata_sequence",retval,"");
746
 
      exit(1);
747
 
    }
748
 
    retval = decode_krb5_padata_sequence(&code,&var);
749
 
    if(retval) com_err("decoding padata_sequence",retval,"");
750
 
    test(ktest_equal_sequence_of_pa_data(ref,var),"pa_data\n");
751
 
    krb5_free_pa_data(test_context, var);
752
 
    krb5_free_data_contents(test_context, &code);
753
 
    ktest_destroy_pa_data_array(&ref);
754
 
  }
755
 
  
756
 
  /****************************************************************/
757
 
  /* decode_krb5_padata_sequence (empty) */
758
 
  {
759
 
    krb5_pa_data **ref, **var;
760
 
    retval = ktest_make_sample_empty_pa_data_array(&ref);
761
 
    if(retval){
762
 
      com_err("making sample empty pa_data array",retval,"");
763
 
      exit(1);
764
 
    }
765
 
    retval = krb5_data_hex_parse(&code,"30 00");
766
 
    if(retval){
767
 
      com_err("parsing padata_sequence (empty)",retval,"");
768
 
      exit(1);
769
 
    }
770
 
    retval = decode_krb5_padata_sequence(&code,&var);
771
 
    if(retval) com_err("decoding padata_sequence (empty)",retval,"");
772
 
    test(ktest_equal_sequence_of_pa_data(ref,var),"pa_data (empty)\n");
773
 
    krb5_free_pa_data(test_context, var);
774
 
    krb5_free_data_contents(test_context, &code);
775
 
    ktest_destroy_pa_data_array(&ref);
776
 
  }
777
 
  
778
 
  /****************************************************************/
779
 
  /* decode_pwd_sequence */
780
 
  {
781
 
    setup(krb5_alt_method,"krb5_alt_method",ktest_make_sample_alt_method);
782
 
    decode_run("alt_method","","30 0F A0 03 02 01 2A A1 08 04 06 73 65 63 72 65 74",decode_krb5_alt_method,ktest_equal_krb5_alt_method,krb5_ktest_free_alt_method);
783
 
    ref.length = 0;
784
 
    decode_run("alt_method (no data)","","30 05 A0 03 02 01 2A",decode_krb5_alt_method,ktest_equal_krb5_alt_method,krb5_ktest_free_alt_method);
785
 
    ktest_empty_alt_method(&ref);
786
 
  }
787
 
 
788
 
  /****************************************************************/
789
 
  /* decode_etype_info */
790
 
  {
791
 
      krb5_etype_info ref, var;
792
 
 
793
 
      retval = ktest_make_sample_etype_info(&ref);
794
 
      if (retval) {
795
 
          com_err("krb5_decode_test", retval,
796
 
                  "while making sample etype info");
797
 
          exit(1);
798
 
      }
799
 
      retval = krb5_data_hex_parse(&code,"30 33 30 14 A0 03 02 01 00 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 30 30 05 A0 03 02 01 01 30 14 A0 03 02 01 02 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 32");
800
 
      if(retval){
801
 
          com_err("krb5_decode_test", retval, "while parsing etype_info");
802
 
          exit(1);
803
 
      }
804
 
      retval = decode_krb5_etype_info(&code,&var);
805
 
      if(retval){
806
 
          com_err("krb5_decode_test", retval, "while decoding etype_info");
807
 
      }
808
 
      test(ktest_equal_etype_info(ref,var),"etype_info\n");
809
 
 
810
 
      ktest_destroy_etype_info(var);
811
 
      ktest_destroy_etype_info_entry(ref[2]);      ref[2] = 0;
812
 
      ktest_destroy_etype_info_entry(ref[1]);      ref[1] = 0;
813
 
      krb5_free_data_contents(test_context, &code);
814
 
      
815
 
      retval = krb5_data_hex_parse(&code,"30 16 30 14 A0 03 02 01 00 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 30");
816
 
      if(retval){
817
 
          com_err("krb5_decode_test", retval,
818
 
                  "while parsing etype_info (only one)");
819
 
          exit(1);
820
 
      }
821
 
      retval = decode_krb5_etype_info(&code,&var);
822
 
      if(retval){
823
 
          com_err("krb5_decode_test", retval,
824
 
                  "while decoding etype_info (only one)");
825
 
      }
826
 
      test(ktest_equal_etype_info(ref,var),"etype_info (only one)\n");
827
 
      
828
 
      ktest_destroy_etype_info(var);
829
 
      ktest_destroy_etype_info_entry(ref[0]);      ref[0] = 0;
830
 
      krb5_free_data_contents(test_context, &code);
831
 
      
832
 
      retval = krb5_data_hex_parse(&code,"30 00");
833
 
      if(retval){
834
 
          com_err("krb5_decode_test", retval,
835
 
                  "while parsing etype_info (no info)");
836
 
          exit(1);
837
 
      }
838
 
      retval = decode_krb5_etype_info(&code,&var);
839
 
      if(retval){
840
 
          com_err("krb5_decode_test", retval,
841
 
                  "while decoding etype_info (no info)");
842
 
      }
843
 
      test(ktest_equal_etype_info(ref,var),"etype_info (no info)\n");
844
 
 
845
 
      krb5_free_data_contents(test_context, &code);
846
 
      ktest_destroy_etype_info(var);
847
 
      ktest_destroy_etype_info(ref);
848
 
  }
849
 
 
850
 
  /****************************************************************/
851
 
  /* decode_pa_enc_ts */
852
 
  {
853
 
    setup(krb5_pa_enc_ts,"krb5_pa_enc_ts",ktest_make_sample_pa_enc_ts);
854
 
    decode_run("pa_enc_ts","","30 1A A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40",decode_krb5_pa_enc_ts,ktest_equal_krb5_pa_enc_ts,krb5_free_pa_enc_ts);
855
 
    ref.pausec = 0;
856
 
    decode_run("pa_enc_ts (no usec)","","30 13 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_pa_enc_ts,ktest_equal_krb5_pa_enc_ts,krb5_free_pa_enc_ts);
857
 
  }
858
 
  
859
 
  /****************************************************************/
860
 
  /* decode_enc_data */
861
 
  {
862
 
    setup(krb5_enc_data,"krb5_enc_data",ktest_make_sample_enc_data);
863
 
    decode_run("enc_data","","30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_enc_data,ktest_equal_enc_data,krb5_ktest_free_enc_data);
864
 
    ktest_destroy_enc_data(&ref);
865
 
  }
866
 
  
867
 
  /****************************************************************/
868
 
  /* decode_sam_challenge */
869
 
  {
870
 
    setup(krb5_sam_challenge,"krb5_sam_challenge",ktest_make_sample_sam_challenge);
871
 
    decode_run("sam_challenge","","30 78 A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0B 04 09 74 79 70 65 20 6E 61 6D 65 A3 02 04 00 A4 11 04 0F 63 68 61 6C 6C 65 6E 67 65 20 6C 61 62 65 6C A5 10 04 0E 63 68 61 6C 6C 65 6E 67 65 20 69 70 73 65 A6 16 04 14 72 65 73 70 6F 6E 73 65 5F 70 72 6F 6D 70 74 20 69 70 73 65 A7 02 04 00 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_sam_challenge,ktest_equal_sam_challenge,krb5_free_sam_challenge);
872
 
    ktest_empty_sam_challenge(&ref);
873
 
 
874
 
  }
875
 
  
876
 
  /****************************************************************/
877
 
  /* decode_sam_challenge */
878
 
  {
879
 
    setup(krb5_sam_challenge,"krb5_sam_challenge - no optionals",ktest_make_sample_sam_challenge);
880
 
    decode_run("sam_challenge","","30 70 A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0B 04 09 74 79 70 65 20 6E 61 6D 65 A4 11 04 0F 63 68 61 6C 6C 65 6E 67 65 20 6C 61 62 65 6C A5 10 04 0E 63 68 61 6C 6C 65 6E 67 65 20 69 70 73 65 A6 16 04 14 72 65 73 70 6F 6E 73 65 5F 70 72 6F 6D 70 74 20 69 70 73 65 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_sam_challenge,ktest_equal_sam_challenge,krb5_free_sam_challenge);
881
 
    ktest_empty_sam_challenge(&ref);
882
 
  }
883
 
  
884
 
  /****************************************************************/
885
 
  /* decode_sam_response */
886
 
  {
887
 
    setup(krb5_sam_response,"krb5_sam_response",ktest_make_sample_sam_response);
888
 
    decode_run("sam_response","","30 6A A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0C 04 0A 74 72 61 63 6B 20 64 61 74 61 A3 14 30 12 A0 03 02 01 01 A1 04 02 02 07 96 A2 05 04 03 6B 65 79 A4 1C 30 1A A0 03 02 01 01 A1 04 02 02 0D 36 A2 0D 04 0B 6E 6F 6E 63 65 20 6F 72 20 74 73 A5 05 02 03 54 32 10 A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_sam_response,ktest_equal_sam_response,krb5_free_sam_response);
889
 
 
890
 
    ktest_empty_sam_response(&ref);
891
 
  }
892
 
  
893
 
  krb5_free_context(test_context);
894
 
  exit(error_count);
895
 
  return(error_count);
 
441
        decode_run("as_rep","(indefinite lengths)","6B 80 30 80 A0 03 02 01 05 A1 03 02 01 0B A2 80 30 80 30 80 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 00 00 30 80 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 00 00 00 00 00 00 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A5 80 61 80 30 80 A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 80 30 80 A0 03 02 01 01 A1 80 30 80 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 00 00 00 00 00 00 00 00 A3 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00 00 00 A6 80 30 80 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 00 00 00 00 00 00 00 00",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
 
442
        ktest_destroy_pa_data_array(&(ref.padata));
 
443
        decode_run("as_rep","(optionals NULL)","6B 81 C2 30 81 BF A0 03 02 01 05 A1 03 02 01 0B A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_rep,ktest_equal_as_rep,krb5_free_kdc_rep);
 
444
 
 
445
        ktest_empty_kdc_rep(&ref);
 
446
    }  
 
447
  
 
448
    /****************************************************************/
 
449
    /* decode_krb5_tgs_rep */
 
450
    {
 
451
        setup(krb5_kdc_rep,"krb5_kdc_rep",ktest_make_sample_kdc_rep);
 
452
        ref.msg_type = KRB5_TGS_REP;
 
453
 
 
454
        decode_run("tgs_rep","","6D 81 EA 30 81 E7 A0 03 02 01 05 A1 03 02 01 0D A2 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_rep,ktest_equal_tgs_rep,krb5_free_kdc_rep);
 
455
 
 
456
        ktest_destroy_pa_data_array(&(ref.padata));
 
457
        decode_run("tgs_rep","(optionals NULL)","6D 81 C2 30 81 BF A0 03 02 01 05 A1 03 02 01 0D A3 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A4 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A6 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_rep,ktest_equal_tgs_rep,krb5_free_kdc_rep);
 
458
 
 
459
        ktest_empty_kdc_rep(&ref);
 
460
    }  
 
461
  
 
462
    /****************************************************************/
 
463
    /* decode_krb5_ap_req */
 
464
    {
 
465
        setup(krb5_ap_req,"krb5_ap_req",ktest_make_sample_ap_req);
 
466
        decode_run("ap_req","","6E 81 9D 30 81 9A A0 03 02 01 05 A1 03 02 01 0E A2 07 03 05 00 FE DC BA 98 A3 5E 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A4 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ap_req,ktest_equal_ap_req,krb5_free_ap_req);
 
467
        ktest_empty_ap_req(&ref);
 
468
 
 
469
    }  
 
470
 
 
471
    /****************************************************************/
 
472
    /* decode_krb5_ap_rep */
 
473
    {
 
474
        setup(krb5_ap_rep,"krb5_ap_rep",ktest_make_sample_ap_rep);
 
475
        decode_run("ap_rep","","6F 33 30 31 A0 03 02 01 05 A1 03 02 01 0F A2 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_ap_rep,ktest_equal_ap_rep,krb5_free_ap_rep);
 
476
        ktest_empty_ap_rep(&ref);
 
477
    }  
 
478
 
 
479
    /****************************************************************/
 
480
    /* decode_krb5_ap_rep_enc_part */
 
481
    {
 
482
        setup(krb5_ap_rep_enc_part,"krb5_ap_rep_enc_part",ktest_make_sample_ap_rep_enc_part);
 
483
 
 
484
        decode_run("ap_rep_enc_part","","7B 36 30 34 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40 A2 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A3 03 02 01 11",decode_krb5_ap_rep_enc_part,ktest_equal_ap_rep_enc_part,krb5_free_ap_rep_enc_part);
 
485
  
 
486
        ktest_destroy_keyblock(&(ref.subkey));
 
487
        ref.seq_number = 0;
 
488
        decode_run("ap_rep_enc_part","(optionals NULL)","7B 1C 30 1A A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40",decode_krb5_ap_rep_enc_part,ktest_equal_ap_rep_enc_part,krb5_free_ap_rep_enc_part);
 
489
 
 
490
        retval = krb5_data_hex_parse(&code, "7B 06 30 04 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40");
 
491
        if (retval) {
 
492
            com_err("krb5_decode_test", retval, "while parsing");
 
493
            exit(1);
 
494
        }
 
495
        retval = decode_krb5_ap_rep_enc_part(&code, &var);
 
496
        if (retval != ASN1_OVERRUN) {
 
497
            printf("ERROR: ");
 
498
        } else {
 
499
            printf("OK: ");
 
500
        }
 
501
        printf("ap_rep_enc_part(optionals NULL + expect ASN1_OVERRUN for inconsistent length of timestamp)\n");
 
502
        krb5_free_data_contents(test_context, &code);
 
503
        krb5_free_ap_rep_enc_part(test_context, var);
 
504
 
 
505
        ktest_empty_ap_rep_enc_part(&ref);
 
506
    }
 
507
  
 
508
    /****************************************************************/
 
509
    /* decode_krb5_as_req */
 
510
    {
 
511
        setup(krb5_kdc_req,"krb5_kdc_req",ktest_make_sample_kdc_req);
 
512
        ref.msg_type = KRB5_AS_REQ;
 
513
 
 
514
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
515
        decode_run("as_req","","6A 82 01 E4 30 82 01 E0 A1 03 02 01 05 A2 03 02 01 0A A3 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A4 82 01 AA 30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
 
516
 
 
517
        ktest_destroy_pa_data_array(&(ref.padata));
 
518
        ktest_destroy_principal(&(ref.client));
 
519
#ifndef ISODE_SUCKS
 
520
        ktest_destroy_principal(&(ref.server));
 
521
#endif
 
522
        ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
 
523
        ref.from = 0;
 
524
        ref.rtime = 0;
 
525
        ktest_destroy_addresses(&(ref.addresses));
 
526
        ktest_destroy_enc_data(&(ref.authorization_data));
 
527
        decode_run("as_req","(optionals NULL except second_ticket)","6A 82 01 14 30 82 01 10 A1 03 02 01 05 A2 03 02 01 0A A4 82 01 02 30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
 
528
        ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
 
529
#ifndef ISODE_SUCKS
 
530
        ktest_make_sample_principal(&(ref.server));
 
531
#endif
 
532
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
533
        decode_run("as_req","(optionals NULL except server)","6A 69 30 67 A1 03 02 01 05 A2 03 02 01 0A A4 5B 30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_as_req,ktest_equal_as_req,krb5_free_kdc_req);
 
534
 
 
535
        ktest_empty_kdc_req(&ref);
 
536
 
 
537
    }
 
538
 
 
539
  
 
540
    /****************************************************************/
 
541
    /* decode_krb5_tgs_req */
 
542
    {
 
543
        setup(krb5_kdc_req,"krb5_kdc_req",ktest_make_sample_kdc_req);
 
544
        ref.msg_type = KRB5_TGS_REQ;
 
545
 
 
546
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
547
        decode_run("tgs_req","","6C 82 01 E4 30 82 01 E0 A1 03 02 01 05 A2 03 02 01 0C A3 26 30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 A4 82 01 AA 30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
 
548
 
 
549
        ktest_destroy_pa_data_array(&(ref.padata));
 
550
        ktest_destroy_principal(&(ref.client));
 
551
#ifndef ISODE_SUCKS
 
552
        ktest_destroy_principal(&(ref.server));
 
553
#endif
 
554
        ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
 
555
        ref.from = 0;
 
556
        ref.rtime = 0;
 
557
        ktest_destroy_addresses(&(ref.addresses));
 
558
        ktest_destroy_enc_data(&(ref.authorization_data));
 
559
        decode_run("tgs_req","(optionals NULL except second_ticket)","6C 82 01 14 30 82 01 10 A1 03 02 01 05 A2 03 02 01 0C A4 82 01 02 30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
 
560
 
 
561
        ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
 
562
#ifndef ISODE_SUCKS
 
563
        ktest_make_sample_principal(&(ref.server));
 
564
#endif
 
565
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
566
        decode_run("tgs_req","(optionals NULL except server)","6C 69 30 67 A1 03 02 01 05 A2 03 02 01 0C A4 5B 30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_tgs_req,ktest_equal_tgs_req,krb5_free_kdc_req);
 
567
 
 
568
        ktest_empty_kdc_req(&ref);
 
569
    }
 
570
  
 
571
    /****************************************************************/
 
572
    /* decode_krb5_kdc_req_body */
 
573
    {
 
574
        krb5_kdc_req ref, *var;
 
575
        memset(&ref, 0, sizeof(krb5_kdc_req));
 
576
        retval = ktest_make_sample_kdc_req_body(&ref);
 
577
        if (retval) {
 
578
            com_err("making sample kdc_req_body",retval,"");
 
579
            exit(1);
 
580
        }
 
581
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
582
        decode_run("kdc_req_body","","30 82 01 A6 A0 07 03 05 00 FE DC BA 90 A1 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 A9 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 AA 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
 
583
 
 
584
        ktest_destroy_principal(&(ref.client));
 
585
#ifndef ISODE_SUCKS
 
586
        ktest_destroy_principal(&(ref.server));
 
587
#endif
 
588
        ref.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
 
589
        ref.from = 0;
 
590
        ref.rtime = 0;
 
591
        ktest_destroy_addresses(&(ref.addresses));
 
592
        ktest_destroy_enc_data(&(ref.authorization_data));
 
593
        decode_run("kdc_req_body","(optionals NULL except second_ticket)","30 81 FF A0 07 03 05 00 FE DC BA 98 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01 AB 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
 
594
 
 
595
        ktest_destroy_sequence_of_ticket(&(ref.second_ticket));
 
596
#ifndef ISODE_SUCKS
 
597
        ktest_make_sample_principal(&(ref.server));
 
598
#endif
 
599
        ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
 
600
        decode_run("kdc_req_body","(optionals NULL except server)","30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
 
601
        ref.nktypes = 0;
 
602
        free(ref.ktype);
 
603
        ref.ktype = NULL;
 
604
        decode_run("kdc_req_body","(optionals NULL except server; zero-length etypes)","30 53 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 02 30 00",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body,krb5_free_kdc_req);
 
605
 
 
606
        ktest_empty_kdc_req(&ref);
 
607
    }
 
608
 
 
609
  
 
610
    /****************************************************************/
 
611
    /* decode_krb5_safe */
 
612
    {
 
613
        setup(krb5_safe,"krb5_safe",ktest_make_sample_safe);
 
614
        decode_run("safe","","74 6E 30 6C A0 03 02 01 05 A1 03 02 01 14 A2 4F 30 4D A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 05 02 03 01 E2 40 A3 03 02 01 11 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_safe,ktest_equal_safe,krb5_free_safe);
 
615
 
 
616
        ref.timestamp = 0;
 
617
        ref.usec = 0;
 
618
        ref.seq_number = 0;
 
619
        ktest_destroy_address(&(ref.r_address));
 
620
        decode_run("safe","(optionals NULL)","74 3E 30 3C A0 03 02 01 05 A1 03 02 01 14 A2 1F 30 1D A0 0A 04 08 6B 72 62 35 64 61 74 61 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A3 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_safe,ktest_equal_safe,krb5_free_safe);
 
621
 
 
622
        ktest_empty_safe(&ref);
 
623
    }
 
624
  
 
625
    /****************************************************************/
 
626
    /* decode_krb5_priv */
 
627
    {
 
628
        setup(krb5_priv,"krb5_priv",ktest_make_sample_priv);
 
629
        decode_run("priv","","75 33 30 31 A0 03 02 01 05 A1 03 02 01 15 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_priv,ktest_equal_priv,krb5_free_priv);
 
630
        ktest_empty_priv(&ref);
 
631
    }
 
632
  
 
633
    /****************************************************************/
 
634
    /* decode_krb5_enc_priv_part */
 
635
    {
 
636
        setup(krb5_priv_enc_part,"krb5_priv_enc_part",ktest_make_sample_priv_enc_part);
 
637
        decode_run("enc_priv_part","","7C 4F 30 4D A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A2 05 02 03 01 E2 40 A3 03 02 01 11 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_priv_part,ktest_equal_enc_priv_part,krb5_free_priv_enc_part);
 
638
 
 
639
        ref.timestamp = 0;
 
640
        ref.usec = 0;
 
641
        ref.seq_number = 0;
 
642
        ktest_destroy_address(&(ref.r_address));
 
643
        decode_run("enc_priv_part","(optionals NULL)","7C 1F 30 1D A0 0A 04 08 6B 72 62 35 64 61 74 61 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_priv_part,ktest_equal_enc_priv_part,krb5_free_priv_enc_part);
 
644
        ktest_empty_priv_enc_part(&ref);
 
645
    }
 
646
  
 
647
    /****************************************************************/
 
648
    /* decode_krb5_cred */
 
649
    {
 
650
        setup(krb5_cred,"krb5_cred",ktest_make_sample_cred);
 
651
        decode_run("cred","","76 81 F6 30 81 F3 A0 03 02 01 05 A1 03 02 01 16 A2 81 BF 30 81 BC 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 61 5C 30 5A A0 03 02 01 05 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65 A3 25 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_cred,ktest_equal_cred,krb5_free_cred);
 
652
        ktest_empty_cred(&ref);
 
653
    }
 
654
  
 
655
    /****************************************************************/
 
656
    /* decode_krb5_enc_cred_part */
 
657
    {
 
658
        setup(krb5_cred_enc_part,"krb5_cred_enc_part",ktest_make_sample_cred_enc_part);
 
659
        decode_run("enc_cred_part","","7D 82 02 23 30 82 02 1F A0 82 01 DA 30 82 01 D6 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A1 03 02 01 2A A2 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A3 05 02 03 01 E2 40 A4 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 A5 0F 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_cred_part,ktest_equal_enc_cred_part,krb5_free_cred_enc_part);
 
660
        /* free_cred_enc_part does not free the pointer */
 
661
        free(var);
 
662
        ktest_destroy_principal(&(ref.ticket_info[0]->client));
 
663
        ktest_destroy_principal(&(ref.ticket_info[0]->server));
 
664
        ref.ticket_info[0]->flags = 0;
 
665
        ref.ticket_info[0]->times.authtime = 0;
 
666
        ref.ticket_info[0]->times.starttime = 0;
 
667
        ref.ticket_info[0]->times.endtime = 0;
 
668
        ref.ticket_info[0]->times.renew_till = 0;
 
669
        ktest_destroy_addresses(&(ref.ticket_info[0]->caddrs));
 
670
        ref.nonce = 0;
 
671
        ref.timestamp = 0;
 
672
        ref.usec = 0;
 
673
        ktest_destroy_address(&(ref.s_address));
 
674
        ktest_destroy_address(&(ref.r_address));
 
675
        decode_run("enc_cred_part","(optionals NULL)","7D 82 01 0E 30 82 01 0A A0 82 01 06 30 82 01 02 30 15 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 30 81 E8 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A2 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A3 07 03 05 00 FE DC BA 98 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A8 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A9 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AA 20 30 1E 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23 30 0D A0 03 02 01 02 A1 06 04 04 12 D0 00 23",decode_krb5_enc_cred_part,ktest_equal_enc_cred_part,krb5_free_cred_enc_part);
 
676
        /* free_cred_enc_part does not free the pointer */
 
677
        free(var);
 
678
 
 
679
        ktest_empty_cred_enc_part(&ref);
 
680
    }
 
681
  
 
682
    /****************************************************************/
 
683
    /* decode_krb5_error */
 
684
    {
 
685
        setup(krb5_error,"krb5_error",ktest_make_sample_error);
 
686
        decode_run("error","","7E 81 BA 30 81 B7 A0 03 02 01 05 A1 03 02 01 1E A2 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A3 05 02 03 01 E2 40 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 05 02 03 01 E2 40 A6 03 02 01 3C A7 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A8 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 AB 0A 1B 08 6B 72 62 35 64 61 74 61 AC 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_error,ktest_equal_error,krb5_free_error);
 
687
 
 
688
        ref.ctime = 0;
 
689
        ktest_destroy_principal(&(ref.client));
 
690
        ktest_empty_data(&(ref.text));
 
691
        ktest_empty_data(&(ref.e_data));
 
692
        decode_run("error","(optionals NULL)","7E 60 30 5E A0 03 02 01 05 A1 03 02 01 1E A3 05 02 03 01 E2 40 A4 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A5 05 02 03 01 E2 40 A6 03 02 01 3C A9 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 AA 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61",decode_krb5_error,ktest_equal_error,krb5_free_error);
 
693
 
 
694
        ktest_empty_error(&ref);
 
695
    }
 
696
  
 
697
    /****************************************************************/
 
698
    /* decode_krb5_authdata */
 
699
    {
 
700
        krb5_authdata **ref, **var;
 
701
        retval = ktest_make_sample_authorization_data(&ref);
 
702
        if (retval) {
 
703
            com_err("making sample authorization_data",retval,"");
 
704
            exit(1);
 
705
        }
 
706
        retval = krb5_data_hex_parse(&code,"30 22 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72 30 0F A0 03 02 01 01 A1 08 04 06 66 6F 6F 62 61 72");
 
707
        if (retval) {
 
708
            com_err("parsing authorization_data",retval,"");
 
709
            exit(1);
 
710
        }
 
711
        retval = decode_krb5_authdata(&code,&var);
 
712
        if (retval) com_err("decoding authorization_data",retval,"");
 
713
        test(ktest_equal_authorization_data(ref,var),"authorization_data\n")
 
714
            krb5_free_data_contents(test_context, &code);
 
715
        krb5_free_authdata(test_context, var);
 
716
        ktest_destroy_authorization_data(&ref);
 
717
    }
 
718
  
 
719
    /****************************************************************/
 
720
    /* decode_pwd_sequence */
 
721
    {
 
722
        setup(passwd_phrase_element,"passwd_phrase_element",ktest_make_sample_passwd_phrase_element);
 
723
        decode_run("PasswdSequence","","30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_pwd_sequence,ktest_equal_passwd_phrase_element,krb5_ktest_free_pwd_sequence);
 
724
        ktest_empty_passwd_phrase_element(&ref);
 
725
    }
 
726
 
 
727
    /****************************************************************/
 
728
    /* decode_passwd_data */
 
729
    {
 
730
        setup(krb5_pwd_data,"krb5_pwd_data",ktest_make_sample_krb5_pwd_data);
 
731
        decode_run("PasswdData","","30 3D A0 03 02 01 02 A1 36 30 34 30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61 30 18 A0 0A 04 08 6B 72 62 35 64 61 74 61 A1 0A 04 08 6B 72 62 35 64 61 74 61",decode_krb5_pwd_data,ktest_equal_krb5_pwd_data,krb5_free_pwd_data);
 
732
        ktest_empty_pwd_data(&ref);
 
733
    }
 
734
 
 
735
    /****************************************************************/
 
736
    /* decode_krb5_padata_sequence */
 
737
    {
 
738
        krb5_pa_data **ref, **var;
 
739
        retval = ktest_make_sample_pa_data_array(&ref);
 
740
        if (retval) {
 
741
            com_err("making sample pa_data array",retval,"");
 
742
            exit(1);
 
743
        }
 
744
        retval = krb5_data_hex_parse(&code,"30 24 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61 30 10 A1 03 02 01 0D A2 09 04 07 70 61 2D 64 61 74 61");
 
745
        if (retval) {
 
746
            com_err("parsing padata_sequence",retval,"");
 
747
            exit(1);
 
748
        }
 
749
        retval = decode_krb5_padata_sequence(&code,&var);
 
750
        if (retval) com_err("decoding padata_sequence",retval,"");
 
751
        test(ktest_equal_sequence_of_pa_data(ref,var),"pa_data\n");
 
752
        krb5_free_pa_data(test_context, var);
 
753
        krb5_free_data_contents(test_context, &code);
 
754
        ktest_destroy_pa_data_array(&ref);
 
755
    }
 
756
  
 
757
    /****************************************************************/
 
758
    /* decode_krb5_padata_sequence (empty) */
 
759
    {
 
760
        krb5_pa_data **ref, **var;
 
761
        retval = ktest_make_sample_empty_pa_data_array(&ref);
 
762
        if (retval) {
 
763
            com_err("making sample empty pa_data array",retval,"");
 
764
            exit(1);
 
765
        }
 
766
        retval = krb5_data_hex_parse(&code,"30 00");
 
767
        if (retval) {
 
768
            com_err("parsing padata_sequence (empty)",retval,"");
 
769
            exit(1);
 
770
        }
 
771
        retval = decode_krb5_padata_sequence(&code,&var);
 
772
        if (retval) com_err("decoding padata_sequence (empty)",retval,"");
 
773
        test(ktest_equal_sequence_of_pa_data(ref,var),"pa_data (empty)\n");
 
774
        krb5_free_pa_data(test_context, var);
 
775
        krb5_free_data_contents(test_context, &code);
 
776
        ktest_destroy_pa_data_array(&ref);
 
777
    }
 
778
  
 
779
    /****************************************************************/
 
780
    /* decode_pwd_sequence */
 
781
    {
 
782
        setup(krb5_alt_method,"krb5_alt_method",ktest_make_sample_alt_method);
 
783
        decode_run("alt_method","","30 0F A0 03 02 01 2A A1 08 04 06 73 65 63 72 65 74",decode_krb5_alt_method,ktest_equal_krb5_alt_method,krb5_ktest_free_alt_method);
 
784
        ref.length = 0;
 
785
        decode_run("alt_method (no data)","","30 05 A0 03 02 01 2A",decode_krb5_alt_method,ktest_equal_krb5_alt_method,krb5_ktest_free_alt_method);
 
786
        ktest_empty_alt_method(&ref);
 
787
    }
 
788
 
 
789
    /****************************************************************/
 
790
    /* decode_etype_info */
 
791
    {
 
792
        krb5_etype_info ref, var;
 
793
 
 
794
        retval = ktest_make_sample_etype_info(&ref);
 
795
        if (retval) {
 
796
            com_err("krb5_decode_test", retval,
 
797
                    "while making sample etype info");
 
798
            exit(1);
 
799
        }
 
800
        retval = krb5_data_hex_parse(&code,"30 33 30 14 A0 03 02 01 00 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 30 30 05 A0 03 02 01 01 30 14 A0 03 02 01 02 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 32");
 
801
        if (retval) {
 
802
            com_err("krb5_decode_test", retval, "while parsing etype_info");
 
803
            exit(1);
 
804
        }
 
805
        retval = decode_krb5_etype_info(&code,&var);
 
806
        if (retval) {
 
807
            com_err("krb5_decode_test", retval, "while decoding etype_info");
 
808
        }
 
809
        test(ktest_equal_etype_info(ref,var),"etype_info\n");
 
810
 
 
811
        ktest_destroy_etype_info(var);
 
812
        ktest_destroy_etype_info_entry(ref[2]);      ref[2] = 0;
 
813
        ktest_destroy_etype_info_entry(ref[1]);      ref[1] = 0;
 
814
        krb5_free_data_contents(test_context, &code);
 
815
      
 
816
        retval = krb5_data_hex_parse(&code,"30 16 30 14 A0 03 02 01 00 A1 0D 04 0B 4D 6F 72 74 6F 6E 27 73 20 23 30");
 
817
        if (retval) {
 
818
            com_err("krb5_decode_test", retval,
 
819
                    "while parsing etype_info (only one)");
 
820
            exit(1);
 
821
        }
 
822
        retval = decode_krb5_etype_info(&code,&var);
 
823
        if (retval) {
 
824
            com_err("krb5_decode_test", retval,
 
825
                    "while decoding etype_info (only one)");
 
826
        }
 
827
        test(ktest_equal_etype_info(ref,var),"etype_info (only one)\n");
 
828
      
 
829
        ktest_destroy_etype_info(var);
 
830
        ktest_destroy_etype_info_entry(ref[0]);      ref[0] = 0;
 
831
        krb5_free_data_contents(test_context, &code);
 
832
      
 
833
        retval = krb5_data_hex_parse(&code,"30 00");
 
834
        if (retval) {
 
835
            com_err("krb5_decode_test", retval,
 
836
                    "while parsing etype_info (no info)");
 
837
            exit(1);
 
838
        }
 
839
        retval = decode_krb5_etype_info(&code,&var);
 
840
        if (retval) {
 
841
            com_err("krb5_decode_test", retval,
 
842
                    "while decoding etype_info (no info)");
 
843
        }
 
844
        test(ktest_equal_etype_info(ref,var),"etype_info (no info)\n");
 
845
 
 
846
        krb5_free_data_contents(test_context, &code);
 
847
        ktest_destroy_etype_info(var);
 
848
        ktest_destroy_etype_info(ref);
 
849
    }
 
850
 
 
851
    /****************************************************************/
 
852
    /* decode_pa_enc_ts */
 
853
    {
 
854
        setup(krb5_pa_enc_ts,"krb5_pa_enc_ts",ktest_make_sample_pa_enc_ts);
 
855
        decode_run("pa_enc_ts","","30 1A A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40",decode_krb5_pa_enc_ts,ktest_equal_krb5_pa_enc_ts,krb5_free_pa_enc_ts);
 
856
        ref.pausec = 0;
 
857
        decode_run("pa_enc_ts (no usec)","","30 13 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_pa_enc_ts,ktest_equal_krb5_pa_enc_ts,krb5_free_pa_enc_ts);
 
858
    }
 
859
  
 
860
    /****************************************************************/
 
861
    /* decode_enc_data */
 
862
    {
 
863
        setup(krb5_enc_data,"krb5_enc_data",ktest_make_sample_enc_data);
 
864
        decode_run("enc_data","","30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65",decode_krb5_enc_data,ktest_equal_enc_data,krb5_ktest_free_enc_data);
 
865
        ktest_destroy_enc_data(&ref);
 
866
    }
 
867
  
 
868
    /****************************************************************/
 
869
    /* decode_sam_challenge */
 
870
    {
 
871
        setup(krb5_sam_challenge,"krb5_sam_challenge",ktest_make_sample_sam_challenge);
 
872
        decode_run("sam_challenge","","30 78 A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0B 04 09 74 79 70 65 20 6E 61 6D 65 A3 02 04 00 A4 11 04 0F 63 68 61 6C 6C 65 6E 67 65 20 6C 61 62 65 6C A5 10 04 0E 63 68 61 6C 6C 65 6E 67 65 20 69 70 73 65 A6 16 04 14 72 65 73 70 6F 6E 73 65 5F 70 72 6F 6D 70 74 20 69 70 73 65 A7 02 04 00 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_sam_challenge,ktest_equal_sam_challenge,krb5_free_sam_challenge);
 
873
        ktest_empty_sam_challenge(&ref);
 
874
 
 
875
    }
 
876
  
 
877
    /****************************************************************/
 
878
    /* decode_sam_challenge */
 
879
    {
 
880
        setup(krb5_sam_challenge,"krb5_sam_challenge - no optionals",ktest_make_sample_sam_challenge);
 
881
        decode_run("sam_challenge","","30 70 A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0B 04 09 74 79 70 65 20 6E 61 6D 65 A4 11 04 0F 63 68 61 6C 6C 65 6E 67 65 20 6C 61 62 65 6C A5 10 04 0E 63 68 61 6C 6C 65 6E 67 65 20 69 70 73 65 A6 16 04 14 72 65 73 70 6F 6E 73 65 5F 70 72 6F 6D 70 74 20 69 70 73 65 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_sam_challenge,ktest_equal_sam_challenge,krb5_free_sam_challenge);
 
882
        ktest_empty_sam_challenge(&ref);
 
883
    }
 
884
  
 
885
    /****************************************************************/
 
886
    /* decode_sam_response */
 
887
    {
 
888
        setup(krb5_sam_response,"krb5_sam_response",ktest_make_sample_sam_response);
 
889
        decode_run("sam_response","","30 6A A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0C 04 0A 74 72 61 63 6B 20 64 61 74 61 A3 14 30 12 A0 03 02 01 01 A1 04 02 02 07 96 A2 05 04 03 6B 65 79 A4 1C 30 1A A0 03 02 01 01 A1 04 02 02 0D 36 A2 0D 04 0B 6E 6F 6E 63 65 20 6F 72 20 74 73 A5 05 02 03 54 32 10 A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A",decode_krb5_sam_response,ktest_equal_sam_response,krb5_free_sam_response);
 
890
 
 
891
        ktest_empty_sam_response(&ref);
 
892
    }
 
893
  
 
894
#ifdef ENABLE_LDAP
 
895
    /* ldap sequence_of_keys */
 
896
    {
 
897
        setup(ldap_seqof_key_data,"ldap_seqof_key_data",
 
898
              ktest_make_sample_ldap_seqof_key_data);
 
899
        decode_run("ldap_seqof_key_data","","30 81 87 A0 03 02 01 01 A1 03 02 01 01 A2 03 02 01 2A A3 03 02 01 0E A4 71 30 6F 30 23 A0 10 30 0E A0 03 02 01 00 A1 07 04 05 73 61 6C 74 30 A1 0F 30 0D A0 03 02 01 02 A1 06 04 04 6B 65 79 30 30 23 A0 10 30 0E A0 03 02 01 01 A1 07 04 05 73 61 6C 74 31 A1 0F 30 0D A0 03 02 01 02 A1 06 04 04 6B 65 79 31 30 23 A0 10 30 0E A0 03 02 01 02 A1 07 04 05 73 61 6C 74 32 A1 0F 30 0D A0 03 02 01 02 A1 06 04 04 6B 65 79 32",acc.asn1_ldap_decode_sequence_of_keys,ktest_equal_ldap_sequence_of_keys,ktest_empty_ldap_seqof_key_data);
 
900
        ktest_empty_ldap_seqof_key_data(test_context, &ref);
 
901
    }
 
902
 
 
903
#endif
 
904
 
 
905
    krb5_free_context(test_context);
 
906
    exit(error_count);
 
907
    return(error_count);
896
908
}
897
909
 
898
910
 
899
911
void krb5_ktest_free_alt_method(krb5_context context, krb5_alt_method *val)
900
912
{
901
 
  if (val->data)
902
 
    krb5_xfree(val->data);
903
 
  krb5_xfree(val);
 
913
    if (val->data)
 
914
        free(val->data);
 
915
    free(val);
904
916
}
905
917
 
906
918
void krb5_ktest_free_pwd_sequence(krb5_context context, 
907
919
                                  passwd_phrase_element *val)
908
920
{
909
 
  krb5_free_data(context, val->passwd);
910
 
  krb5_free_data(context, val->phrase);
911
 
  krb5_xfree(val);
 
921
    krb5_free_data(context, val->passwd);
 
922
    krb5_free_data(context, val->phrase);
 
923
    free(val);
912
924
}
913
925
 
914
926
void krb5_ktest_free_enc_data(krb5_context context, krb5_enc_data *val)
915
927
{
916
 
  if(val) {
917
 
       krb5_free_data_contents(context, &(val->ciphertext));
918
 
       free(val);
919
 
  }
 
928
    if (val) {
 
929
        krb5_free_data_contents(context, &(val->ciphertext));
 
930
        free(val);
 
931
    }
920
932
}