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