xref: /illumos-gate/usr/src/lib/gss_mechs/mech_krb5/et/krb5_err.c (revision cb6207858a9fcc2feaee22e626912fba281ac969)
1 /*
2  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
5 
6 #pragma ident	"%Z%%M%	%I%	%E% SMI"
7 
8 #include <locale.h>
9 #include <security/cryptoki.h>
10 #include <security/pkcs11.h>
11 
12 const char *
13 krb5_error_table(long errorno) {
14 
15 switch (errorno) {
16 	case 0:
17 		return (dgettext(TEXT_DOMAIN,
18 			"No error"));
19 	case 1:
20 		return (dgettext(TEXT_DOMAIN,
21 			"Client's entry in database has expired"));
22 	case 2:
23 		return (dgettext(TEXT_DOMAIN,
24 			"Server's entry in database has expired"));
25 	case 3:
26 		return (dgettext(TEXT_DOMAIN,
27 			"Requested protocol version not supported"));
28 	case 4:
29 		return (dgettext(TEXT_DOMAIN,
30 			"Client's key is encrypted in an old master key"));
31 	case 5:
32 		return (dgettext(TEXT_DOMAIN,
33 			"Server's key is encrypted in an old master key"));
34 	case 6:
35 		return (dgettext(TEXT_DOMAIN,
36 			"Client not found in Kerberos database"));
37 	case 7:
38 		return (dgettext(TEXT_DOMAIN,
39 			"Server not found in Kerberos database"));
40 	case 8:
41 		return (dgettext(TEXT_DOMAIN,
42 			"Principal has multiple entries in Kerberos database"));
43 	case 9:
44 		return (dgettext(TEXT_DOMAIN,
45 			"Client or server has a null key"));
46 	case 10:
47 		return (dgettext(TEXT_DOMAIN,
48 			"Ticket is ineligible for postdating"));
49 	case 11:
50 		return (dgettext(TEXT_DOMAIN,
51 		"Requested effective lifetime is negative or too short"));
52 	case 12:
53 		return (dgettext(TEXT_DOMAIN,
54 			"KDC policy rejects request"));
55 	case 13:
56 		return (dgettext(TEXT_DOMAIN,
57 			"KDC can't fulfill requested option"));
58 	case 14:
59 		return (dgettext(TEXT_DOMAIN,
60 			"KDC has no support for encryption type"));
61 	case 15:
62 		return (dgettext(TEXT_DOMAIN,
63 			"KDC has no support for checksum type"));
64 	case 16:
65 		return (dgettext(TEXT_DOMAIN,
66 			"KDC has no support for padata type"));
67 	case 17:
68 		return (dgettext(TEXT_DOMAIN,
69 			"KDC has no support for transited type"));
70 	case 18:
71 		return (dgettext(TEXT_DOMAIN,
72 			"Clients credentials have been revoked"));
73 	case 19:
74 		return (dgettext(TEXT_DOMAIN,
75 			"Credentials for server have been revoked"));
76 	case 20:
77 		return (dgettext(TEXT_DOMAIN,
78 			"TGT has been revoked"));
79 	case 21:
80 		return (dgettext(TEXT_DOMAIN,
81 			"Client not yet valid - try again later"));
82 	case 22:
83 		return (dgettext(TEXT_DOMAIN,
84 			"Server not yet valid - try again later"));
85 	case 23:
86 		return (dgettext(TEXT_DOMAIN,
87 			"Password has expired"));
88 	case 24:
89 		return (dgettext(TEXT_DOMAIN,
90 			"Preauthentication failed"));
91 	case 25:
92 		return (dgettext(TEXT_DOMAIN,
93 			"Additional pre-authentication required"));
94 	case 26:
95 		return (dgettext(TEXT_DOMAIN,
96 			"Requested server and ticket don't match"));
97 	case 27:
98 		return (dgettext(TEXT_DOMAIN,
99 			"KRB5 error code 27"));
100 	case 28:
101 		return (dgettext(TEXT_DOMAIN,
102 			"KRB5 error code 28"));
103 	case 29:
104 		return (dgettext(TEXT_DOMAIN,
105 			"KRB5 error code 29"));
106 	case 30:
107 		return (dgettext(TEXT_DOMAIN,
108 			"KRB5 error code 30"));
109 	case 31:
110 		return (dgettext(TEXT_DOMAIN,
111 			"Decrypt integrity check failed"));
112 	case 32:
113 		return (dgettext(TEXT_DOMAIN,
114 			"Ticket expired"));
115 	case 33:
116 		return (dgettext(TEXT_DOMAIN,
117 			"Ticket not yet valid"));
118 	case 34:
119 		return (dgettext(TEXT_DOMAIN,
120 			"Request is a replay"));
121 	case 35:
122 		return (dgettext(TEXT_DOMAIN,
123 			"The ticket isn't for us"));
124 	case 36:
125 		return (dgettext(TEXT_DOMAIN,
126 			"Ticket/authenticator don't match"));
127 	case 37:
128 		return (dgettext(TEXT_DOMAIN,
129 			"Clock skew too great"));
130 	case 38:
131 		return (dgettext(TEXT_DOMAIN,
132 			"Incorrect net address"));
133 	case 39:
134 		return (dgettext(TEXT_DOMAIN,
135 			"Protocol version mismatch"));
136 	case 40:
137 		return (dgettext(TEXT_DOMAIN,
138 			"Invalid message type"));
139 	case 41:
140 		return (dgettext(TEXT_DOMAIN,
141 			"Message stream modified"));
142 	case 42:
143 		return (dgettext(TEXT_DOMAIN,
144 			"Message out of order"));
145 	case 43:
146 		return (dgettext(TEXT_DOMAIN,
147 			"Illegal cross-realm ticket"));
148 	case 44:
149 		return (dgettext(TEXT_DOMAIN,
150 			"Key version is not available"));
151 	case 45:
152 		return (dgettext(TEXT_DOMAIN,
153 			"Service key not available"));
154 	case 46:
155 		return (dgettext(TEXT_DOMAIN,
156 			"Mutual authentication failed"));
157 	case 47:
158 		return (dgettext(TEXT_DOMAIN,
159 			"Incorrect message direction"));
160 	case 48:
161 		return (dgettext(TEXT_DOMAIN,
162 			"Alternative authentication method required"));
163 	case 49:
164 		return (dgettext(TEXT_DOMAIN,
165 			"Incorrect sequence number in message"));
166 	case 50:
167 		return (dgettext(TEXT_DOMAIN,
168 			"Inappropriate type of checksum in message"));
169 	case 51:
170 		return (dgettext(TEXT_DOMAIN,
171 			"KRB5 error code 51"));
172 	case 52:
173 		return (dgettext(TEXT_DOMAIN,
174 			"KRB5 error code 52"));
175 	case 53:
176 		return (dgettext(TEXT_DOMAIN,
177 			"KRB5 error code 53"));
178 	case 54:
179 		return (dgettext(TEXT_DOMAIN,
180 			"KRB5 error code 54"));
181 	case 55:
182 		return (dgettext(TEXT_DOMAIN,
183 			"KRB5 error code 55"));
184 	case 56:
185 		return (dgettext(TEXT_DOMAIN,
186 			"KRB5 error code 56"));
187 	case 57:
188 		return (dgettext(TEXT_DOMAIN,
189 			"KRB5 error code 57"));
190 	case 58:
191 		return (dgettext(TEXT_DOMAIN,
192 			"KRB5 error code 58"));
193 	case 59:
194 		return (dgettext(TEXT_DOMAIN,
195 			"KRB5 error code 59"));
196 	case 60:
197 		return (dgettext(TEXT_DOMAIN,
198 			"Generic error (see e-text)"));
199 	case 61:
200 		return (dgettext(TEXT_DOMAIN,
201 			"Field is too long for this implementation"));
202 	case 62:
203 		return (dgettext(TEXT_DOMAIN,
204 			"KRB5 error code 62"));
205 	case 63:
206 		return (dgettext(TEXT_DOMAIN,
207 			"KRB5 error code 63"));
208 	case 64:
209 		return (dgettext(TEXT_DOMAIN,
210 			"KRB5 error code 64"));
211 	case 65:
212 		return (dgettext(TEXT_DOMAIN,
213 			"KRB5 error code 65"));
214 	case 66:
215 		return (dgettext(TEXT_DOMAIN,
216 			"KRB5 error code 66"));
217 	case 67:
218 		return (dgettext(TEXT_DOMAIN,
219 			"KRB5 error code 67"));
220 	case 68:
221 		return (dgettext(TEXT_DOMAIN,
222 			"KRB5 error code 68"));
223 	case 69:
224 		return (dgettext(TEXT_DOMAIN,
225 			"KRB5 error code 69"));
226 	case 70:
227 		return (dgettext(TEXT_DOMAIN,
228 			"KRB5 error code 70"));
229 	case 71:
230 		return (dgettext(TEXT_DOMAIN,
231 			"KRB5 error code 71"));
232 	case 72:
233 		return (dgettext(TEXT_DOMAIN,
234 			"KRB5 error code 72"));
235 	case 73:
236 		return (dgettext(TEXT_DOMAIN,
237 			"KRB5 error code 73"));
238 	case 74:
239 		return (dgettext(TEXT_DOMAIN,
240 			"KRB5 error code 74"));
241 	case 75:
242 		return (dgettext(TEXT_DOMAIN,
243 			"KRB5 error code 75"));
244 	case 76:
245 		return (dgettext(TEXT_DOMAIN,
246 			"KRB5 error code 76"));
247 	case 77:
248 		return (dgettext(TEXT_DOMAIN,
249 			"KRB5 error code 77"));
250 	case 78:
251 		return (dgettext(TEXT_DOMAIN,
252 			"KRB5 error code 78"));
253 	case 79:
254 		return (dgettext(TEXT_DOMAIN,
255 			"KRB5 error code 79"));
256 	case 80:
257 		return (dgettext(TEXT_DOMAIN,
258 			"KRB5 error code 80"));
259 	case 81:
260 		return (dgettext(TEXT_DOMAIN,
261 			"KRB5 error code 81"));
262 	case 82:
263 		return (dgettext(TEXT_DOMAIN,
264 			"KRB5 error code 82"));
265 	case 83:
266 		return (dgettext(TEXT_DOMAIN,
267 			"KRB5 error code 83"));
268 	case 84:
269 		return (dgettext(TEXT_DOMAIN,
270 			"KRB5 error code 84"));
271 	case 85:
272 		return (dgettext(TEXT_DOMAIN,
273 			"KRB5 error code 85"));
274 	case 86:
275 		return (dgettext(TEXT_DOMAIN,
276 			"KRB5 error code 86"));
277 	case 87:
278 		return (dgettext(TEXT_DOMAIN,
279 			"KRB5 error code 87"));
280 	case 88:
281 		return (dgettext(TEXT_DOMAIN,
282 			"KRB5 error code 88"));
283 	case 89:
284 		return (dgettext(TEXT_DOMAIN,
285 			"KRB5 error code 89"));
286 	case 90:
287 		return (dgettext(TEXT_DOMAIN,
288 			"KRB5 error code 90"));
289 	case 91:
290 		return (dgettext(TEXT_DOMAIN,
291 			"KRB5 error code 91"));
292 	case 92:
293 		return (dgettext(TEXT_DOMAIN,
294 			"KRB5 error code 92"));
295 	case 93:
296 		return (dgettext(TEXT_DOMAIN,
297 			"KRB5 error code 93"));
298 	case 94:
299 		return (dgettext(TEXT_DOMAIN,
300 			"KRB5 error code 94"));
301 	case 95:
302 		return (dgettext(TEXT_DOMAIN,
303 			"KRB5 error code 95"));
304 	case 96:
305 		return (dgettext(TEXT_DOMAIN,
306 			"KRB5 error code 96"));
307 	case 97:
308 		return (dgettext(TEXT_DOMAIN,
309 			"KRB5 error code 97"));
310 	case 98:
311 		return (dgettext(TEXT_DOMAIN,
312 			"KRB5 error code 98"));
313 	case 99:
314 		return (dgettext(TEXT_DOMAIN,
315 			"KRB5 error code 99"));
316 	case 100:
317 		return (dgettext(TEXT_DOMAIN,
318 			"KRB5 error code 100"));
319 	case 101:
320 		return (dgettext(TEXT_DOMAIN,
321 			"KRB5 error code 101"));
322 	case 102:
323 		return (dgettext(TEXT_DOMAIN,
324 			"KRB5 error code 102"));
325 	case 103:
326 		return (dgettext(TEXT_DOMAIN,
327 			"KRB5 error code 103"));
328 	case 104:
329 		return (dgettext(TEXT_DOMAIN,
330 			"KRB5 error code 104"));
331 	case 105:
332 		return (dgettext(TEXT_DOMAIN,
333 			"KRB5 error code 105"));
334 	case 106:
335 		return (dgettext(TEXT_DOMAIN,
336 			"KRB5 error code 106"));
337 	case 107:
338 		return (dgettext(TEXT_DOMAIN,
339 			"KRB5 error code 107"));
340 	case 108:
341 		return (dgettext(TEXT_DOMAIN,
342 			"KRB5 error code 108"));
343 	case 109:
344 		return (dgettext(TEXT_DOMAIN,
345 			"KRB5 error code 109"));
346 	case 110:
347 		return (dgettext(TEXT_DOMAIN,
348 			"KRB5 error code 110"));
349 	case 111:
350 		return (dgettext(TEXT_DOMAIN,
351 			"KRB5 error code 111"));
352 	case 112:
353 		return (dgettext(TEXT_DOMAIN,
354 			"KRB5 error code 112"));
355 	case 113:
356 		return (dgettext(TEXT_DOMAIN,
357 			"KRB5 error code 113"));
358 	case 114:
359 		return (dgettext(TEXT_DOMAIN,
360 			"KRB5 error code 114"));
361 	case 115:
362 		return (dgettext(TEXT_DOMAIN,
363 			"KRB5 error code 115"));
364 	case 116:
365 		return (dgettext(TEXT_DOMAIN,
366 			"KRB5 error code 116"));
367 	case 117:
368 		return (dgettext(TEXT_DOMAIN,
369 			"KRB5 error code 117"));
370 	case 118:
371 		return (dgettext(TEXT_DOMAIN,
372 			"KRB5 error code 118"));
373 	case 119:
374 		return (dgettext(TEXT_DOMAIN,
375 			"KRB5 error code 119"));
376 	case 120:
377 		return (dgettext(TEXT_DOMAIN,
378 			"KRB5 error code 120"));
379 	case 121:
380 		return (dgettext(TEXT_DOMAIN,
381 			"KRB5 error code 121"));
382 	case 122:
383 		return (dgettext(TEXT_DOMAIN,
384 			"KRB5 error code 122"));
385 	case 123:
386 		return (dgettext(TEXT_DOMAIN,
387 			"KRB5 error code 123"));
388 	case 124:
389 		return (dgettext(TEXT_DOMAIN,
390 			"KRB5 error code 124"));
391 	case 125:
392 		return (dgettext(TEXT_DOMAIN,
393 			"KRB5 error code 125"));
394 	case 126:
395 		return (dgettext(TEXT_DOMAIN,
396 			"KRB5 error code 126"));
397 	case 127:
398 		return (dgettext(TEXT_DOMAIN,
399 			"KRB5 error code 127"));
400 	case 128:
401 		return (
402 		"$Id: krb5_err.et,v 5.66 1999/12/06 21:45:03 raeburn Exp $");
403 	case 129:
404 		return (dgettext(TEXT_DOMAIN,
405 			"Invalid flag for file lock mode"));
406 	case 130:
407 		return (dgettext(TEXT_DOMAIN,
408 			"Cannot read password"));
409 	case 131:
410 		return (dgettext(TEXT_DOMAIN,
411 			"Password mismatch"));
412 	case 132:
413 		return (dgettext(TEXT_DOMAIN,
414 			"Password read interrupted"));
415 	case 133:
416 		return (dgettext(TEXT_DOMAIN,
417 			"Illegal character in component name"));
418 	case 134:
419 		return (dgettext(TEXT_DOMAIN,
420 			"Malformed representation of principal"));
421 	case 135:
422 		return (dgettext(TEXT_DOMAIN,
423 		"Can't open/find Kerberos /etc/krb5/krb5.conf configuration "
424 		"file"));
425 	case 136:
426 		return (dgettext(TEXT_DOMAIN,
427 	"Improper format of Kerberos /etc/krb5/krb5.conf configuration file"));
428 	case 137:
429 		return (dgettext(TEXT_DOMAIN,
430 			"Insufficient space to return complete information"));
431 	case 138:
432 		return (dgettext(TEXT_DOMAIN,
433 			"Invalid message type specified for encoding"));
434 	case 139:
435 		return (dgettext(TEXT_DOMAIN,
436 			"Credential cache name malformed"));
437 	case 140:
438 		return (dgettext(TEXT_DOMAIN,
439 			"Unknown credential cache type"));
440 	case 141:
441 		return (dgettext(TEXT_DOMAIN,
442 			"Matching credential not found"));
443 	case 142:
444 		return (dgettext(TEXT_DOMAIN,
445 			"End of credential cache reached"));
446 	case 143:
447 		return (dgettext(TEXT_DOMAIN,
448 			"Request did not supply a ticket"));
449 	case 144:
450 		return (dgettext(TEXT_DOMAIN,
451 			"Wrong principal in request"));
452 	case 145:
453 		return (dgettext(TEXT_DOMAIN,
454 			"Ticket has invalid flag set"));
455 	case 146:
456 		return (dgettext(TEXT_DOMAIN,
457 			"Requested principal and ticket don't match"));
458 	case 147:
459 		return (dgettext(TEXT_DOMAIN,
460 			"KDC reply did not match expectations"));
461 	case 148:
462 		return (dgettext(TEXT_DOMAIN,
463 			"Clock skew too great in KDC reply"));
464 	case 149:
465 		return (dgettext(TEXT_DOMAIN,
466 			"Client/server realm mismatch in initial ticket "
467 			"request"));
468 	case 150:
469 		return (dgettext(TEXT_DOMAIN,
470 			"Program lacks support for encryption type"));
471 	case 151:
472 		return (dgettext(TEXT_DOMAIN,
473 			"Program lacks support for key type"));
474 	case 152:
475 		return (dgettext(TEXT_DOMAIN,
476 			"Requested encryption type not used in message"));
477 	case 153:
478 		return (dgettext(TEXT_DOMAIN,
479 			"Program lacks support for checksum type"));
480 	case 154:
481 		return (dgettext(TEXT_DOMAIN,
482 			"Cannot find KDC for requested realm"));
483 	case 155:
484 		return (dgettext(TEXT_DOMAIN,
485 			"Kerberos service unknown"));
486 	case 156:
487 		return (dgettext(TEXT_DOMAIN,
488 			"Cannot contact any KDC for requested realm"));
489 	case 157:
490 		return (dgettext(TEXT_DOMAIN,
491 			"No local name found for principal name"));
492 	case 158:
493 		return (dgettext(TEXT_DOMAIN,
494 			"Mutual authentication failed"));
495 	case 159:
496 		return (dgettext(TEXT_DOMAIN,
497 			"Replay cache type is already registered"));
498 	case 160:
499 		return (dgettext(TEXT_DOMAIN,
500 			"No more memory to allocate (in replay cache code)"));
501 	case 161:
502 		return (dgettext(TEXT_DOMAIN,
503 			"Replay cache type is unknown"));
504 	case 162:
505 		return (dgettext(TEXT_DOMAIN,
506 			"Generic unknown RC error"));
507 	case 163:
508 		return (dgettext(TEXT_DOMAIN,
509 			"Message is a replay"));
510 	case 164:
511 		return (dgettext(TEXT_DOMAIN,
512 			"Replay I/O operation failed XXX"));
513 	case 165:
514 		return (dgettext(TEXT_DOMAIN,
515 			"Replay cache type does not support non-volatile "
516 			"storage"));
517 	case 166:
518 		return (dgettext(TEXT_DOMAIN,
519 			"Replay cache name parse/format error"));
520 	case 167:
521 		return (dgettext(TEXT_DOMAIN,
522 			"End-of-file on replay cache I/O"));
523 	case 168:
524 		return (dgettext(TEXT_DOMAIN,
525 			"No more memory to allocate (in replay cache I/O "
526 			"code)"));
527 	case 169:
528 		return (dgettext(TEXT_DOMAIN,
529 			"Permission denied in replay cache code"));
530 	case 170:
531 		return (dgettext(TEXT_DOMAIN,
532 			"I/O error in replay cache i/o code"));
533 	case 171:
534 		return (dgettext(TEXT_DOMAIN,
535 			"Generic unknown RC/IO error"));
536 	case 172:
537 		return (dgettext(TEXT_DOMAIN,
538 			"Insufficient system space to store replay "
539 			"information"));
540 	case 173:
541 		return (dgettext(TEXT_DOMAIN,
542 			"Can't open/find realm translation file"));
543 	case 174:
544 		return (dgettext(TEXT_DOMAIN,
545 			"Improper format of realm translation file"));
546 	case 175:
547 		return (dgettext(TEXT_DOMAIN,
548 			"Can't open/find lname translation database"));
549 	case 176:
550 		return (dgettext(TEXT_DOMAIN,
551 			"No translation available for requested principal"));
552 	case 177:
553 		return (dgettext(TEXT_DOMAIN,
554 			"Improper format of translation database entry"));
555 	case 178:
556 		return (dgettext(TEXT_DOMAIN,
557 			"Cryptosystem internal error"));
558 	case 179:
559 		return (dgettext(TEXT_DOMAIN,
560 			"Key table name malformed"));
561 	case 180:
562 		return (dgettext(TEXT_DOMAIN,
563 			"Unknown Key table type"));
564 	case 181:
565 		return (dgettext(TEXT_DOMAIN,
566 			"Key table entry not found"));
567 	case 182:
568 		return (dgettext(TEXT_DOMAIN,
569 			"End of key table reached"));
570 	case 183:
571 		return (dgettext(TEXT_DOMAIN,
572 			"Cannot write to specified key table"));
573 	case 184:
574 		return (dgettext(TEXT_DOMAIN,
575 			"Error writing to key table"));
576 	case 185:
577 		return (dgettext(TEXT_DOMAIN,
578 			"Cannot find ticket for requested realm"));
579 	case 186:
580 		return (dgettext(TEXT_DOMAIN,
581 			"DES key has bad parity"));
582 	case 187:
583 		return (dgettext(TEXT_DOMAIN,
584 			"DES key is a weak key"));
585 	case 188:
586 		return (dgettext(TEXT_DOMAIN,
587 			"Bad encryption type"));
588 	case 189:
589 		return (dgettext(TEXT_DOMAIN,
590 			"Key size is incompatible with encryption type"));
591 	case 190:
592 		return (dgettext(TEXT_DOMAIN,
593 			"Message size is incompatible with encryption type"));
594 	case 191:
595 		return (dgettext(TEXT_DOMAIN,
596 			"Credentials cache type is already registered."));
597 	case 192:
598 		return (dgettext(TEXT_DOMAIN,
599 			"Key table type is already registered."));
600 	case 193:
601 		return (dgettext(TEXT_DOMAIN,
602 			"Credentials cache I/O operation failed XXX"));
603 	case 194:
604 		return (dgettext(TEXT_DOMAIN,
605 			"Credentials cache file permissions incorrect"));
606 	case 195:
607 		return (dgettext(TEXT_DOMAIN,
608 			"No credentials cache file found"));
609 	case 196:
610 		return (dgettext(TEXT_DOMAIN,
611 			"Internal file credentials cache error"));
612 	case 197:
613 		return (dgettext(TEXT_DOMAIN,
614 			"Error writing to credentials cache file"));
615 	case 198:
616 		return (dgettext(TEXT_DOMAIN,
617 			"No more memory to allocate (in credentials cache "
618 			"code)"));
619 	case 199:
620 		return (dgettext(TEXT_DOMAIN,
621 			"Bad format in credentials cache"));
622 	case 200:
623 		return (dgettext(TEXT_DOMAIN,
624 			"No credentials found with supported encryption "
625 			"types"));
626 	case 201:
627 		return (dgettext(TEXT_DOMAIN,
628 			"Invalid KDC option combination (library internal "
629 			"error)"));
630 	case 202:
631 		return (dgettext(TEXT_DOMAIN,
632 			"Request missing second ticket"));
633 	case 203:
634 		return (dgettext(TEXT_DOMAIN,
635 			"No credentials supplied to library routine"));
636 	case 204:
637 		return (dgettext(TEXT_DOMAIN,
638 			"Bad sendauth version was sent"));
639 	case 205:
640 		return (dgettext(TEXT_DOMAIN,
641 			"Bad application version was sent (via sendauth)"));
642 	case 206:
643 		return (dgettext(TEXT_DOMAIN,
644 			"Bad response (during sendauth exchange)"));
645 	case 207:
646 		return (dgettext(TEXT_DOMAIN,
647 			"Server rejected authentication (during sendauth "
648 			"exchange)"));
649 	case 208:
650 		return (dgettext(TEXT_DOMAIN,
651 			"Unsupported preauthentication type"));
652 	case 209:
653 		return (dgettext(TEXT_DOMAIN,
654 			"Required preauthentication key not supplied"));
655 	case 210:
656 		return (dgettext(TEXT_DOMAIN,
657 			"Generic preauthentication failure"));
658 	case 211:
659 		return (dgettext(TEXT_DOMAIN,
660 			"Unsupported replay cache format version number"));
661 	case 212:
662 		return (dgettext(TEXT_DOMAIN,
663 			"Unsupported credentials cache format version number"));
664 	case 213:
665 		return (dgettext(TEXT_DOMAIN,
666 			"Unsupported key table format version number"));
667 	case 214:
668 		return (dgettext(TEXT_DOMAIN,
669 			"Program lacks support for address type"));
670 	case 215:
671 		return (dgettext(TEXT_DOMAIN,
672 			"Message replay detection requires rcache parameter"));
673 	case 216:
674 		return (dgettext(TEXT_DOMAIN,
675 			"Hostname cannot be canonicalized"));
676 	case 217:
677 		return (dgettext(TEXT_DOMAIN,
678 			"Cannot determine realm for host"));
679 	case 218:
680 		return (dgettext(TEXT_DOMAIN,
681 			"Conversion to service principal undefined for name "
682 			"type"));
683 	case 219:
684 		return (dgettext(TEXT_DOMAIN,
685 			"Initial Ticket response appears to be Version 4 "
686 			"error"));
687 	case 220:
688 		return (dgettext(TEXT_DOMAIN,
689 			"Cannot resolve network address for KDC in requested "
690 			"realm"));
691 	case 221:
692 		return (dgettext(TEXT_DOMAIN,
693 			"Requesting ticket can't get forwardable tickets"));
694 	case 222:
695 		return (dgettext(TEXT_DOMAIN,
696 			"Bad principal name while trying to forward "
697 			"credentials"));
698 	case 223:
699 		return (dgettext(TEXT_DOMAIN,
700 			"Looping detected inside krb5_get_in_tkt"));
701 	case 224:
702 		return (dgettext(TEXT_DOMAIN,
703 			"Configuration file does not specify default realm"));
704 	case 225:
705 		return (dgettext(TEXT_DOMAIN,
706 			"Bad SAM flags in obtain_sam_padata"));
707 	case 226: /* KRB5_SAM_INVALID_ETYPE */
708 		return (dgettext(TEXT_DOMAIN,
709 			"Invalid encryption type in SAM challenge"));
710 	case 227: /* KRB5_SAM_NO_CHECKSUM */
711 		return (dgettext(TEXT_DOMAIN,
712 			"Missing checksum in SAM challenge"));
713 	case 228: /* KRB5_SAM_BAD_CHECKSUM */
714 		return (dgettext(TEXT_DOMAIN,
715 			"Bad checksum in SAM challenge"));
716 	case 229: /* KRB5_KT_NAME_TOOLONG */
717 		return (dgettext(TEXT_DOMAIN,
718 			"Keytab name too long"));
719 	case 230: /* KRB5_KT_KVNONOTFOUND */
720 		return (dgettext(TEXT_DOMAIN,
721 			"Key version number for principal in key table is "
722 			"incorrect"));
723 	case 231: /* KRB5_APPL_EXPIRED */
724 		return (dgettext(TEXT_DOMAIN,
725 			"This application has expired"));
726 	case 232: /* KRB5_LIB_EXPIRED */
727 		return (dgettext(TEXT_DOMAIN,
728 			"This Krb5 library has expired"));
729 	case 233: /* KRB5_CHPW_PWDNULL */
730 		return (dgettext(TEXT_DOMAIN,
731 			"New password cannot be zero length"));
732 	case 234: /* KRB5_CHPW_FAIL */
733 		return (dgettext(TEXT_DOMAIN,
734 			"Password change failed"));
735 	case 235: /* KRB5_KT_FORMAT */
736 		return (dgettext(TEXT_DOMAIN,
737 			"Bad format in keytab"));
738 	case 236: /* KRB5_NOPERM_ETYPE */
739 		return (dgettext(TEXT_DOMAIN,
740 			"Encryption type not permitted"));
741 	case 237: /* KRB5_CONFIG_ETYPE_NOSUPP */
742 		return (dgettext(TEXT_DOMAIN,
743 			"No supported encryption types (config file error?)"));
744 	case 238: /* KRB5_OBSOLETE_FN */
745 		return (dgettext(TEXT_DOMAIN,
746 			"Program called an obsolete, deleted function"));
747 	case 239: /* KRB5_EAI_FAIL */
748 		return (dgettext(TEXT_DOMAIN,
749 			"unknown getaddrinfo failure"));
750 	case 240: /* KRB5_EAI_NODATA */
751 		return (dgettext(TEXT_DOMAIN,
752 			"no data available for host/domain name"));
753 	case 241: /* KRB5_EAI_NONAME */
754 		return (dgettext(TEXT_DOMAIN,
755 			"host/domain name not found"));
756 	case 242: /* KRB5_EAI_SERVICE */
757 		return (dgettext(TEXT_DOMAIN,
758 			"service name unknown"));
759 	case 243: /* KRB5_ERR_NUMERIC_REALM */
760 		return (dgettext(TEXT_DOMAIN,
761 			"Cannot determine realm for numeric host address"));
762 	case 244: /* KRB5_ERR_BAD_S2K_PARAMS */
763 		return (dgettext(TEXT_DOMAIN,
764 			"Invalid key generation parameters from KDC"));
765 	case 245: /* KRB5_ERR_NO_SERVICE */
766 		return (dgettext(TEXT_DOMAIN,
767 			"service not available"));
768 	case 246: /* KRB5_CC_READONLY */
769 		return (dgettext(TEXT_DOMAIN,
770 			"Ccache function not supported: read-only ccache "
771 			"type"));
772 	case 247: /* KRB5_CC_NOSUPP */
773 		return (dgettext(TEXT_DOMAIN,
774 			"Ccache function not supported: not implemented"));
775 	case 249: /* KRB5_RC_BADNAME */
776 		return (dgettext(TEXT_DOMAIN,
777 			"Bad replay cache name"));
778 	case 250: /* KRB5_CONF_NOT_CONFIGURED */
779 		return (dgettext(TEXT_DOMAIN,
780 			"krb5 conf file not configured"));
781 	case 251: /* PKCS_ERR */
782 		return (dgettext(TEXT_DOMAIN,
783 			"Error in the PKCS 11 library calls"));
784 	case 252: /* KRB5_DELTAT_BADFORMAT */
785 		return (dgettext(TEXT_DOMAIN,
786 			"Delta time bad format"));
787 	default:
788 		return ("unknown error");
789 	}
790 }
791