diff options
author | Theodore Tso <tytso@mit.edu> | 1995-08-28 20:01:39 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1995-08-28 20:01:39 +0000 |
commit | 42c4dd4abdc0bfc0ceb8ea8185fa15228cfcfcb3 (patch) | |
tree | 5f9316d67c89726acf74a274221d5ad831f7abe8 /src | |
parent | 4132293f0a3ec1d79e2d07bce37152f8701bc5aa (diff) | |
download | krb5-42c4dd4abdc0bfc0ceb8ea8185fa15228cfcfcb3.tar.gz krb5-42c4dd4abdc0bfc0ceb8ea8185fa15228cfcfcb3.tar.xz krb5-42c4dd4abdc0bfc0ceb8ea8185fa15228cfcfcb3.zip |
Added two new data structures: krb5_alt_method and krb5_etype_info
(and krb5_etype_info_entry).
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6604 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/include/ChangeLog | 5 | ||||
-rw-r--r-- | src/include/k5-int.h | 553 |
2 files changed, 301 insertions, 257 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog index 726922140..db1333416 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,8 @@ +Mon Aug 28 15:58:14 1995 <tytso@rsts-11.mit.edu> + + * k5-int.h: Added two new data structures: krb5_alt_method and + krb5_etype_info (and krb5_etype_info_entry). + Fri Aug 25 17:12:37 1995 Theodore Y. Ts'o <tytso@dcl> * k5-int.h: Added prototypes for encode_krb5_padata_sequence and diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 6fdfc0212..8c9e46b63 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -453,267 +453,30 @@ int win_socket_initialize(); */ /* - * Begin "asn1.h" + * This structure is returned in the e-data field of the KRB-ERROR + * message when the error calling for an alternative form of + * authentication is returned, KRB_AP_METHOD. */ -#ifndef KRB5_ASN1__ -#define KRB5_ASN1__ - -/* ASN.1 encoding knowledge; KEEP IN SYNC WITH ASN.1 defs! */ -/* here we use some knowledge of ASN.1 encodings */ -/* - Ticket is APPLICATION 1. - Authenticator is APPLICATION 2. - AS_REQ is APPLICATION 10. - AS_REP is APPLICATION 11. - TGS_REQ is APPLICATION 12. - TGS_REP is APPLICATION 13. - AP_REQ is APPLICATION 14. - AP_REP is APPLICATION 15. - KRB_SAFE is APPLICATION 20. - KRB_PRIV is APPLICATION 21. - KRB_CRED is APPLICATION 22. - EncASRepPart is APPLICATION 25. - EncTGSRepPart is APPLICATION 26. - EncAPRepPart is APPLICATION 27. - EncKrbPrivPart is APPLICATION 28. - EncKrbCredPart is APPLICATION 29. - KRB_ERROR is APPLICATION 30. - */ -/* allow either constructed or primitive encoding, so check for bit 6 - set or reset */ -#define krb5_is_krb_ticket(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x61 ||\ - (dat)->data[0] == 0x41)) -#define krb5_is_krb_authenticator(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x62 ||\ - (dat)->data[0] == 0x42)) -#define krb5_is_as_req(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6a ||\ - (dat)->data[0] == 0x4a)) -#define krb5_is_as_rep(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6b ||\ - (dat)->data[0] == 0x4b)) -#define krb5_is_tgs_req(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6c ||\ - (dat)->data[0] == 0x4c)) -#define krb5_is_tgs_rep(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6d ||\ - (dat)->data[0] == 0x4d)) -#define krb5_is_ap_req(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6e ||\ - (dat)->data[0] == 0x4e)) -#define krb5_is_ap_rep(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x6f ||\ - (dat)->data[0] == 0x4f)) -#define krb5_is_krb_safe(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x74 ||\ - (dat)->data[0] == 0x54)) -#define krb5_is_krb_priv(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x75 ||\ - (dat)->data[0] == 0x55)) -#define krb5_is_krb_cred(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x76 ||\ - (dat)->data[0] == 0x56)) -#define krb5_is_krb_enc_as_rep_part(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x79 ||\ - (dat)->data[0] == 0x59)) -#define krb5_is_krb_enc_tgs_rep_part(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x7a ||\ - (dat)->data[0] == 0x5a)) -#define krb5_is_krb_enc_ap_rep_part(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x7b ||\ - (dat)->data[0] == 0x5b)) -#define krb5_is_krb_enc_krb_priv_part(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x7c ||\ - (dat)->data[0] == 0x5c)) -#define krb5_is_krb_enc_krb_cred_part(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x7d ||\ - (dat)->data[0] == 0x5d)) -#define krb5_is_krb_error(dat)\ - ((dat) && (dat)->length && ((dat)->data[0] == 0x7e ||\ - (dat)->data[0] == 0x5e)) - -/************************************************************************* - * Prototypes for krb5_encode.c - *************************************************************************/ - -/* - krb5_error_code encode_krb5_structure(const krb5_structure *rep, - krb5_data **code); - modifies *code - effects Returns the ASN.1 encoding of *rep in **code. - Returns ASN1_MISSING_FIELD if a required field is emtpy in *rep. - Returns ENOMEM if memory runs out. -*/ - -krb5_error_code encode_krb5_authenticator - KRB5_PROTOTYPE((const krb5_authenticator *rep, krb5_data **code)); - -krb5_error_code encode_krb5_ticket - KRB5_PROTOTYPE((const krb5_ticket *rep, krb5_data **code)); - -krb5_error_code encode_krb5_encryption_key - KRB5_PROTOTYPE((const krb5_keyblock *rep, krb5_data **code)); - -krb5_error_code encode_krb5_enc_tkt_part - KRB5_PROTOTYPE((const krb5_enc_tkt_part *rep, krb5_data **code)); - -krb5_error_code encode_krb5_enc_kdc_rep_part - KRB5_PROTOTYPE((const krb5_enc_kdc_rep_part *rep, krb5_data **code)); - -/* yes, the translation is identical to that used for KDC__REP */ -krb5_error_code encode_krb5_as_rep - KRB5_PROTOTYPE((const krb5_kdc_rep *rep, krb5_data **code)); - -/* yes, the translation is identical to that used for KDC__REP */ -krb5_error_code encode_krb5_tgs_rep - KRB5_PROTOTYPE((const krb5_kdc_rep *rep, krb5_data **code)); - -krb5_error_code encode_krb5_ap_req - KRB5_PROTOTYPE((const krb5_ap_req *rep, krb5_data **code)); - -krb5_error_code encode_krb5_ap_rep - KRB5_PROTOTYPE((const krb5_ap_rep *rep, krb5_data **code)); - -krb5_error_code encode_krb5_ap_rep_enc_part - KRB5_PROTOTYPE((const krb5_ap_rep_enc_part *rep, krb5_data **code)); - -krb5_error_code encode_krb5_as_req - KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); - -krb5_error_code encode_krb5_tgs_req - KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); - -krb5_error_code encode_krb5_kdc_req_body - KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); - -krb5_error_code encode_krb5_safe - KRB5_PROTOTYPE((const krb5_safe *rep, krb5_data **code)); - -krb5_error_code encode_krb5_priv - KRB5_PROTOTYPE((const krb5_priv *rep, krb5_data **code)); - -krb5_error_code encode_krb5_enc_priv_part - KRB5_PROTOTYPE((const krb5_priv_enc_part *rep, krb5_data **code)); - -krb5_error_code encode_krb5_cred - KRB5_PROTOTYPE((const krb5_cred *rep, krb5_data **code)); - -krb5_error_code encode_krb5_enc_cred_part - KRB5_PROTOTYPE((const krb5_cred_enc_part *rep, krb5_data **code)); - -krb5_error_code encode_krb5_error - KRB5_PROTOTYPE((const krb5_error *rep, krb5_data **code)); - -krb5_error_code encode_krb5_authdata - KRB5_PROTOTYPE((const krb5_authdata **rep, krb5_data **code)); - -krb5_error_code encode_krb5_pwd_sequence - KRB5_PROTOTYPE((const passwd_phrase_element *rep, krb5_data **code)); - -krb5_error_code encode_krb5_pwd_data - KRB5_PROTOTYPE((const krb5_pwd_data *rep, krb5_data **code)); - -krb5_error_code encode_krb5_padata_sequence - KRB5_PROTOTYPE((const krb5_pa_data ** rep, krb5_data **code)); - -/************************************************************************* - * End of prototypes for krb5_encode.c - *************************************************************************/ - - -/************************************************************************* - * Prototypes for krb5_decode.c - *************************************************************************/ - -/* - krb5_error_code decode_krb5_structure(const krb5_data *code, - krb5_structure **rep); - - requires Expects **rep to not have been allocated; - a new *rep is allocated regardless of the old value. - effects Decodes *code into **rep. - Returns ENOMEM if memory is exhausted. - Returns asn1 and krb5 errors. -*/ - -krb5_error_code decode_krb5_authenticator - KRB5_PROTOTYPE((const krb5_data *code, krb5_authenticator **rep)); - -krb5_error_code decode_krb5_ticket - KRB5_PROTOTYPE((const krb5_data *code, krb5_ticket **rep)); - -krb5_error_code decode_krb5_encryption_key - KRB5_PROTOTYPE((const krb5_data *output, krb5_keyblock **rep)); - -krb5_error_code decode_krb5_enc_tkt_part - KRB5_PROTOTYPE((const krb5_data *output, krb5_enc_tkt_part **rep)); - -krb5_error_code decode_krb5_enc_kdc_rep_part - KRB5_PROTOTYPE((const krb5_data *output, krb5_enc_kdc_rep_part **rep)); - -krb5_error_code decode_krb5_as_rep - KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_rep **rep)); - -krb5_error_code decode_krb5_tgs_rep - KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_rep **rep)); - -krb5_error_code decode_krb5_ap_req - KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_req **rep)); - -krb5_error_code decode_krb5_ap_rep - KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_rep **rep)); - -krb5_error_code decode_krb5_ap_rep_enc_part - KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_rep_enc_part **rep)); - -krb5_error_code decode_krb5_as_req - KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); - -krb5_error_code decode_krb5_tgs_req - KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); - -krb5_error_code decode_krb5_kdc_req_body - KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); - -krb5_error_code decode_krb5_safe - KRB5_PROTOTYPE((const krb5_data *output, krb5_safe **rep)); - -krb5_error_code decode_krb5_priv - KRB5_PROTOTYPE((const krb5_data *output, krb5_priv **rep)); - -krb5_error_code decode_krb5_enc_priv_part - KRB5_PROTOTYPE((const krb5_data *output, krb5_priv_enc_part **rep)); - -krb5_error_code decode_krb5_cred - KRB5_PROTOTYPE((const krb5_data *output, krb5_cred **rep)); - -krb5_error_code decode_krb5_enc_cred_part - KRB5_PROTOTYPE((const krb5_data *output, krb5_cred_enc_part **rep)); - -krb5_error_code decode_krb5_error - KRB5_PROTOTYPE((const krb5_data *output, krb5_error **rep)); - -krb5_error_code decode_krb5_authdata - KRB5_PROTOTYPE((const krb5_data *output, krb5_authdata ***rep)); - -krb5_error_code decode_krb5_pwd_sequence - KRB5_PROTOTYPE((const krb5_data *output, passwd_phrase_element **rep)); - -krb5_error_code decode_krb5_pwd_data - KRB5_PROTOTYPE((const krb5_data *output, krb5_pwd_data **rep)); - -krb5_error_code decode_krb5_padata_sequence - KRB5_PROTOTYPE((const krb5_data *output, krb5_pa_data ***rep)); - -/************************************************************************* - * End of prototypes for krb5_decode.c - *************************************************************************/ +typedef struct _krb5_alt_method { + krb5_magic magic; + krb5_int32 method; + krb5_int32 length; + krb5_octet *data; +} krb5_alt_method; -#endif /* KRB5_ASN1__ */ /* - * End "asn1.h" + * A null-terminated array of this structure is returned by the KDC as + * the data part of the ETYPE_INFO preauth type. It informs the + * client which encryption types are supported. */ +typedef struct _krb5_etype_info_entry { + krb5_magic magic; + krb5_int32 etype; + krb5_int32 length; + krb5_octet *salt; +} krb5_etype_info_entry; + +typedef krb5_etype_info_entry ** krb5_etype_info; /* * Begin "dbm.h" @@ -1104,4 +867,280 @@ struct _krb5_context { profile_t profile; void FAR *db_context; }; + +/* + * Begin "asn1.h" + */ +#ifndef KRB5_ASN1__ +#define KRB5_ASN1__ + +/* ASN.1 encoding knowledge; KEEP IN SYNC WITH ASN.1 defs! */ +/* here we use some knowledge of ASN.1 encodings */ +/* + Ticket is APPLICATION 1. + Authenticator is APPLICATION 2. + AS_REQ is APPLICATION 10. + AS_REP is APPLICATION 11. + TGS_REQ is APPLICATION 12. + TGS_REP is APPLICATION 13. + AP_REQ is APPLICATION 14. + AP_REP is APPLICATION 15. + KRB_SAFE is APPLICATION 20. + KRB_PRIV is APPLICATION 21. + KRB_CRED is APPLICATION 22. + EncASRepPart is APPLICATION 25. + EncTGSRepPart is APPLICATION 26. + EncAPRepPart is APPLICATION 27. + EncKrbPrivPart is APPLICATION 28. + EncKrbCredPart is APPLICATION 29. + KRB_ERROR is APPLICATION 30. + */ +/* allow either constructed or primitive encoding, so check for bit 6 + set or reset */ +#define krb5_is_krb_ticket(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x61 ||\ + (dat)->data[0] == 0x41)) +#define krb5_is_krb_authenticator(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x62 ||\ + (dat)->data[0] == 0x42)) +#define krb5_is_as_req(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6a ||\ + (dat)->data[0] == 0x4a)) +#define krb5_is_as_rep(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6b ||\ + (dat)->data[0] == 0x4b)) +#define krb5_is_tgs_req(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6c ||\ + (dat)->data[0] == 0x4c)) +#define krb5_is_tgs_rep(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6d ||\ + (dat)->data[0] == 0x4d)) +#define krb5_is_ap_req(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6e ||\ + (dat)->data[0] == 0x4e)) +#define krb5_is_ap_rep(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x6f ||\ + (dat)->data[0] == 0x4f)) +#define krb5_is_krb_safe(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x74 ||\ + (dat)->data[0] == 0x54)) +#define krb5_is_krb_priv(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x75 ||\ + (dat)->data[0] == 0x55)) +#define krb5_is_krb_cred(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x76 ||\ + (dat)->data[0] == 0x56)) +#define krb5_is_krb_enc_as_rep_part(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x79 ||\ + (dat)->data[0] == 0x59)) +#define krb5_is_krb_enc_tgs_rep_part(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x7a ||\ + (dat)->data[0] == 0x5a)) +#define krb5_is_krb_enc_ap_rep_part(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x7b ||\ + (dat)->data[0] == 0x5b)) +#define krb5_is_krb_enc_krb_priv_part(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x7c ||\ + (dat)->data[0] == 0x5c)) +#define krb5_is_krb_enc_krb_cred_part(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x7d ||\ + (dat)->data[0] == 0x5d)) +#define krb5_is_krb_error(dat)\ + ((dat) && (dat)->length && ((dat)->data[0] == 0x7e ||\ + (dat)->data[0] == 0x5e)) + +/************************************************************************* + * Prototypes for krb5_encode.c + *************************************************************************/ + +/* + krb5_error_code encode_krb5_structure(const krb5_structure *rep, + krb5_data **code); + modifies *code + effects Returns the ASN.1 encoding of *rep in **code. + Returns ASN1_MISSING_FIELD if a required field is emtpy in *rep. + Returns ENOMEM if memory runs out. +*/ + +krb5_error_code encode_krb5_authenticator + KRB5_PROTOTYPE((const krb5_authenticator *rep, krb5_data **code)); + +krb5_error_code encode_krb5_ticket + KRB5_PROTOTYPE((const krb5_ticket *rep, krb5_data **code)); + +krb5_error_code encode_krb5_encryption_key + KRB5_PROTOTYPE((const krb5_keyblock *rep, krb5_data **code)); + +krb5_error_code encode_krb5_enc_tkt_part + KRB5_PROTOTYPE((const krb5_enc_tkt_part *rep, krb5_data **code)); + +krb5_error_code encode_krb5_enc_kdc_rep_part + KRB5_PROTOTYPE((const krb5_enc_kdc_rep_part *rep, krb5_data **code)); + +/* yes, the translation is identical to that used for KDC__REP */ +krb5_error_code encode_krb5_as_rep + KRB5_PROTOTYPE((const krb5_kdc_rep *rep, krb5_data **code)); + +/* yes, the translation is identical to that used for KDC__REP */ +krb5_error_code encode_krb5_tgs_rep + KRB5_PROTOTYPE((const krb5_kdc_rep *rep, krb5_data **code)); + +krb5_error_code encode_krb5_ap_req + KRB5_PROTOTYPE((const krb5_ap_req *rep, krb5_data **code)); + +krb5_error_code encode_krb5_ap_rep + KRB5_PROTOTYPE((const krb5_ap_rep *rep, krb5_data **code)); + +krb5_error_code encode_krb5_ap_rep_enc_part + KRB5_PROTOTYPE((const krb5_ap_rep_enc_part *rep, krb5_data **code)); + +krb5_error_code encode_krb5_as_req + KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); + +krb5_error_code encode_krb5_tgs_req + KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); + +krb5_error_code encode_krb5_kdc_req_body + KRB5_PROTOTYPE((const krb5_kdc_req *rep, krb5_data **code)); + +krb5_error_code encode_krb5_safe + KRB5_PROTOTYPE((const krb5_safe *rep, krb5_data **code)); + +krb5_error_code encode_krb5_priv + KRB5_PROTOTYPE((const krb5_priv *rep, krb5_data **code)); + +krb5_error_code encode_krb5_enc_priv_part + KRB5_PROTOTYPE((const krb5_priv_enc_part *rep, krb5_data **code)); + +krb5_error_code encode_krb5_cred + KRB5_PROTOTYPE((const krb5_cred *rep, krb5_data **code)); + +krb5_error_code encode_krb5_enc_cred_part + KRB5_PROTOTYPE((const krb5_cred_enc_part *rep, krb5_data **code)); + +krb5_error_code encode_krb5_error + KRB5_PROTOTYPE((const krb5_error *rep, krb5_data **code)); + +krb5_error_code encode_krb5_authdata + KRB5_PROTOTYPE((const krb5_authdata **rep, krb5_data **code)); + +krb5_error_code encode_krb5_pwd_sequence + KRB5_PROTOTYPE((const passwd_phrase_element *rep, krb5_data **code)); + +krb5_error_code encode_krb5_pwd_data + KRB5_PROTOTYPE((const krb5_pwd_data *rep, krb5_data **code)); + +krb5_error_code encode_krb5_padata_sequence + KRB5_PROTOTYPE((const krb5_pa_data ** rep, krb5_data **code)); + +krb5_error_code encode_krb5_alt_method + KRB5_PROTOTYPE((const krb5_alt_method *, krb5_data **code)); + +krb5_error_code encode_krb5_etype_info + KRB5_PROTOTYPE((const krb5_etype_info_entry **, krb5_data **code)); + +/************************************************************************* + * End of prototypes for krb5_encode.c + *************************************************************************/ + + +/************************************************************************* + * Prototypes for krb5_decode.c + *************************************************************************/ + +/* + krb5_error_code decode_krb5_structure(const krb5_data *code, + krb5_structure **rep); + + requires Expects **rep to not have been allocated; + a new *rep is allocated regardless of the old value. + effects Decodes *code into **rep. + Returns ENOMEM if memory is exhausted. + Returns asn1 and krb5 errors. +*/ + +krb5_error_code decode_krb5_authenticator + KRB5_PROTOTYPE((const krb5_data *code, krb5_authenticator **rep)); + +krb5_error_code decode_krb5_ticket + KRB5_PROTOTYPE((const krb5_data *code, krb5_ticket **rep)); + +krb5_error_code decode_krb5_encryption_key + KRB5_PROTOTYPE((const krb5_data *output, krb5_keyblock **rep)); + +krb5_error_code decode_krb5_enc_tkt_part + KRB5_PROTOTYPE((const krb5_data *output, krb5_enc_tkt_part **rep)); + +krb5_error_code decode_krb5_enc_kdc_rep_part + KRB5_PROTOTYPE((const krb5_data *output, krb5_enc_kdc_rep_part **rep)); + +krb5_error_code decode_krb5_as_rep + KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_rep **rep)); + +krb5_error_code decode_krb5_tgs_rep + KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_rep **rep)); + +krb5_error_code decode_krb5_ap_req + KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_req **rep)); + +krb5_error_code decode_krb5_ap_rep + KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_rep **rep)); + +krb5_error_code decode_krb5_ap_rep_enc_part + KRB5_PROTOTYPE((const krb5_data *output, krb5_ap_rep_enc_part **rep)); + +krb5_error_code decode_krb5_as_req + KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); + +krb5_error_code decode_krb5_tgs_req + KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); + +krb5_error_code decode_krb5_kdc_req_body + KRB5_PROTOTYPE((const krb5_data *output, krb5_kdc_req **rep)); + +krb5_error_code decode_krb5_safe + KRB5_PROTOTYPE((const krb5_data *output, krb5_safe **rep)); + +krb5_error_code decode_krb5_priv + KRB5_PROTOTYPE((const krb5_data *output, krb5_priv **rep)); + +krb5_error_code decode_krb5_enc_priv_part + KRB5_PROTOTYPE((const krb5_data *output, krb5_priv_enc_part **rep)); + +krb5_error_code decode_krb5_cred + KRB5_PROTOTYPE((const krb5_data *output, krb5_cred **rep)); + +krb5_error_code decode_krb5_enc_cred_part + KRB5_PROTOTYPE((const krb5_data *output, krb5_cred_enc_part **rep)); + +krb5_error_code decode_krb5_error + KRB5_PROTOTYPE((const krb5_data *output, krb5_error **rep)); + +krb5_error_code decode_krb5_authdata + KRB5_PROTOTYPE((const krb5_data *output, krb5_authdata ***rep)); + +krb5_error_code decode_krb5_pwd_sequence + KRB5_PROTOTYPE((const krb5_data *output, passwd_phrase_element **rep)); + +krb5_error_code decode_krb5_pwd_data + KRB5_PROTOTYPE((const krb5_data *output, krb5_pwd_data **rep)); + +krb5_error_code decode_krb5_padata_sequence + KRB5_PROTOTYPE((const krb5_data *output, krb5_pa_data ***rep)); + +krb5_error_code decode_krb5_alt_method + KRB5_PROTOTYPE((const krb5_data *output, krb5_alt_method **rep)); + +krb5_error_code decode_krb5_etype_info + KRB5_PROTOTYPE((const krb5_data *output, krb5_etype_info_entry ***rep)); + +/************************************************************************* + * End of prototypes for krb5_decode.c + *************************************************************************/ + +#endif /* KRB5_ASN1__ */ +/* + * End "asn1.h" + */ + #endif /* _KRB5_INT_H */ |