Synopsis
#define SHISHI_VERSION
enum Shishi_rc;
enum Shishi_name_type;
enum Shishi_padata_type;
enum Shishi_tr_type;
enum Shishi_apoptions;
enum Shishi_ticketflags;
enum Shishi_KDCOptions;
enum Shishi_msgtype;
enum Shishi_lrtype;
enum Shishi_etype;
enum Shishi_cksumtype;
enum Shishi_filetype;
enum Shishi_outputtype;
enum Shishi_authorization;
enum Shishi_keyusage;
enum Shishi_krb_error;
enum Shishi_tkts_hintflags;
typedef Shishi_tkts_hint;
#define SHISHI_DNS_IN
#define SHISHI_DNS_TXT
#define SHISHI_DNS_SRV
typedef Shishi_dns;
typedef Shishi_dns_srv;
typedef Shishi;
typedef Shishi_tkt;
typedef Shishi_tkts;
typedef Shishi_as;
typedef Shishi_tgs;
typedef Shishi_ap;
typedef Shishi_key;
typedef Shishi_keys;
typedef Shishi_safe;
typedef Shishi_priv;
typedef Shishi_asn1;
typedef Shishi_crypto;
#define SHISHI_GENERALIZEDTIME_LENGTH
#define SHISHI_GENERALIZEDTIMEZ_LENGTH
void shishi_alloc_fail_function (void);
Shishi* shishi (void);
Shishi* shishi_server (void);
void shishi_done (Shishi *handle);
int shishi_init (Shishi **handle);
int shishi_init_with_paths (Shishi **handle,
const char *tktsfile,
const char *systemcfgfile,
const char *usercfgfile);
int shishi_init_server (Shishi **handle);
int shishi_init_server_with_paths (Shishi **handle,
const char *systemcfgfile);
int shishi_cfg (Shishi *handle,
char *option);
int shishi_cfg_from_file (Shishi *handle,
const char *cfg);
int shishi_cfg_print (Shishi *handle,
FILE *fh);
const char* shishi_cfg_default_systemfile (Shishi *handle);
const char* shishi_cfg_default_userdirectory (Shishi *handle);
const char* shishi_cfg_default_userfile (Shishi *handle);
char* shishi_cfg_userdirectory_file (Shishi *handle,
const char *file);
int shishi_cfg_clientkdcetype (Shishi *handle,
int32_t **etypes);
int32_t shishi_cfg_clientkdcetype_fast (Shishi *handle);
int shishi_cfg_clientkdcetype_set (Shishi *handle,
char *value);
int shishi_cfg_authorizationtype_set (Shishi *handle,
char *value);
const char* shishi_strerror (int err);
const char* shishi_error (Shishi *handle);
void shishi_error_clear (Shishi *handle);
void shishi_error_set (Shishi *handle,
const char *errstr);
void shishi_error_printf (Shishi *handle,
const char *format,
...);
int shishi_error_outputtype (Shishi *handle);
void shishi_error_set_outputtype (Shishi *handle,
int type);
void shishi_info (Shishi *handle,
const char *format,
...);
void shishi_warn (Shishi *handle,
const char *format,
...);
void shishi_verbose (Shishi *handle,
const char *format,
...);
char* shishi_realm_default_guess (void);
const char* shishi_realm_default (Shishi *handle);
void shishi_realm_default_set (Shishi *handle,
const char *realm);
char* shishi_realm_for_server_file (Shishi *handle,
char *server);
char* shishi_realm_for_server_dns (Shishi *handle,
char *server);
char* shishi_realm_for_server (Shishi *handle,
char *server);
char* shishi_principal_default_guess (void);
const char* shishi_principal_default (Shishi *handle);
void shishi_principal_default_set (Shishi *handle,
const char *principal);
int shishi_principal_name (Shishi *handle,
Shishi_asn1 namenode,
const char *namefield,
char **out,
size_t *outlen);
int shishi_principal_name_realm (Shishi *handle,
Shishi_asn1 namenode,
const char *namefield,
Shishi_asn1 realmnode,
const char *realmfield,
char **out,
size_t *outlen);
int shishi_principal_name_set (Shishi *handle,
Shishi_asn1 namenode,
const char *namefield,
Shishi_name_type name_type,
const char *name[]);
int shishi_principal_set (Shishi *handle,
Shishi_asn1 namenode,
const char *namefield,
const char *name);
int shishi_parse_name (Shishi *handle,
const char *name,
char **principal,
char **realm);
int shishi_derive_default_salt (Shishi *handle,
const char *name,
char **salt);
char* shishi_server_for_local_service (Shishi *handle,
const char *service);
Shishi_asn1 shishi_ticket (Shishi *handle);
int shishi_ticket_server (Shishi *handle,
Shishi_asn1 ticket,
char **server,
size_t *serverlen);
int shishi_ticket_sname_set (Shishi *handle,
Shishi_asn1 ticket,
Shishi_name_type name_type,
char *sname[]);
int shishi_ticket_srealmserver_set (Shishi *handle,
Shishi_asn1 ticket,
const char *realm,
const char *server);
int shishi_ticket_set_server (Shishi *handle,
Shishi_asn1 ticket,
const char *server);
int shishi_ticket_realm_get (Shishi *handle,
Shishi_asn1 ticket,
char **realm,
size_t *realmlen);
int shishi_ticket_realm_set (Shishi *handle,
Shishi_asn1 ticket,
const char *realm);
int shishi_ticket_get_enc_part_etype (Shishi *handle,
Shishi_asn1 ticket,
int32_t *etype);
int shishi_ticket_set_enc_part (Shishi *handle,
Shishi_asn1 ticket,
int32_t etype,
uint32_t kvno,
const char *buf,
size_t buflen);
int shishi_ticket_add_enc_part (Shishi *handle,
Shishi_asn1 ticket,
Shishi_key *key,
Shishi_asn1 encticketpart);
int shishi_ticket_decrypt (Shishi *handle,
Shishi_asn1 ticket,
Shishi_key *key,
Shishi_asn1 *encticketpart);
Shishi_asn1 shishi_tkt_ticket (Shishi_tkt *tkt);
void shishi_tkt_ticket_set (Shishi_tkt *tkt,
Shishi_asn1 ticket);
Shishi_asn1 shishi_tkt_kdcrep (Shishi_tkt *tkt);
Shishi_asn1 shishi_tkt_enckdcreppart (Shishi_tkt *tkt);
void shishi_tkt_enckdcreppart_set (Shishi_tkt *tkt,
Shishi_asn1 enckdcreppart);
Shishi_asn1 shishi_tkt_encticketpart (Shishi_tkt *tkt);
void shishi_tkt_encticketpart_set (Shishi_tkt *tkt,
Shishi_asn1 encticketpart);
Shishi_key* shishi_tkt_key (Shishi_tkt *tkt);
int shishi_tkt_key_set (Shishi_tkt *tkt,
Shishi_key *key);
int shishi_tkt (Shishi *handle,
Shishi_tkt **tkt);
Shishi_tkt* shishi_tkt2 (Shishi *handle,
Shishi_asn1 ticket,
Shishi_asn1 enckdcreppart,
Shishi_asn1 kdcrep);
void shishi_tkt_pretty_print (Shishi_tkt *tkt,
FILE *fh);
int shishi_tkt_realm (Shishi_tkt *tkt,
char **realm,
size_t *realmlen);
int shishi_tkt_client (Shishi_tkt *tkt,
char **client,
size_t *clientlen);
int shishi_tkt_client_p (Shishi_tkt *tkt,
const char *client);
int shishi_tkt_clientrealm (Shishi_tkt *tkt,
char **client,
size_t *clientlen);
int shishi_tkt_clientrealm_p (Shishi_tkt *tkt,
const char *client);
int shishi_tkt_clientrealm_set (Shishi_tkt *tkt,
const char *realm,
const char *client);
int shishi_tkt_serverrealm_set (Shishi_tkt *tkt,
const char *realm,
const char *server);
int shishi_tkt_build (Shishi_tkt *tkt,
Shishi_key *key);
int shishi_tkt_lastreq (Shishi_tkt *tkt,
char **lrtime,
size_t *lrtimelen,
int32_t lrtype);
time_t shishi_tkt_lastreqc (Shishi_tkt *tkt,
Shishi_lrtype lrtype);
void shishi_tkt_lastreq_pretty_print (Shishi_tkt *tkt,
FILE *fh);
int shishi_tkt_authtime (Shishi_tkt *tkt,
char **authtime,
size_t *authtimelen);
time_t shishi_tkt_authctime (Shishi_tkt *tkt);
int shishi_tkt_starttime (Shishi_tkt *tkt,
char **starttime,
size_t *starttimelen);
time_t shishi_tkt_startctime (Shishi_tkt *tkt);
int shishi_tkt_endtime (Shishi_tkt *tkt,
char **endtime,
size_t *endtimelen);
time_t shishi_tkt_endctime (Shishi_tkt *tkt);
int shishi_tkt_renew_till (Shishi_tkt *tkt,
char **renewtilltime,
size_t *renewtilllen);
time_t shishi_tkt_renew_tillc (Shishi_tkt *tkt);
int shishi_tkt_keytype (Shishi_tkt *tkt,
int32_t *etype);
int32_t shishi_tkt_keytype_fast (Shishi_tkt *tkt);
int shishi_tkt_keytype_p (Shishi_tkt *tkt,
int32_t etype);
int shishi_tkt_server (Shishi_tkt *tkt,
char **server,
size_t *serverlen);
int shishi_tkt_server_p (Shishi_tkt *tkt,
const char *server);
int shishi_tkt_valid_at_time_p (Shishi_tkt *tkt,
time_t now);
int shishi_tkt_valid_now_p (Shishi_tkt *tkt);
int shishi_tkt_expired_p (Shishi_tkt *tkt);
int shishi_tkt_decrypt (Shishi_tkt *tkt,
Shishi_key *key);
void shishi_tkt_done (Shishi_tkt *tkt);
int shishi_tkt_flags (Shishi_tkt *tkt,
uint32_t *flags);
int shishi_tkt_flags_set (Shishi_tkt *tkt,
uint32_t flags);
int shishi_tkt_flags_add (Shishi_tkt *tkt,
uint32_t flag);
int shishi_tkt_forwardable_p (Shishi_tkt *tkt);
int shishi_tkt_forwarded_p (Shishi_tkt *tkt);
int shishi_tkt_proxiable_p (Shishi_tkt *tkt);
int shishi_tkt_proxy_p (Shishi_tkt *tkt);
int shishi_tkt_may_postdate_p (Shishi_tkt *tkt);
int shishi_tkt_postdated_p (Shishi_tkt *tkt);
int shishi_tkt_invalid_p (Shishi_tkt *tkt);
int shishi_tkt_renewable_p (Shishi_tkt *tkt);
int shishi_tkt_initial_p (Shishi_tkt *tkt);
int shishi_tkt_pre_authent_p (Shishi_tkt *tkt);
int shishi_tkt_hw_authent_p (Shishi_tkt *tkt);
int shishi_tkt_transited_policy_checked_p
(Shishi_tkt *tkt);
int shishi_tkt_ok_as_delegate_p (Shishi_tkt *tkt);
char* shishi_tkts_default_file_guess (Shishi *handle);
const char* shishi_tkts_default_file (Shishi *handle);
void shishi_tkts_default_file_set (Shishi *handle,
const char *tktsfile);
Shishi_tkts* shishi_tkts_default (Shishi *handle);
int shishi_tkts_default_to_file (Shishi_tkts *tkts);
int shishi_tkts (Shishi *handle,
Shishi_tkts **tkts);
Shishi_tkt* shishi_tkts_nth (Shishi_tkts *tkts,
int ticketno);
int shishi_tkts_size (Shishi_tkts *tkts);
int shishi_tkts_add (Shishi_tkts *tkts,
Shishi_tkt *tkt);
int shishi_tkts_new (Shishi_tkts *tkts,
Shishi_asn1 ticket,
Shishi_asn1 enckdcreppart,
Shishi_asn1 kdcrep);
int shishi_tkts_remove (Shishi_tkts *tkts,
int ticketno);
int shishi_tkts_expire (Shishi_tkts *tkts);
int shishi_tkts_print_for_service (Shishi_tkts *tkts,
FILE *fh,
const char *service);
int shishi_tkts_print (Shishi_tkts *tkts,
FILE *fh);
int shishi_tkts_write (Shishi_tkts *tkts,
FILE *fh);
int shishi_tkts_to_file (Shishi_tkts *tkts,
const char *filename);
int shishi_tkts_read (Shishi_tkts *tkts,
FILE *fh);
int shishi_tkts_from_file (Shishi_tkts *tkts,
const char *filename);
void shishi_tkts_done (Shishi_tkts **tkts);
int shishi_tkt_match_p (Shishi_tkt *tkt,
Shishi_tkts_hint *hint);
Shishi_tkt* shishi_tkts_find (Shishi_tkts *tkts,
Shishi_tkts_hint *hint);
Shishi_tkt* shishi_tkts_find_for_clientserver (Shishi_tkts *tkts,
const char *client,
const char *server);
Shishi_tkt* shishi_tkts_find_for_server (Shishi_tkts *tkts,
const char *server);
Shishi_tkt* shishi_tkts_get (Shishi_tkts *tkts,
Shishi_tkts_hint *hint);
Shishi_tkt* shishi_tkts_get_tgt (Shishi_tkts *tkts,
Shishi_tkts_hint *hint);
Shishi_tkt* shishi_tkts_get_tgs (Shishi_tkts *tkts,
Shishi_tkts_hint *hint,
Shishi_tkt *tgt);
Shishi_tkt* shishi_tkts_get_for_clientserver (Shishi_tkts *tkts,
const char *client,
const char *server);
Shishi_tkt* shishi_tkts_get_for_server (Shishi_tkts *tkts,
const char *server);
Shishi_tkt* shishi_tkts_get_for_localservicepasswd
(Shishi_tkts *tkts,
const char *service,
const char *passwd);
char* shishi_tkts_default_ccache_guess (Shishi *handle);
const char* shishi_tkts_default_ccache (Shishi *handle);
void shishi_tkts_default_ccache_set (Shishi *handle,
const char *ccache);
int shishi_tkts_add_ccache_mem (Shishi *handle,
const char *data,
size_t len,
Shishi_tkts *tkts);
int shishi_tkts_add_ccache_file (Shishi *handle,
const char *filename,
Shishi_tkts *tkts);
int shishi_tkts_from_ccache_mem (Shishi *handle,
const char *data,
size_t len,
Shishi_tkts **outtkts);
int shishi_tkts_from_ccache_file (Shishi *handle,
const char *filename,
Shishi_tkts **outtkts);
int shishi_enckdcreppart_print (Shishi *handle,
FILE *fh,
Shishi_asn1 enckdcreppart);
int shishi_enckdcreppart_save (Shishi *handle,
FILE *fh,
Shishi_asn1 enckdcreppart);
int shishi_enckdcreppart_parse (Shishi *handle,
FILE *fh,
Shishi_asn1 *enckdcreppart);
int shishi_enckdcreppart_read (Shishi *handle,
FILE *fh,
Shishi_asn1 *enckdcreppart);
int shishi_ticket_save (Shishi *handle,
FILE *fh,
Shishi_asn1 ticket);
int shishi_ticket_print (Shishi *handle,
FILE *fh,
Shishi_asn1 ticket);
int shishi_kdcreq_print (Shishi *handle,
FILE *fh,
Shishi_asn1 kdcreq);
int shishi_kdcrep_print (Shishi *handle,
FILE *fh,
Shishi_asn1 kdcrep);
int shishi_kdc_print (Shishi *handle,
FILE *fh,
Shishi_asn1 asreq,
Shishi_asn1 asrep,
Shishi_asn1 encasreppart);
int shishi_kdcreq_parse (Shishi *handle,
FILE *fh,
Shishi_asn1 *kdcreq);
int shishi_kdcrep_parse (Shishi *handle,
FILE *fh,
Shishi_asn1 *kdcrep);
int shishi_ticket_parse (Shishi *handle,
FILE *fh,
Shishi_asn1 *ticket);
int shishi_ticket_read (Shishi *handle,
FILE *fh,
Shishi_asn1 *ticket);
int shishi_etype_info_print (Shishi *handle,
FILE *fh,
Shishi_asn1 etypeinfo);
int shishi_etype_info2_print (Shishi *handle,
FILE *fh,
Shishi_asn1 etypeinfo2);
Shishi_asn1 shishi_authenticator (Shishi *handle);
int shishi_authenticator_set_crealm (Shishi *handle,
Shishi_asn1 authenticator,
const char *crealm);
int shishi_authenticator_set_cname (Shishi *handle,
Shishi_asn1 authenticator,
Shishi_name_type name_type,
const char *cname[]);
int shishi_authenticator_client_set (Shishi *handle,
Shishi_asn1 authenticator,
const char *client);
int shishi_authenticator_ctime (Shishi *handle,
Shishi_asn1 authenticator,
char **t);
int shishi_authenticator_ctime_set (Shishi *handle,
Shishi_asn1 authenticator,
const char *t);
int shishi_authenticator_cusec_get (Shishi *handle,
Shishi_asn1 authenticator,
uint32_t *cusec);
int shishi_authenticator_cusec_set (Shishi *handle,
Shishi_asn1 authenticator,
uint32_t cusec);
int shishi_authenticator_seqnumber_get (Shishi *handle,
Shishi_asn1 authenticator,
uint32_t *seqnumber);
int shishi_authenticator_seqnumber_remove
(Shishi *handle,
Shishi_asn1 authenticator);
int shishi_authenticator_seqnumber_set (Shishi *handle,
Shishi_asn1 authenticator,
uint32_t seqnumber);
int shishi_authenticator_client (Shishi *handle,
Shishi_asn1 authenticator,
char **client,
size_t *clientlen);
int shishi_authenticator_clientrealm (Shishi *handle,
Shishi_asn1 authenticator,
char **client,
size_t *clientlen);
int shishi_authenticator_remove_cksum (Shishi *handle,
Shishi_asn1 authenticator);
int shishi_authenticator_cksum (Shishi *handle,
Shishi_asn1 authenticator,
int32_t *cksumtype,
char **cksum,
size_t *cksumlen);
int shishi_authenticator_set_cksum (Shishi *handle,
Shishi_asn1 authenticator,
int cksumtype,
char *cksum,
size_t cksumlen);
int shishi_authenticator_add_cksum (Shishi *handle,
Shishi_asn1 authenticator,
Shishi_key *key,
int keyusage,
char *data,
size_t datalen);
int shishi_authenticator_add_cksum_type (Shishi *handle,
Shishi_asn1 authenticator,
Shishi_key *key,
int keyusage,
int cksumtype,
char *data,
size_t datalen);
int shishi_authenticator_remove_subkey (Shishi *handle,
Shishi_asn1 authenticator);
Shishi_asn1 shishi_authenticator_subkey (Shishi *handle);
int shishi_authenticator_get_subkey (Shishi *handle,
Shishi_asn1 authenticator,
Shishi_key **subkey);
int shishi_authenticator_set_subkey (Shishi *handle,
Shishi_asn1 authenticator,
int32_t subkeytype,
char *subkey,
size_t subkeylen);
int shishi_authenticator_add_random_subkey
(Shishi *handle,
Shishi_asn1 authenticator);
int shishi_authenticator_add_random_subkey_etype
(Shishi *handle,
Shishi_asn1 authenticator,
int etype);
int shishi_authenticator_add_subkey (Shishi *handle,
Shishi_asn1 authenticator,
Shishi_key *subkey);
int shishi_authenticator_clear_authorizationdata
(Shishi *handle,
Shishi_asn1 authenticator);
int shishi_authenticator_add_authorizationdata
(Shishi *handle,
Shishi_asn1 authenticator,
int32_t adtype,
const char *addata,
size_t addatalen);
int shishi_authenticator_authorizationdata
(Shishi *handle,
Shishi_asn1 authenticator,
int32_t *adtype,
char **addata,
size_t *addatalen,
size_t nth);
int shishi_authenticator_read (Shishi *handle,
FILE *fh,
Shishi_asn1 *authenticator);
int shishi_authenticator_parse (Shishi *handle,
FILE *fh,
Shishi_asn1 *authenticator);
int shishi_authenticator_from_file (Shishi *handle,
Shishi_asn1 *authenticator,
int filetype,
const char *filename);
int shishi_authenticator_print (Shishi *handle,
FILE *fh,
Shishi_asn1 authenticator);
int shishi_authenticator_to_file (Shishi *handle,
Shishi_asn1 authenticator,
int filetype,
const char *filename);
int shishi_authenticator_save (Shishi *handle,
FILE *fh,
Shishi_asn1 authenticator);
int shishi_as (Shishi *handle,
Shishi_as **as);
void shishi_as_done (Shishi_as *as);
Shishi_asn1 shishi_as_req (Shishi_as *as);
int shishi_as_req_build (Shishi_as *as);
void shishi_as_req_set (Shishi_as *as,
Shishi_asn1 asreq);
int shishi_as_req_der (Shishi_as *as,
char **out,
size_t *outlen);
int shishi_as_req_der_set (Shishi_as *as,
char *der,
size_t derlen);
Shishi_asn1 shishi_as_rep (Shishi_as *as);
void shishi_as_rep_set (Shishi_as *as,
Shishi_asn1 asrep);
int shishi_as_rep_build (Shishi_as *as,
Shishi_key *key);
int shishi_as_rep_der (Shishi_as *as,
char **out,
size_t *outlen);
int shishi_as_rep_der_set (Shishi_as *as,
char *der,
size_t derlen);
Shishi_asn1 shishi_as_krberror (Shishi_as *as);
int shishi_as_krberror_der (Shishi_as *as,
char **out,
size_t *outlen);
void shishi_as_krberror_set (Shishi_as *as,
Shishi_asn1 krberror);
Shishi_tkt* shishi_as_tkt (Shishi_as *as);
void shishi_as_tkt_set (Shishi_as *as,
Shishi_tkt *tkt);
int shishi_as_sendrecv (Shishi_as *as);
int shishi_as_sendrecv_hint (Shishi_as *as,
Shishi_tkts_hint *hint);
int shishi_as_rep_process (Shishi_as *as,
Shishi_key *key,
const char *password);
int shishi_tgs (Shishi *handle,
Shishi_tgs **tgs);
void shishi_tgs_done (Shishi_tgs *tgs);
Shishi_tkt* shishi_tgs_tgtkt (Shishi_tgs *tgs);
void shishi_tgs_tgtkt_set (Shishi_tgs *tgs,
Shishi_tkt *tgtkt);
Shishi_ap* shishi_tgs_ap (Shishi_tgs *tgs);
Shishi_asn1 shishi_tgs_req (Shishi_tgs *tgs);
int shishi_tgs_req_der (Shishi_tgs *tgs,
char **out,
size_t *outlen);
int shishi_tgs_req_der_set (Shishi_tgs *tgs,
char *der,
size_t derlen);
void shishi_tgs_req_set (Shishi_tgs *tgs,
Shishi_asn1 tgsreq);
int shishi_tgs_req_build (Shishi_tgs *tgs);
int shishi_tgs_req_process (Shishi_tgs *tgs);
Shishi_asn1 shishi_tgs_rep (Shishi_tgs *tgs);
int shishi_tgs_rep_der (Shishi_tgs *tgs,
char **out,
size_t *outlen);
int shishi_tgs_rep_build (Shishi_tgs *tgs,
int keyusage,
Shishi_key *key);
int shishi_tgs_rep_process (Shishi_tgs *tgs);
Shishi_asn1 shishi_tgs_krberror (Shishi_tgs *tgs);
int shishi_tgs_krberror_der (Shishi_tgs *tgs,
char **out,
size_t *outlen);
void shishi_tgs_krberror_set (Shishi_tgs *tgs,
Shishi_asn1 krberror);
Shishi_tkt* shishi_tgs_tkt (Shishi_tgs *tgs);
void shishi_tgs_tkt_set (Shishi_tgs *tgs,
Shishi_tkt *tkt);
int shishi_tgs_sendrecv (Shishi_tgs *tgs);
int shishi_tgs_sendrecv_hint (Shishi_tgs *tgs,
Shishi_tkts_hint *hint);
int shishi_tgs_set_server (Shishi_tgs *tgs,
const char *server);
int shishi_tgs_set_realm (Shishi_tgs *tgs,
const char *realm);
int shishi_tgs_set_realmserver (Shishi_tgs *tgs,
const char *realm,
const char *server);
int shishi_kdcreq (Shishi *handle,
char *realm,
char *service,
Shishi_asn1 *req);
Shishi_asn1 shishi_asreq (Shishi *handle);
Shishi_asn1 shishi_asreq_rsc (Shishi *handle,
char *realm,
char *server,
char *client);
Shishi_asn1 shishi_tgsreq (Shishi *handle);
Shishi_asn1 shishi_tgsreq_rst (Shishi *handle,
char *realm,
char *server,
Shishi_tkt *tkt);
int shishi_kdcreq_save (Shishi *handle,
FILE *fh,
Shishi_asn1 kdcreq);
int shishi_kdcreq_to_file (Shishi *handle,
Shishi_asn1 kdcreq,
int filetype,
const char *filename);
int shishi_kdcreq_read (Shishi *handle,
FILE *fh,
Shishi_asn1 *kdcreq);
int shishi_kdcreq_from_file (Shishi *handle,
Shishi_asn1 *kdcreq,
int filetype,
const char *filename);
int shishi_asreq_clientrealm (Shishi *handle,
Shishi_asn1 asreq,
char **client,
size_t *clientlen);
int shishi_kdcreq_nonce (Shishi *handle,
Shishi_asn1 kdcreq,
uint32_t *nonce);
int shishi_kdcreq_nonce_set (Shishi *handle,
Shishi_asn1 kdcreq,
uint32_t nonce);
int shishi_kdcreq_client (Shishi *handle,
Shishi_asn1 kdcreq,
char **client,
size_t *clientlen);
int shishi_kdcreq_set_cname (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_name_type name_type,
const char *principal);
int shishi_kdcreq_server (Shishi *handle,
Shishi_asn1 kdcreq,
char **server,
size_t *serverlen);
int shishi_kdcreq_set_sname (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_name_type name_type,
const char *sname[]);
int shishi_kdcreq_realm (Shishi *handle,
Shishi_asn1 kdcreq,
char **realm,
size_t *realmlen);
int shishi_kdcreq_realm_get (Shishi *handle,
Shishi_asn1 kdcreq,
char **realm,
size_t *realmlen);
int shishi_kdcreq_set_realm (Shishi *handle,
Shishi_asn1 kdcreq,
const char *realm);
int shishi_kdcreq_set_server (Shishi *handle,
Shishi_asn1 req,
const char *service);
int shishi_kdcreq_set_realmserver (Shishi *handle,
Shishi_asn1 req,
char *realm,
char *service);
int shishi_kdcreq_till (Shishi *handle,
Shishi_asn1 kdcreq,
char **till,
size_t *tilllen);
time_t shishi_kdcreq_tillc (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_etype (Shishi *handle,
Shishi_asn1 kdcreq,
int32_t *etype,
int netype);
int shishi_kdcreq_set_etype (Shishi *handle,
Shishi_asn1 kdcreq,
int32_t *etype,
int netype);
int shishi_kdcreq_options (Shishi *handle,
Shishi_asn1 kdcreq,
uint32_t *flags);
int shishi_kdcreq_forwardable_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_forwarded_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_proxiable_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_proxy_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_allow_postdate_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_postdated_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_renewable_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_disable_transited_check_p
(Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_renewable_ok_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_enc_tkt_in_skey_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_renew_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_validate_p (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_options_set (Shishi *handle,
Shishi_asn1 kdcreq,
uint32_t options);
int shishi_kdcreq_options_add (Shishi *handle,
Shishi_asn1 kdcreq,
uint32_t option);
int shishi_kdcreq_clear_padata (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_kdcreq_get_padata (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_padata_type padatatype,
char **out,
size_t *outlen);
int shishi_kdcreq_get_padata_tgs (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_asn1 *apreq);
int shishi_kdcreq_add_padata (Shishi *handle,
Shishi_asn1 kdcreq,
int padatatype,
const char *data,
size_t datalen);
int shishi_kdcreq_add_padata_tgs (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_asn1 apreq);
int shishi_kdcreq_add_padata_preauth (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_key *key);
int shishi_kdcreq_build (Shishi *handle,
Shishi_asn1 kdcreq);
int shishi_as_derive_salt (Shishi *handle,
Shishi_asn1 asreq,
Shishi_asn1 asrep,
char **salt,
size_t *saltlen);
int shishi_tgs_process (Shishi *handle,
Shishi_asn1 tgsreq,
Shishi_asn1 tgsrep,
Shishi_asn1 authenticator,
Shishi_asn1 oldenckdcreppart,
Shishi_asn1 *enckdcreppart);
int shishi_as_process (Shishi *handle,
Shishi_asn1 asreq,
Shishi_asn1 asrep,
const char *string,
Shishi_asn1 *enckdcreppart);
int shishi_kdc_process (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_asn1 kdcrep,
Shishi_key *key,
int keyusage,
Shishi_asn1 *enckdcreppart);
int shishi_kdcreq_sendrecv (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_asn1 *kdcrep);
int shishi_kdcreq_sendrecv_hint (Shishi *handle,
Shishi_asn1 kdcreq,
Shishi_asn1 *kdcrep,