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