#ifndef __ASN1_ENCODE_KRB5_H__
#define __ASN1_ENCODE_KRB5_H__
#include "k5-int.h"
#include <stdio.h>
#include "asn1buf.h"
asn1_error_code asn1_encode_ui_4 (asn1buf *buf,
const krb5_ui_4 val,
unsigned int *retlen);
asn1_error_code asn1_encode_msgtype (asn1buf *buf,
const int val,
unsigned int *retlen);
asn1_error_code asn1_encode_realm
(asn1buf *buf, const krb5_principal val, unsigned int *retlen);
asn1_error_code asn1_encode_principal_name
(asn1buf *buf, const krb5_principal val, unsigned int *retlen);
asn1_error_code asn1_encode_encrypted_data
(asn1buf *buf, const krb5_enc_data *val, unsigned int *retlen);
asn1_error_code asn1_encode_krb5_flags
(asn1buf *buf, const krb5_flags val, unsigned int *retlen);
asn1_error_code asn1_encode_ap_options
(asn1buf *buf, const krb5_flags val, unsigned int *retlen);
asn1_error_code asn1_encode_ticket_flags
(asn1buf *buf, const krb5_flags val, unsigned int *retlen);
asn1_error_code asn1_encode_kdc_options
(asn1buf *buf, const krb5_flags val, unsigned int *retlen);
asn1_error_code asn1_encode_authorization_data
(asn1buf *buf, const krb5_authdata **val, unsigned int *retlen);
asn1_error_code asn1_encode_krb5_authdata_elt
(asn1buf *buf, const krb5_authdata *val, unsigned int *retlen);
asn1_error_code asn1_encode_kdc_rep
(int msg_type, asn1buf *buf, const krb5_kdc_rep *val,
unsigned int *retlen);
asn1_error_code asn1_encode_enc_kdc_rep_part
(asn1buf *buf, const krb5_enc_kdc_rep_part *val,
unsigned int *retlen);
asn1_error_code asn1_encode_ticket
(asn1buf *buf, const krb5_ticket *val, unsigned int *retlen);
asn1_error_code asn1_encode_encryption_key
(asn1buf *buf, const krb5_keyblock *val, unsigned int *retlen);
asn1_error_code asn1_encode_kerberos_time
(asn1buf *buf, const krb5_timestamp val, unsigned int *retlen);
asn1_error_code asn1_encode_checksum
(asn1buf *buf, const krb5_checksum *val, unsigned int *retlen);
asn1_error_code asn1_encode_host_address
(asn1buf *buf, const krb5_address *val, unsigned int *retlen);
asn1_error_code asn1_encode_host_addresses
(asn1buf *buf, const krb5_address **val, unsigned int *retlen);
asn1_error_code asn1_encode_transited_encoding
(asn1buf *buf, const krb5_transited *val, unsigned int *retlen);
asn1_error_code asn1_encode_last_req
(asn1buf *buf, const krb5_last_req_entry **val,
unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_pa_data
(asn1buf *buf, const krb5_pa_data **val, unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_ticket
(asn1buf *buf, const krb5_ticket **val, unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_enctype
(asn1buf *buf,
const int len, const krb5_enctype *val,
unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_checksum
(asn1buf *buf, const krb5_checksum **val, unsigned int *retlen);
asn1_error_code asn1_encode_kdc_req
(int msg_type,
asn1buf *buf,
const krb5_kdc_req *val,
unsigned int *retlen);
asn1_error_code asn1_encode_kdc_req_body
(asn1buf *buf, const krb5_kdc_req *val, unsigned int *retlen);
asn1_error_code asn1_encode_krb_safe_body
(asn1buf *buf, const krb5_safe *val, unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_krb_cred_info
(asn1buf *buf, const krb5_cred_info **val, unsigned int *retlen);
asn1_error_code asn1_encode_krb_cred_info
(asn1buf *buf, const krb5_cred_info *val, unsigned int *retlen);
asn1_error_code asn1_encode_last_req_entry
(asn1buf *buf, const krb5_last_req_entry *val,
unsigned int *retlen);
asn1_error_code asn1_encode_pa_data
(asn1buf *buf, const krb5_pa_data *val, unsigned int *retlen);
asn1_error_code asn1_encode_alt_method
(asn1buf *buf, const krb5_alt_method *val,
unsigned int *retlen);
asn1_error_code asn1_encode_etype_info_entry
(asn1buf *buf, const krb5_etype_info_entry *val,
unsigned int *retlen, int etype_info2);
asn1_error_code asn1_encode_etype_info
(asn1buf *buf, const krb5_etype_info_entry **val,
unsigned int *retlen, int etype_info2);
asn1_error_code asn1_encode_passwdsequence
(asn1buf *buf, const passwd_phrase_element *val, unsigned int *retlen);
asn1_error_code asn1_encode_sequence_of_passwdsequence
(asn1buf *buf, const passwd_phrase_element **val,
unsigned int *retlen);
asn1_error_code asn1_encode_sam_flags
(asn1buf * buf, const krb5_flags val, unsigned int *retlen);
asn1_error_code asn1_encode_sam_challenge
(asn1buf *buf, const krb5_sam_challenge * val, unsigned int *retlen);
asn1_error_code asn1_encode_sam_challenge_2
(asn1buf *buf, const krb5_sam_challenge_2 * val, unsigned int *retlen);
asn1_error_code asn1_encode_sam_challenge_2_body
(asn1buf *buf, const krb5_sam_challenge_2_body * val,
unsigned int *retlen);
asn1_error_code asn1_encode_sam_key
(asn1buf *buf, const krb5_sam_key *val, unsigned int *retlen);
asn1_error_code asn1_encode_enc_sam_response_enc
(asn1buf *buf, const krb5_enc_sam_response_enc *val,
unsigned int *retlen);
asn1_error_code asn1_encode_enc_sam_response_enc_2
(asn1buf *buf, const krb5_enc_sam_response_enc_2 *val,
unsigned int *retlen);
asn1_error_code asn1_encode_sam_response
(asn1buf *buf, const krb5_sam_response *val, unsigned int *retlen);
asn1_error_code asn1_encode_sam_response_2
(asn1buf *buf, const krb5_sam_response_2 *val, unsigned int *retlen);
asn1_error_code asn1_encode_predicted_sam_response
(asn1buf *buf, const krb5_predicted_sam_response *val,
unsigned int *retlen);
asn1_error_code asn1_encode_krb_saved_safe_body
(asn1buf *buf, const krb5_data *body, unsigned int *retlen);
#endif