
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@298 ec53bebd-3082-4978-b11e-865c3cabbd6b
313 lines
6.9 KiB
Plaintext
313 lines
6.9 KiB
Plaintext
krb5_get_in_tkt()
|
|
krb5_get_in_tkt_with_password()
|
|
|
|
krb5_send_tgs()
|
|
|
|
KDC_OPT_FORWARDABLE
|
|
KDC_OPT_FORWARDED
|
|
KDC_OPT_PROXIABLE
|
|
KDC_OPT_PROXY
|
|
KDC_OPT_ALLOW_POSTDATE
|
|
KDC_OPT_POSTDATED
|
|
KDC_OPT_RENEWABLE
|
|
KDC_OPT_RENEWABLE_OK
|
|
KDC_OPT_ENC_TKT_IN_SKEY
|
|
KDC_OPT_RENEW
|
|
KDC_OPT_VALIDATE
|
|
|
|
|
|
KRB5_PADATA_NONE
|
|
KRB5_PADATA_AP_REQ
|
|
KRB5_PADATA_TGS_REQ
|
|
KRB5_PADATA_PW_SALT
|
|
KRB5_PADATA_ENC_TIMESTAMP
|
|
KRB5_PADATA_ENC_SECURID
|
|
|
|
KRB5_AUTH_CONTEXT_DO_TIME
|
|
KRB5_AUTH_CONTEXT_RET_TIME
|
|
KRB5_AUTH_CONTEXT_DO_SEQUENCE
|
|
KRB5_AUTH_CONTEXT_RET_REQUENCE
|
|
|
|
/* types */
|
|
krb5_error_code;
|
|
krb5_context;
|
|
|
|
typedef struct krb5_auth_context{
|
|
krb5_int32 flags;
|
|
krb5_cksumtype cksumtype;
|
|
|
|
krb5_address local_address;
|
|
krb5_address remote_address;
|
|
krb5_keyblock key;
|
|
krb5_keyblock local_subkey;
|
|
krb5_keyblock remote_subkey;
|
|
|
|
krb5_int32 local_seqnumber;
|
|
krb5_int32 remote_seqnumber;
|
|
|
|
krb5_authenticator authenticator;
|
|
|
|
krb5_pointer i_vector;
|
|
|
|
krb5_rcache rcache;
|
|
|
|
}krb5_auth_context;
|
|
|
|
enum krb5_enc_type;
|
|
|
|
krb5_int32;
|
|
krb5_address;
|
|
|
|
krb5_error_code
|
|
krb5_init_context(krb5_context *context);
|
|
|
|
void krb5_os_free_context(krb5_context context);
|
|
void krb5_free_context(krb5_context context);
|
|
|
|
krb5_error_code
|
|
krb5_set_default_in_tkt_etypes(krb5_context context,
|
|
const krb5_enc_type *etypes);
|
|
|
|
|
|
krb5_error_code
|
|
krb5_get_default_in_tkt_etypes(krb5_context context,
|
|
krb5_enctype **etypes);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_init(krb5_context context,
|
|
krb5_auth_context **auth_context);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_free(krb5_context context,
|
|
krb5_auth_context *auth_context);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_setflags(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_int32 flags);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_getflags(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_int32 *flags);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_setaddrs(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_address *local_addr,
|
|
krb5_address *remote_addr);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_getaddrs(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_address **local_addr,
|
|
krb5_address **remote_addr);
|
|
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_setuserkey(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_keyblock *keyblock);
|
|
|
|
krb5_error_code
|
|
krb5_auth_con_getkey(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_keyblock **keyblock);
|
|
|
|
void
|
|
krb5_free_keyblock(krb5_keyblock *keyblock); /* ??? */
|
|
|
|
krb5_error_code
|
|
krb5_auth_setcksumtype(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_cksumtype cksumtype);
|
|
|
|
krb5_error_code
|
|
krb5_auth_getlocalseqnumber(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_int32 *seqnumber);
|
|
|
|
krb5_error_code
|
|
krb5_auth_getremoteseqnumber(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_int32 *seqnumber);
|
|
|
|
krb5_error_code
|
|
krb5_auth_getauthenticator(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_authenticator **authenticator);
|
|
|
|
void
|
|
krb5_free_authenticator(krb5_authenticator *authenticator); /* ??? */
|
|
|
|
krb5_error_code
|
|
krb5_auth_initvector(krb5_context context,
|
|
krb5_auth_context *auth_context);
|
|
|
|
krb5_error_code
|
|
krb5_set_initvector(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_pointer ivector);
|
|
|
|
krb5_error_code
|
|
krb5_set_rcache(krb5_context context,
|
|
krb5_auth_context *auth_context,
|
|
krb5_rcache rcache);
|
|
|
|
|
|
|
|
KRB5_PARSE_MALFORMED
|
|
|
|
typedef struct krb5_principal{
|
|
|
|
}krb5_principal;
|
|
|
|
krb5_err_code
|
|
krb5_parse_name(krb5_context context,
|
|
const char *name,
|
|
krb5_principal *principal);
|
|
|
|
void
|
|
krb5_free_principal(krb5_principal *principal);
|
|
|
|
krb5_error_code
|
|
krb5_unparse_name(krb5_context context,
|
|
krb5_const_principal principal,
|
|
char **name);
|
|
|
|
krb5_error_code
|
|
krb5_unparse_name_ext(krb5_context context,
|
|
krb5_const_principal principal,
|
|
char **name,
|
|
int *size);
|
|
krb5_data
|
|
krb5_princ_realm(krb5_context context,
|
|
krb5_principal principal);
|
|
|
|
krb5_data
|
|
krb5_princ_set_realm(krb5_context context,
|
|
krb5_principal principal,
|
|
krb5_data *realm);
|
|
|
|
krb5_error_code
|
|
krb5_build_principal(krb5_context context,
|
|
krb5_principal *principal,
|
|
int rlen,
|
|
const char *realm,
|
|
...);
|
|
|
|
krb5_error_code
|
|
krb5_build_principal(krb5_context context,
|
|
krb5_principal *principal,
|
|
int rlen,
|
|
const char *realm,
|
|
va_list ap);
|
|
|
|
krb5_error_code
|
|
krb5_copy_principal(krb5_context *context,
|
|
krb5_const_principal inprinc,
|
|
krb5_principal *outprinc);
|
|
|
|
krb5_boolean
|
|
krb5_principal_compare(krb5_context context,
|
|
krb5_const_principal princ1,
|
|
krb5_const_principal princ2);
|
|
|
|
krb5_boolean
|
|
krb5_realm_compare(krb5_context context,
|
|
krb5_const_principal princ1,
|
|
krb5_const_principal princ2);
|
|
|
|
krb5_error_code
|
|
krb5_425_conv_principal(krb5_context context,
|
|
const char *name,
|
|
const char *instance,
|
|
const char *realm,
|
|
krb5_principal *principal);
|
|
|
|
krb5_error_code
|
|
krb5_get_cred_from_kdc(krb5_context,
|
|
krb5_ccache ccache,
|
|
krb5_creds *in_cred,
|
|
krb5_cred **out_cred,
|
|
krb5_creds **tgts);
|
|
|
|
|
|
krb5_keyblock{
|
|
krb5_keytype keytype;
|
|
};
|
|
|
|
krb5_times{
|
|
krb5_time endtime;
|
|
krb5_time starttime;
|
|
krb5_time renew_till;
|
|
};
|
|
|
|
struct krb5_creds {
|
|
krb5_principal client; /* ? */
|
|
krb5_principal server; /* ? */
|
|
krb5_times times;
|
|
krb5_keyblock keyblock
|
|
second_ticket;
|
|
krb5_data authdata;
|
|
|
|
};
|
|
|
|
krb5_error_code
|
|
krb5_get_credentials(krb5_context context,
|
|
krb5_flags options,
|
|
krb5_ccache ccache,
|
|
krb5_creds *in_creds,
|
|
krb5_creds *out_creds);
|
|
|
|
typedef krb5_error_code (*krb5_key_proc)(krb5_context context,
|
|
const krb5_keytype type,
|
|
krb5_data *salt;
|
|
krb5_const_pointer keyseed,
|
|
krb5_keyblock **key);
|
|
typedef krb5_error_code (*krb5_decrypt_proc)(krb5_context context,
|
|
const krb5_keyblock *key,
|
|
krb5_const_pointer *decrypt_arg,
|
|
krb5_kdc_rep *dec_rep);
|
|
|
|
krb5_error_code
|
|
krb5_get_in_tkt(krb5_context context,
|
|
krb5_flags options,
|
|
krb5_address *const *addrs,
|
|
const krb5_enctype *etypes,
|
|
const krb5_preauthtype *ptypes,
|
|
krb5_key_proc key_proc,
|
|
krb5_const_pointer keyseed,
|
|
krb5_decrypt_proc decrypt_proc,
|
|
krb5_const_pointer decryptarg,
|
|
krb5_creds *creds,
|
|
krb5_ccache ccache,
|
|
krb5_kdc_rep **ret_as_reply);
|
|
|
|
|
|
krb5_error_code
|
|
krb5_mk_req(krb5_context context,
|
|
krb5_auth_context **auth_context,
|
|
const krb5_flags ap_req_options,
|
|
char *service,
|
|
char *hostname,
|
|
krb5_data *in_data,
|
|
krb5_ccache ccache,
|
|
krb5_data *outbuf);
|
|
|
|
krb5_error_code
|
|
krb5_generate_subkey(krb5_context context,
|
|
const krb5_keyblock *key,
|
|
krb5_keyblock **subkey);
|
|
|
|
|
|
krb5_error_code
|
|
krb5_rd_req(krb5_context context,
|
|
krb5_auth_context **auth_context,
|
|
const krb5_data *inbuf,
|
|
krb5_const_principal server,
|
|
krb5_keytab keytab,
|
|
krb5_flags *ap_req_options,
|
|
krb5_ticket **ticket);
|
|
|