blackberry.com
BlackBerry Dynamics
Runtime library for macOS applications
from the application developer portal

GDKerberosAuthHandler.h

Go to the documentation of this file.
00001 /*
00002  * (c) 2017 BlackBerry Limited. All rights reserved.
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; // see definitions further.
00024 
00038 class GD_ATTRIBUTE((visibility("default"))) GDKerberosAuthHandler  /* final */
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 } // namespace KRB_API
00479 
00480 } // namespace GD
00481 
00482 #endif /* GDKERBEROSAUTHHANDLER_H_ */