00001
00002
00003
00004
00005
00006 #ifndef GD_KRB_API_GDKERBEROSAUTHHANDLER_H_
00007 #define GD_KRB_API_GDKERBEROSAUTHHANDLER_H_
00008
00009 #include <stdint.h>
00010
00011 #if defined(_WIN32)
00012 # define GD_ATTRIBUTE(ignore)
00013 #else
00014 # define GD_ATTRIBUTE __attribute__
00015 #endif
00016
00017 namespace GD
00018 {
00019
00020 namespace KRB_API
00021 {
00022
00023 enum class Krb5ErrorCode : int32_t;
00024
00038 class GD_ATTRIBUTE((visibility("default"))) GDKerberosAuthHandler
00039 {
00040
00041 public:
00046 GDKerberosAuthHandler();
00047 ~GDKerberosAuthHandler();
00048
00049 public:
00050
00065 static bool getAllowDelegation();
00066
00102 static void setAllowDelegation(bool allow);
00103
00110 static void clearCache();
00111
00146 Krb5ErrorCode setUpKerberosTicket(const char* username,
00147 const char* password,
00148 bool allowDelegation);
00149
00167 Krb5ErrorCode setUpKerberosTicket(const char* username,
00168 const char* password);
00169
00193 Krb5ErrorCode setUpKerberosTicket(bool allowDelegation);
00194
00228 Krb5ErrorCode setUpKerberosTicket(const char* host,
00229 int port,
00230 bool allowDelegation);
00231
00248 Krb5ErrorCode setUpKerberosTicket(const char* host, int port);
00249
00265 bool implicitCredentialsAllowed();
00266
00267 private:
00268 void *authKerberos;
00269 };
00270
00289 enum class Krb5ErrorCode
00290 {
00291 KDC_ERR_NONE = -1765328384,
00292 KDC_ERR_NAME_EXP = -1765328383,
00293 KDC_ERR_SERVICE_EXP = -1765328382,
00294 KDC_ERR_BAD_PVNO = -1765328381,
00295 KDC_ERR_C_OLD_MAST_KVNO = -1765328380,
00296 KDC_ERR_S_OLD_MAST_KVNO = -1765328379,
00297 KDC_ERR_C_PRINCIPAL_UNKNOWN = -1765328378,
00298 KDC_ERR_S_PRINCIPAL_UNKNOWN = -1765328377,
00299 KDC_ERR_PRINCIPAL_NOT_UNIQUE = -1765328376,
00300 KDC_ERR_NULL_KEY = -1765328375,
00301 KDC_ERR_CANNOT_POSTDATE = -1765328374,
00302 KDC_ERR_NEVER_VALID = -1765328373,
00303 KDC_ERR_POLICY = -1765328372,
00304 KDC_ERR_BADOPTION = -1765328371,
00305 KDC_ERR_ETYPE_NOSUPP = -1765328370,
00306 KDC_ERR_SUMTYPE_NOSUPP = -1765328369,
00307 KDC_ERR_PADATA_TYPE_NOSUPP = -1765328368,
00308 KDC_ERR_TRTYPE_NOSUPP = -1765328367,
00309 KDC_ERR_CLIENT_REVOKED = -1765328366,
00310 KDC_ERR_SERVICE_REVOKED = -1765328365,
00311 KDC_ERR_TGT_REVOKED = -1765328364,
00312 KDC_ERR_CLIENT_NOTYET = -1765328363,
00313 KDC_ERR_SERVICE_NOTYET = -1765328362,
00314 KDC_ERR_KEY_EXPIRED = -1765328361,
00315 KDC_ERR_PREAUTH_FAILED = -1765328360,
00316 KDC_ERR_PREAUTH_REQUIRED = -1765328359,
00317 KDC_ERR_SERVER_NOMATCH = -1765328358,
00318 KDC_ERR_KDC_ERR_MUST_USE_USER2USER = -1765328357,
00319 KDC_ERR_PATH_NOT_ACCEPTED = -1765328356,
00320 KDC_ERR_SVC_UNAVAILABLE = -1765328355,
00321 KRB_AP_ERR_BAD_INTEGRITY = -1765328353,
00322 KRB_AP_ERR_TKT_EXPIRED = -1765328352,
00323 KRB_AP_ERR_TKT_NYV = -1765328351,
00324 KRB_AP_ERR_REPEAT = -1765328350,
00325 KRB_AP_ERR_NOT_US = -1765328349,
00326 KRB_AP_ERR_BADMATCH = -1765328348,
00327 KRB_AP_ERR_SKEW = -1765328347,
00328 KRB_AP_ERR_BADADDR = -1765328346,
00329 KRB_AP_ERR_BADVERSION = -1765328345,
00330 KRB_AP_ERR_MSG_TYPE = -1765328344,
00331 KRB_AP_ERR_MODIFIED = -1765328343,
00332 KRB_AP_ERR_BADORDER = -1765328342,
00333 KRB_AP_ERR_ILL_CR_TKT = -1765328341,
00334 KRB_AP_ERR_BADKEYVER = -1765328340,
00335 KRB_AP_ERR_NOKEY = -1765328339,
00336 KRB_AP_ERR_MUT_FAIL = -1765328338,
00337 KRB_AP_ERR_BADDIRECTION = -1765328337,
00338 KRB_AP_ERR_METHOD = -1765328336,
00339 KRB_AP_ERR_BADSEQ = -1765328335,
00340 KRB_AP_ERR_INAPP_CKSUM = -1765328334,
00341 KRB_AP_PATH_NOT_ACCEPTED = -1765328333,
00342 KRB_ERR_RESPONSE_TOO_BIG = -1765328332,
00343 KRB_ERR_GENERIC = -1765328324,
00344 KRB_ERR_FIELD_TOOLONG = -1765328323,
00345 KDC_ERR_CLIENT_NOT_TRUSTED = -1765328322,
00346 KDC_ERR_KDC_NOT_TRUSTED = -1765328321,
00347 KDC_ERR_INVALID_SIG = -1765328320,
00348 KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED = -1765328319,
00349 KDC_ERR_WRONG_REALM = -1765328316,
00350 AP_ERR_USER_TO_USER_REQUIRED = -1765328315,
00351 KDC_ERR_CANT_VERIFY_CERTIFICATE = -1765328314,
00352 KDC_ERR_INVALID_CERTIFICATE = -1765328313,
00353 KDC_ERR_REVOKED_CERTIFICATE = -1765328312,
00354 KDC_ERR_REVOCATION_STATUS_UNKNOWN = -1765328311,
00355 KDC_ERR_REVOCATION_STATUS_UNAVAILABLE = -1765328310,
00356 KDC_ERR_CLIENT_NAME_MISMATCH = -1765328309,
00357 KDC_ERR_INCONSISTENT_KEY_PURPOSE = -1765328308,
00358 KDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTED = -1765328307,
00359 KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED = -1765328306,
00360 KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED = -1765328305,
00361 KDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTED = -1765328304,
00362 KDC_ERR_INVALID_HASH_ALG = -1765328290,
00363 KDC_ERR_INVALID_ITERATION_COUNT = -1765328289,
00364 ERR_RCSID = -1765328256,
00365 LIBOS_BADLOCKFLAG = -1765328255,
00366 LIBOS_CANTREADPWD = -1765328254,
00367 LIBOS_BADPWDMATCH = -1765328253,
00368 LIBOS_PWDINTR = -1765328252,
00369 PARSE_ILLCHAR = -1765328251,
00370 PARSE_MALFORMED = -1765328250,
00371 CONFIG_CANTOPEN = -1765328249,
00372 CONFIG_BADFORMAT = -1765328248,
00373 CONFIG_NOTENUFSPACE = -1765328247,
00374 BADMSGTYPE = -1765328246,
00375 CC_BADNAME = -1765328245,
00376 CC_UNKNOWN_TYPE = -1765328244,
00377 CC_NOTFOUND = -1765328243,
00378 CC_END = -1765328242,
00379 NO_TKT_SUPPLIED = -1765328241,
00380 KRB5KRB_AP_WRONG_PRINC = -1765328240,
00381 KRB5KRB_AP_ERR_TKT_INVALID = -1765328239,
00382 PRINC_NOMATCH = -1765328238,
00383 KDCREP_MODIFIED = -1765328237,
00384 KDCREP_SKEW = -1765328236,
00385 IN_TKT_REALM_MISMATCH = -1765328235,
00386 PROG_ETYPE_NOSUPP = -1765328234,
00387 PROG_KEYTYPE_NOSUPP = -1765328233,
00388 WRONG_ETYPE = -1765328232,
00389 PROG_SUMTYPE_NOSUPP = -1765328231,
00390 REALM_UNKNOWN = -1765328230,
00391 SERVICE_UNKNOWN = -1765328229,
00392 KDC_UNREACH = -1765328228,
00393 NO_LOCALNAME = -1765328227,
00394 MUTUAL_FAILED = -1765328226,
00395 RC_TYPE_EXISTS = -1765328225,
00396 RC_MALLOC = -1765328224,
00397 RC_TYPE_NOTFOUND = -1765328223,
00398 RC_UNKNOWN = -1765328222,
00399 RC_REPLAY = -1765328221,
00400 RC_IO = -1765328220,
00401 RC_NOIO = -1765328219,
00402 RC_PARSE = -1765328218,
00403 RC_IO_EOF = -1765328217,
00404 RC_IO_MALLOC = -1765328216,
00405 RC_IO_PERM = -1765328215,
00406 RC_IO_IO = -1765328214,
00407 RC_IO_UNKNOWN = -1765328213,
00408 RC_IO_SPACE = -1765328212,
00409 TRANS_CANTOPEN = -1765328211,
00410 TRANS_BADFORMAT = -1765328210,
00411 LNAME_CANTOPEN = -1765328209,
00412 LNAME_NOTRANS = -1765328208,
00413 LNAME_BADFORMAT = -1765328207,
00414 CRYPTO_INTERNAL = -1765328206,
00415 KT_BADNAME = -1765328205,
00416 KT_UNKNOWN_TYPE = -1765328204,
00417 KT_NOTFOUND = -1765328203,
00418 KT_END = -1765328202,
00419 KT_NOWRITE = -1765328201,
00420 KT_IOERR = -1765328200,
00421 NO_TKT_IN_RLM = -1765328199,
00422 DES_BAD_KEYPAR = -1765328198,
00423 DES_WEAK_KEY = -1765328197,
00424 BAD_ENCTYPE = -1765328196,
00425 BAD_KEYSIZE = -1765328195,
00426 BAD_MSIZE = -1765328194,
00427 CC_TYPE_EXISTS = -1765328193,
00428 KT_TYPE_EXISTS = -1765328192,
00429 CC_IO = -1765328191,
00430 FCC_PERM = -1765328190,
00431 FCC_NOFILE = -1765328189,
00432 FCC_INTERNAL = -1765328188,
00433 CC_WRITE = -1765328187,
00434 CC_NOMEM = -1765328186,
00435 CC_FORMAT = -1765328185,
00436 CC_NOT_KTYPE = -1765328184,
00437 INVALID_FLAGS = -1765328183,
00438 NO_2ND_TKT = -1765328182,
00439 NOCREDS_SUPPLIED = -1765328181,
00440 SENDAUTH_BADAUTHVERS = -1765328180,
00441 SENDAUTH_BADAPPLVERS = -1765328179,
00442 SENDAUTH_BADRESPONSE = -1765328178,
00443 SENDAUTH_REJECTED = -1765328177,
00444 PREAUTH_BAD_TYPE = -1765328176,
00445 PREAUTH_NO_KEY = -1765328175,
00446 PREAUTH_FAILED = -1765328174,
00447 RCACHE_BADVNO = -1765328173,
00448 CCACHE_BADVNO = -1765328172,
00449 KEYTAB_BADVNO = -1765328171,
00450 PROG_ATYPE_NOSUPP = -1765328170,
00451 RC_REQUIRED = -1765328169,
00452 ERR_BAD_HOSTNAME = -1765328168,
00453 ERR_HOST_REALM_UNKNOWN = -1765328167,
00454 SNAME_UNSUPP_NAMETYPE = -1765328166,
00455 KRB_AP_ERR_V4_REPLY = -1765328165,
00456 REALM_CANT_RESOLVE = -1765328164,
00457 TKT_NOT_FORWARDABLE = -1765328163,
00458 FWD_BAD_PRINCIPAL = -1765328162,
00459 GET_IN_TKT_LOOP = -1765328161,
00460 CONFIG_NODEFREALM = -1765328160,
00461 SAM_UNSUPPORTED = -1765328159,
00462 SAM_INVALID_ETYPE = -1765328158,
00463 SAM_NO_CHECKSUM = -1765328157,
00464 SAM_BAD_CHECKSUM = -1765328156,
00465 OBSOLETE_FN = -1765328146,
00466 ERR_BAD_S2K_PARAMS = -1765328139,
00467 ERR_NO_SERVICE = -1765328138,
00468 CC_NOSUPP = -1765328137,
00469 DELTAT_BADFORMAT = -1765328136,
00470 PLUGIN_NO_HANDLE = -1765328135,
00471 PLUGIN_OP_NOTSUPP = -1765328134
00472 };
00473
00478 }
00479
00480 }
00481
00482 #endif