📄 krb5.h
字号:
KEYTYPE_ARCFOUR_56 = 24} krb5_keytype;typedef EncryptionKey krb5_keyblock;typedef AP_REQ krb5_ap_req;struct krb5_cc_ops;#define KRB5_DEFAULT_CCFILE_ROOT "/tmp/krb5cc_"#define KRB5_DEFAULT_CCROOT "FILE:" KRB5_DEFAULT_CCFILE_ROOT#define KRB5_ACCEPT_NULL_ADDRESSES(C) \ krb5_config_get_bool_default((C), NULL, TRUE, \ "libdefaults", "accept_null_addresses", \ NULL)typedef void *krb5_cc_cursor;typedef struct krb5_ccache_data { const struct krb5_cc_ops *ops; krb5_data data;}krb5_ccache_data;typedef struct krb5_ccache_data *krb5_ccache;typedef struct krb5_context_data *krb5_context;typedef Realm krb5_realm;typedef const char *krb5_const_realm; /* stupid language */#define krb5_realm_length(r) strlen(r)#define krb5_realm_data(r) (r)typedef Principal krb5_principal_data;typedef struct Principal *krb5_principal;typedef const struct Principal *krb5_const_principal;typedef time_t krb5_deltat;typedef time_t krb5_timestamp;typedef struct krb5_times { krb5_timestamp authtime; krb5_timestamp starttime; krb5_timestamp endtime; krb5_timestamp renew_till;} krb5_times;typedef union { TicketFlags b; krb5_flags i;} krb5_ticket_flags;/* options for krb5_get_in_tkt() */#define KDC_OPT_FORWARDABLE (1 << 1)#define KDC_OPT_FORWARDED (1 << 2)#define KDC_OPT_PROXIABLE (1 << 3)#define KDC_OPT_PROXY (1 << 4)#define KDC_OPT_ALLOW_POSTDATE (1 << 5)#define KDC_OPT_POSTDATED (1 << 6)#define KDC_OPT_RENEWABLE (1 << 8)#define KDC_OPT_REQUEST_ANONYMOUS (1 << 14)#define KDC_OPT_DISABLE_TRANSITED_CHECK (1 << 26)#define KDC_OPT_RENEWABLE_OK (1 << 27)#define KDC_OPT_ENC_TKT_IN_SKEY (1 << 28)#define KDC_OPT_RENEW (1 << 30)#define KDC_OPT_VALIDATE (1 << 31)typedef union { KDCOptions b; krb5_flags i;} krb5_kdc_flags;/* flags for krb5_verify_ap_req */#define KRB5_VERIFY_AP_REQ_IGNORE_INVALID (1 << 0)#define KRB5_GC_CACHED (1U << 0)#define KRB5_GC_USER_USER (1U << 1)#define KRB5_GC_EXPIRED_OK (1U << 2)#define KRB5_GC_NO_STORE (1U << 3)#define KRB5_GC_FORWARDABLE (1U << 4)#define KRB5_GC_NO_TRANSIT_CHECK (1U << 5)#define KRB5_GC_CONSTRAINED_DELEGATION (1U << 6)/* constants for compare_creds (and cc_retrieve_cred) */#define KRB5_TC_DONT_MATCH_REALM (1U << 31)#define KRB5_TC_MATCH_KEYTYPE (1U << 30)#define KRB5_TC_MATCH_KTYPE KRB5_TC_MATCH_KEYTYPE /* MIT name */#define KRB5_TC_MATCH_SRV_NAMEONLY (1 << 29)#define KRB5_TC_MATCH_FLAGS_EXACT (1 << 28)#define KRB5_TC_MATCH_FLAGS (1 << 27)#define KRB5_TC_MATCH_TIMES_EXACT (1 << 26)#define KRB5_TC_MATCH_TIMES (1 << 25)#define KRB5_TC_MATCH_AUTHDATA (1 << 24)#define KRB5_TC_MATCH_2ND_TKT (1 << 23)#define KRB5_TC_MATCH_IS_SKEY (1 << 22)typedef AuthorizationData krb5_authdata;typedef KRB_ERROR krb5_error;typedef struct krb5_creds { krb5_principal client; krb5_principal server; krb5_keyblock session; krb5_times times; krb5_data ticket; krb5_data second_ticket; krb5_authdata authdata; krb5_addresses addresses; krb5_ticket_flags flags;} krb5_creds;typedef struct krb5_cc_cache_cursor_data *krb5_cc_cache_cursor;typedef struct krb5_cc_ops { const char *prefix; const char* (*get_name)(krb5_context, krb5_ccache); krb5_error_code (*resolve)(krb5_context, krb5_ccache *, const char *); krb5_error_code (*gen_new)(krb5_context, krb5_ccache *); krb5_error_code (*init)(krb5_context, krb5_ccache, krb5_principal); krb5_error_code (*destroy)(krb5_context, krb5_ccache); krb5_error_code (*close)(krb5_context, krb5_ccache); krb5_error_code (*store)(krb5_context, krb5_ccache, krb5_creds*); krb5_error_code (*retrieve)(krb5_context, krb5_ccache, krb5_flags, const krb5_creds*, krb5_creds *); krb5_error_code (*get_princ)(krb5_context, krb5_ccache, krb5_principal*); krb5_error_code (*get_first)(krb5_context, krb5_ccache, krb5_cc_cursor *); krb5_error_code (*get_next)(krb5_context, krb5_ccache, krb5_cc_cursor*, krb5_creds*); krb5_error_code (*end_get)(krb5_context, krb5_ccache, krb5_cc_cursor*); krb5_error_code (*remove_cred)(krb5_context, krb5_ccache, krb5_flags, krb5_creds*); krb5_error_code (*set_flags)(krb5_context, krb5_ccache, krb5_flags); int (*get_version)(krb5_context, krb5_ccache); krb5_error_code (*get_cache_first)(krb5_context, krb5_cc_cursor *); krb5_error_code (*get_cache_next)(krb5_context, krb5_cc_cursor, krb5_ccache *); krb5_error_code (*end_cache_get)(krb5_context, krb5_cc_cursor); krb5_error_code (*move)(krb5_context, krb5_ccache, krb5_ccache); krb5_error_code (*default_name)(krb5_context, char **);} krb5_cc_ops;struct krb5_log_facility;struct krb5_config_binding { enum { krb5_config_string, krb5_config_list } type; char *name; struct krb5_config_binding *next; union { char *string; struct krb5_config_binding *list; void *generic; } u;};typedef struct krb5_config_binding krb5_config_binding;typedef krb5_config_binding krb5_config_section;typedef struct krb5_ticket { EncTicketPart ticket; krb5_principal client; krb5_principal server;} krb5_ticket;typedef Authenticator krb5_authenticator_data;typedef krb5_authenticator_data *krb5_authenticator;struct krb5_rcache_data;typedef struct krb5_rcache_data *krb5_rcache;typedef Authenticator krb5_donot_replay;#define KRB5_STORAGE_HOST_BYTEORDER 0x01 /* old */#define KRB5_STORAGE_PRINCIPAL_WRONG_NUM_COMPONENTS 0x02#define KRB5_STORAGE_PRINCIPAL_NO_NAME_TYPE 0x04#define KRB5_STORAGE_KEYBLOCK_KEYTYPE_TWICE 0x08#define KRB5_STORAGE_BYTEORDER_MASK 0x60#define KRB5_STORAGE_BYTEORDER_BE 0x00 /* default */#define KRB5_STORAGE_BYTEORDER_LE 0x20#define KRB5_STORAGE_BYTEORDER_HOST 0x40#define KRB5_STORAGE_CREDS_FLAGS_WRONG_BITORDER 0x80struct krb5_storage_data;typedef struct krb5_storage_data krb5_storage;typedef struct krb5_keytab_entry { krb5_principal principal; krb5_kvno vno; krb5_keyblock keyblock; uint32_t timestamp;} krb5_keytab_entry;typedef struct krb5_kt_cursor { int fd; krb5_storage *sp; void *data;} krb5_kt_cursor;struct krb5_keytab_data;typedef struct krb5_keytab_data *krb5_keytab;#define KRB5_KT_PREFIX_MAX_LEN 30struct krb5_keytab_data { const char *prefix; krb5_error_code (*resolve)(krb5_context, const char*, krb5_keytab); krb5_error_code (*get_name)(krb5_context, krb5_keytab, char*, size_t); krb5_error_code (*close)(krb5_context, krb5_keytab); krb5_error_code (*get)(krb5_context, krb5_keytab, krb5_const_principal, krb5_kvno, krb5_enctype, krb5_keytab_entry*); krb5_error_code (*start_seq_get)(krb5_context, krb5_keytab, krb5_kt_cursor*); krb5_error_code (*next_entry)(krb5_context, krb5_keytab, krb5_keytab_entry*, krb5_kt_cursor*); krb5_error_code (*end_seq_get)(krb5_context, krb5_keytab, krb5_kt_cursor*); krb5_error_code (*add)(krb5_context, krb5_keytab, krb5_keytab_entry*); krb5_error_code (*remove)(krb5_context, krb5_keytab, krb5_keytab_entry*); void *data; int32_t version;};typedef struct krb5_keytab_data krb5_kt_ops;struct krb5_keytab_key_proc_args { krb5_keytab keytab; krb5_principal principal;};typedef struct krb5_keytab_key_proc_args krb5_keytab_key_proc_args;typedef struct krb5_replay_data { krb5_timestamp timestamp; int32_t usec; uint32_t seq;} krb5_replay_data;/* flags for krb5_auth_con_setflags */enum { KRB5_AUTH_CONTEXT_DO_TIME = 1, KRB5_AUTH_CONTEXT_RET_TIME = 2, KRB5_AUTH_CONTEXT_DO_SEQUENCE = 4, KRB5_AUTH_CONTEXT_RET_SEQUENCE = 8, KRB5_AUTH_CONTEXT_PERMIT_ALL = 16, KRB5_AUTH_CONTEXT_USE_SUBKEY = 32, KRB5_AUTH_CONTEXT_CLEAR_FORWARDED_CRED = 64};/* flags for krb5_auth_con_genaddrs */enum { KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR = 1, KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR = 3, KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR = 4, KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR = 12};typedef struct krb5_auth_context_data { unsigned int flags; krb5_address *local_address; krb5_address *remote_address; int16_t local_port; int16_t remote_port; krb5_keyblock *keyblock; krb5_keyblock *local_subkey; krb5_keyblock *remote_subkey; uint32_t local_seqnumber; uint32_t remote_seqnumber; krb5_authenticator authenticator; krb5_pointer i_vector; krb5_rcache rcache; krb5_keytype keytype; /* 縭equested key type ? */ krb5_cksumtype cksumtype; /*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -