asn1_addfield
asn1_addfield(val->last_field, n, asn1_type);
asn1_addfield(rep->next_to_last_field, n-1, asn1_type);
asn1_addfield(rep->field_i, i, asn1_type);
asn1_addfield(rep->second_field, 1, asn1_type);
asn1_addfield(rep->first_field, 0, asn1_type);
asn1_addfield(val->nonce, 2, asn1_encode_integer);
asn1_addfield(val->ctime, 1, asn1_encode_kerberos_time);
asn1_addfield(val->cusec, 0, asn1_encode_integer);
asn1_addfield(val->nonce, 4, asn1_encode_integer);
asn1_addfield(val->ctime, 3, asn1_encode_kerberos_time);
asn1_addfield(val->cusec, 2, asn1_encode_integer);
asn1_addfield(val->kdcName, 1, asn1_encode_realm);
asn1_addfield(val->kdcName, 0, asn1_encode_principal_name);
asn1_addfield((const krb5_algorithm_identifier **)val->supportedCMSTypes,2,asn1_encode_sequence_of_algorithm_identifier);
asn1_addfield(val->clientPublicValue,1,asn1_encode_subject_pk_info);
asn1_addfield(&(val->pkAuthenticator),0,asn1_encode_pk_authenticator);
asn1_addfield(val->clientPublicValue, 1, asn1_encode_subject_pk_info);
asn1_addfield(&(val->pkAuthenticator), 0, asn1_encode_pk_authenticator_draft9);
asn1_addfield((const krb5_external_principal_identifier **)val->trustedCertifiers,1,asn1_encode_sequence_of_external_principal_identifier);
asn1_addfield((const krb5_trusted_ca **)val->trustedCertifiers,1,asn1_encode_sequence_of_trusted_ca);
asn1_addfield(val->dhKeyExpiration, 2, asn1_encode_kerberos_time);
asn1_addfield(val->nonce, 1, asn1_encode_integer);
asn1_addfield(&(val->asChecksum), 1, asn1_encode_checksum);
asn1_addfield(&(val->replyKey), 0, asn1_encode_encryption_key);
asn1_addfield(val->nonce, 1, asn1_encode_integer);
asn1_addfield(&(val->replyKey), 0, asn1_encode_encryption_key);
asn1_addfield(&(val->u.dh_Info), choice_pa_pk_as_rep_dhInfo, asn1_encode_dh_rep_info);
asn1_addfield(val->type, 0, asn1_encode_integer);
asn1_addfield(val->sam_cksum, 1, asn1_encode_sequence_of_checksum);