LCOV - code coverage report
Current view: top level - bin/default/third_party/heimdal/lib/asn1 - asn1_pkinit_asn1.c (source / functions) Hit Total Coverage
Test: coverage report for v4-17-test 1498b464 Lines: 14 378 3.7 %
Date: 2024-06-13 04:01:37 Functions: 6 162 3.7 %

          Line data    Source code
       1             : /* Generated from /builds/samba-team/lts-community/samba/third_party/heimdal/lib/asn1/pkinit.asn1 */
       2             : /* Do not edit */
       3             : 
       4             : #if defined(_WIN32) && !defined(ASN1_LIB)
       5             : # error "ASN1_LIB must be defined"
       6             : #endif
       7             : #include <stdio.h>
       8             : #include <stdlib.h>
       9             : #include <time.h>
      10             : #include <string.h>
      11             : #include <errno.h>
      12             : #include <limits.h>
      13             : #include <krb5-types.h>
      14             : #include "pkinit_asn1.h"
      15             : #include "pkinit_asn1-priv.h"
      16             : #include <asn1_err.h>
      17             : #include <der.h>
      18             : #include <asn1-template.h>
      19             : 
      20             : #include <parse_units.h>
      21             : 
      22             : static const struct asn1_type_func asn1_extern_EncryptionKey = {
      23             :         (asn1_type_encode)encode_EncryptionKey,
      24             :         (asn1_type_decode)decode_EncryptionKey,
      25             :         (asn1_type_length)length_EncryptionKey,
      26             :         (asn1_type_copy)copy_EncryptionKey,
      27             :         (asn1_type_release)free_EncryptionKey,
      28             :         (asn1_type_print)print_EncryptionKey,
      29             :         sizeof(EncryptionKey)
      30             : };
      31             : static const struct asn1_type_func asn1_extern_PrincipalName = {
      32             :         (asn1_type_encode)encode_PrincipalName,
      33             :         (asn1_type_decode)decode_PrincipalName,
      34             :         (asn1_type_length)length_PrincipalName,
      35             :         (asn1_type_copy)copy_PrincipalName,
      36             :         (asn1_type_release)free_PrincipalName,
      37             :         (asn1_type_print)print_PrincipalName,
      38             :         sizeof(PrincipalName)
      39             : };
      40             : static const struct asn1_type_func asn1_extern_Realm = {
      41             :         (asn1_type_encode)encode_Realm,
      42             :         (asn1_type_decode)decode_Realm,
      43             :         (asn1_type_length)length_Realm,
      44             :         (asn1_type_copy)copy_Realm,
      45             :         (asn1_type_release)free_Realm,
      46             :         (asn1_type_print)print_Realm,
      47             :         sizeof(Realm)
      48             : };
      49             : static const struct asn1_type_func asn1_extern_KerberosTime = {
      50             :         (asn1_type_encode)encode_KerberosTime,
      51             :         (asn1_type_decode)decode_KerberosTime,
      52             :         (asn1_type_length)length_KerberosTime,
      53             :         (asn1_type_copy)copy_KerberosTime,
      54             :         (asn1_type_release)free_KerberosTime,
      55             :         (asn1_type_print)print_KerberosTime,
      56             :         sizeof(KerberosTime)
      57             : };
      58             : static const struct asn1_type_func asn1_extern_Checksum = {
      59             :         (asn1_type_encode)encode_Checksum,
      60             :         (asn1_type_decode)decode_Checksum,
      61             :         (asn1_type_length)length_Checksum,
      62             :         (asn1_type_copy)copy_Checksum,
      63             :         (asn1_type_release)free_Checksum,
      64             :         (asn1_type_print)print_Checksum,
      65             :         sizeof(Checksum)
      66             : };
      67             : static const struct asn1_type_func asn1_extern_Ticket = {
      68             :         (asn1_type_encode)encode_Ticket,
      69             :         (asn1_type_decode)decode_Ticket,
      70             :         (asn1_type_length)length_Ticket,
      71             :         (asn1_type_copy)copy_Ticket,
      72             :         (asn1_type_release)free_Ticket,
      73             :         (asn1_type_print)print_Ticket,
      74             :         sizeof(Ticket)
      75             : };
      76             : static const struct asn1_type_func asn1_extern_IssuerAndSerialNumber = {
      77             :         (asn1_type_encode)encode_IssuerAndSerialNumber,
      78             :         (asn1_type_decode)decode_IssuerAndSerialNumber,
      79             :         (asn1_type_length)length_IssuerAndSerialNumber,
      80             :         (asn1_type_copy)copy_IssuerAndSerialNumber,
      81             :         (asn1_type_release)free_IssuerAndSerialNumber,
      82             :         (asn1_type_print)print_IssuerAndSerialNumber,
      83             :         sizeof(IssuerAndSerialNumber)
      84             : };
      85             : static const struct asn1_type_func asn1_extern_SubjectPublicKeyInfo = {
      86             :         (asn1_type_encode)encode_SubjectPublicKeyInfo,
      87             :         (asn1_type_decode)decode_SubjectPublicKeyInfo,
      88             :         (asn1_type_length)length_SubjectPublicKeyInfo,
      89             :         (asn1_type_copy)copy_SubjectPublicKeyInfo,
      90             :         (asn1_type_release)free_SubjectPublicKeyInfo,
      91             :         (asn1_type_print)print_SubjectPublicKeyInfo,
      92             :         sizeof(SubjectPublicKeyInfo)
      93             : };
      94             : static const struct asn1_type_func asn1_extern_AlgorithmIdentifier = {
      95             :         (asn1_type_encode)encode_AlgorithmIdentifier,
      96             :         (asn1_type_decode)decode_AlgorithmIdentifier,
      97             :         (asn1_type_length)length_AlgorithmIdentifier,
      98             :         (asn1_type_copy)copy_AlgorithmIdentifier,
      99             :         (asn1_type_release)free_AlgorithmIdentifier,
     100             :         (asn1_type_print)print_AlgorithmIdentifier,
     101             :         sizeof(AlgorithmIdentifier)
     102             : };
     103             : static const struct asn1_type_func asn1_extern_HEIM_ANY = {
     104             :         (asn1_type_encode)encode_HEIM_ANY,
     105             :         (asn1_type_decode)decode_HEIM_ANY,
     106             :         (asn1_type_length)length_HEIM_ANY,
     107             :         (asn1_type_copy)copy_HEIM_ANY,
     108             :         (asn1_type_release)free_HEIM_ANY,
     109             :         (asn1_type_print)print_HEIM_ANY,
     110             :         sizeof(HEIM_ANY)
     111             : };
     112             : static unsigned oid_id_pkinit_variable_num[7] =  { 1, 3, 6, 1, 5, 2, 3};
     113             : const heim_oid asn1_oid_id_pkinit = { 7, oid_id_pkinit_variable_num };
     114             : 
     115             : static unsigned oid_id_pkauthdata_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 1};
     116             : const heim_oid asn1_oid_id_pkauthdata = { 8, oid_id_pkauthdata_variable_num };
     117             : 
     118             : static unsigned oid_id_pkdhkeydata_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 2};
     119             : const heim_oid asn1_oid_id_pkdhkeydata = { 8, oid_id_pkdhkeydata_variable_num };
     120             : 
     121             : static unsigned oid_id_pkrkeydata_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 3};
     122             : const heim_oid asn1_oid_id_pkrkeydata = { 8, oid_id_pkrkeydata_variable_num };
     123             : 
     124             : static unsigned oid_id_pkekuoid_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 4};
     125             : const heim_oid asn1_oid_id_pkekuoid = { 8, oid_id_pkekuoid_variable_num };
     126             : 
     127             : static unsigned oid_id_pkkdcekuoid_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 5};
     128             : const heim_oid asn1_oid_id_pkkdcekuoid = { 8, oid_id_pkkdcekuoid_variable_num };
     129             : 
     130             : static unsigned oid_id_heim_eku_pkinit_certlife_is_max_life_variable_num[6] =  { 1, 2, 752, 43, 16, 3};
     131             : const heim_oid asn1_oid_id_heim_eku_pkinit_certlife_is_max_life = { 6, oid_id_heim_eku_pkinit_certlife_is_max_life_variable_num };
     132             : 
     133             : static unsigned oid_id_apple_system_id_variable_num[7] =  { 1, 2, 840, 113635, 100, 4, 4};
     134             : const heim_oid asn1_oid_id_apple_system_id = { 7, oid_id_apple_system_id_variable_num };
     135             : 
     136             : static unsigned oid_id_pkinit_kdf_variable_num[8] =  { 1, 3, 6, 1, 5, 2, 3, 6};
     137             : const heim_oid asn1_oid_id_pkinit_kdf = { 8, oid_id_pkinit_kdf_variable_num };
     138             : 
     139             : static unsigned oid_id_pkinit_kdf_ah_sha1_variable_num[9] =  { 1, 3, 6, 1, 5, 2, 3, 6, 1};
     140             : const heim_oid asn1_oid_id_pkinit_kdf_ah_sha1 = { 9, oid_id_pkinit_kdf_ah_sha1_variable_num };
     141             : 
     142             : static unsigned oid_id_pkinit_kdf_ah_sha256_variable_num[9] =  { 1, 3, 6, 1, 5, 2, 3, 6, 2};
     143             : const heim_oid asn1_oid_id_pkinit_kdf_ah_sha256 = { 9, oid_id_pkinit_kdf_ah_sha256_variable_num };
     144             : 
     145             : static unsigned oid_id_pkinit_kdf_ah_sha512_variable_num[9] =  { 1, 3, 6, 1, 5, 2, 3, 6, 3};
     146             : const heim_oid asn1_oid_id_pkinit_kdf_ah_sha512 = { 9, oid_id_pkinit_kdf_ah_sha512_variable_num };
     147             : 
     148             : static unsigned oid_id_pkinit_san_variable_num[7] =  { 1, 3, 6, 1, 5, 2, 2};
     149             : const heim_oid asn1_oid_id_pkinit_san = { 7, oid_id_pkinit_san_variable_num };
     150             : 
     151             : static unsigned oid_id_pkinit_ms_eku_variable_num[10] =  { 1, 3, 6, 1, 4, 1, 311, 20, 2, 2};
     152             : const heim_oid asn1_oid_id_pkinit_ms_eku = { 10, oid_id_pkinit_ms_eku_variable_num };
     153             : 
     154             : static unsigned oid_id_pkinit_ms_san_variable_num[10] =  { 1, 3, 6, 1, 4, 1, 311, 20, 2, 3};
     155             : const heim_oid asn1_oid_id_pkinit_ms_san = { 10, oid_id_pkinit_ms_san_variable_num };
     156             : 
     157             : extern const struct asn1_template asn1_MS_UPN_SAN[];
     158             : extern const struct asn1_template asn1_MS_UPN_SAN[];
     159             : extern const struct asn1_template asn1_DHNonce[];
     160             : extern const struct asn1_template asn1_DHNonce[];
     161             : extern const struct asn1_template asn1_KDFAlgorithmId[];
     162             : extern const struct asn1_template asn1_TrustedCA[];
     163             : extern const struct asn1_template asn1_ExternalPrincipalIdentifier[];
     164             : extern const struct asn1_template asn1_ExternalPrincipalIdentifiers[];
     165             : extern const struct asn1_template asn1_PA_PK_AS_REQ[];
     166             : extern const struct asn1_template asn1_PKAuthenticator[];
     167             : extern const struct asn1_template asn1_AuthPack[];
     168             : extern const struct asn1_template asn1_TD_TRUSTED_CERTIFIERS[];
     169             : extern const struct asn1_template asn1_TD_TRUSTED_CERTIFIERS[];
     170             : extern const struct asn1_template asn1_TD_INVALID_CERTIFICATES[];
     171             : extern const struct asn1_template asn1_TD_INVALID_CERTIFICATES[];
     172             : extern const struct asn1_template asn1_AD_INITIAL_VERIFIED_CAS[];
     173             : extern const struct asn1_template asn1_DHRepInfo[];
     174             : extern const struct asn1_template asn1_PA_PK_AS_REP[];
     175             : extern const struct asn1_template asn1_KDCDHKeyInfo[];
     176             : extern const struct asn1_template asn1_ReplyKeyPack[];
     177             : extern const struct asn1_template asn1_TD_DH_PARAMETERS[];
     178             : extern const struct asn1_template asn1_PKAuthenticator_Win2k[];
     179             : extern const struct asn1_template asn1_AuthPack_Win2k[];
     180             : extern const struct asn1_template asn1_TrustedCA_Win2k[];
     181             : extern const struct asn1_template asn1_PA_PK_AS_REQ_Win2k[];
     182             : extern const struct asn1_template asn1_PA_PK_AS_REP_Win2k[];
     183             : extern const struct asn1_template asn1_KDCDHKeyInfo_Win2k[];
     184             : extern const struct asn1_template asn1_ReplyKeyPack_Win2k[];
     185             : extern const struct asn1_template asn1_PA_PK_AS_REP_BTMM[];
     186             : extern const struct asn1_template asn1_PkinitSP80056AOtherInfo[];
     187             : extern const struct asn1_template asn1_PkinitSuppPubInfo[];
     188             : /* template_members: MS_UPN_SAN exp exp */
     189             : /* generate_template_type: MS_UPN_SAN_tag__0 */
     190             : const struct asn1_template asn1_MS_UPN_SAN_tag__0[] = {
     191             : /* 0 */ { 0, sizeof(heim_utf8_string), ((void *)(uintptr_t)1) },
     192             : /* 1 */ { A1_PARSE_T(A1T_UTF8_STRING), 0, NULL }
     193             : };
     194             : /* generate_template_type: MS_UPN_SAN */
     195             : const struct asn1_template asn1_MS_UPN_SAN[] = {
     196             : /* 0 */ { 0, sizeof(MS_UPN_SAN), ((void *)(uintptr_t)1) },
     197             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_UTF8String), 0, asn1_MS_UPN_SAN_tag__0 }
     198             : };
     199             : 
     200             : int ASN1CALL
     201           0 : decode_MS_UPN_SAN(const unsigned char *p, size_t len, MS_UPN_SAN *data, size_t *size)
     202             : {
     203           0 :     memset(data, 0, sizeof(*data));
     204           0 :     return _asn1_decode_top(asn1_MS_UPN_SAN, 0|0, p, len, data, size);
     205             : }
     206             : 
     207             : 
     208             : int ASN1CALL
     209           0 : encode_MS_UPN_SAN(unsigned char *p, size_t len, const MS_UPN_SAN *data, size_t *size)
     210             : {
     211           0 :     return _asn1_encode(asn1_MS_UPN_SAN, p, len, data, size);
     212             : }
     213             : 
     214             : 
     215             : size_t ASN1CALL
     216           0 : length_MS_UPN_SAN(const MS_UPN_SAN *data)
     217             : {
     218           0 :     return _asn1_length(asn1_MS_UPN_SAN, data);
     219             : }
     220             : 
     221             : 
     222             : void ASN1CALL
     223           0 : free_MS_UPN_SAN(MS_UPN_SAN *data)
     224             : {
     225           0 :     _asn1_free_top(asn1_MS_UPN_SAN, data);
     226           0 : }
     227             : 
     228             : 
     229             : int ASN1CALL
     230           0 : copy_MS_UPN_SAN(const MS_UPN_SAN *from, MS_UPN_SAN *to)
     231             : {
     232           0 :     return _asn1_copy_top(asn1_MS_UPN_SAN, from, to);
     233             : }
     234             : 
     235             : 
     236             : char * ASN1CALL
     237           0 : print_MS_UPN_SAN(const MS_UPN_SAN *data, int flags)
     238             : {
     239           0 :     return _asn1_print_top(asn1_MS_UPN_SAN, flags, data);
     240             : }
     241             : 
     242             : /* template_members: DHNonce exp exp */
     243             : /* generate_template_type: DHNonce_tag__1 */
     244             : const struct asn1_template asn1_DHNonce_tag__1[] = {
     245             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
     246             : /* 1 */ { A1_PARSE_T(A1T_OCTET_STRING), 0, NULL }
     247             : };
     248             : /* generate_template_type: DHNonce */
     249             : const struct asn1_template asn1_DHNonce[] = {
     250             : /* 0 */ { 0, sizeof(DHNonce), ((void *)(uintptr_t)1) },
     251             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), 0, asn1_DHNonce_tag__1 }
     252             : };
     253             : 
     254             : int ASN1CALL
     255           0 : decode_DHNonce(const unsigned char *p, size_t len, DHNonce *data, size_t *size)
     256             : {
     257           0 :     memset(data, 0, sizeof(*data));
     258           0 :     return _asn1_decode_top(asn1_DHNonce, 0|0, p, len, data, size);
     259             : }
     260             : 
     261             : 
     262             : int ASN1CALL
     263           0 : encode_DHNonce(unsigned char *p, size_t len, const DHNonce *data, size_t *size)
     264             : {
     265           0 :     return _asn1_encode(asn1_DHNonce, p, len, data, size);
     266             : }
     267             : 
     268             : 
     269             : size_t ASN1CALL
     270           0 : length_DHNonce(const DHNonce *data)
     271             : {
     272           0 :     return _asn1_length(asn1_DHNonce, data);
     273             : }
     274             : 
     275             : 
     276             : void ASN1CALL
     277           0 : free_DHNonce(DHNonce *data)
     278             : {
     279           0 :     _asn1_free_top(asn1_DHNonce, data);
     280           0 : }
     281             : 
     282             : 
     283             : int ASN1CALL
     284           0 : copy_DHNonce(const DHNonce *from, DHNonce *to)
     285             : {
     286           0 :     return _asn1_copy_top(asn1_DHNonce, from, to);
     287             : }
     288             : 
     289             : 
     290             : char * ASN1CALL
     291           0 : print_DHNonce(const DHNonce *data, int flags)
     292             : {
     293           0 :     return _asn1_print_top(asn1_DHNonce, flags, data);
     294             : }
     295             : 
     296             : /* template_members: KDFAlgorithmId exp exp */
     297             : /* tsequence: members isstruct: 1 */
     298             : /* template_members: KDFAlgorithmId exp exp */
     299             : /* template_members: heim_oid exp exp */
     300             : /* generate_template_type: heim_oid_tag_kdf_id_4 */
     301             : const struct asn1_template asn1_heim_oid_tag_kdf_id_4[] = {
     302             : /* 0 */ { 0, sizeof(heim_oid), ((void *)(uintptr_t)1) },
     303             : /* 1 */ { A1_PARSE_T(A1T_OID), 0, NULL }
     304             : };
     305             : /* generate_template_type: KDFAlgorithmId_tag_kdf_id_3 */
     306             : const struct asn1_template asn1_KDFAlgorithmId_tag_kdf_id_3[] = {
     307             : /* 0 */ { 0, sizeof(heim_oid), ((void *)(uintptr_t)1) },
     308             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OID), 0, asn1_heim_oid_tag_kdf_id_4 }
     309             : };
     310             : /* generate_template_type: KDFAlgorithmId_tag__2 */
     311             : const struct asn1_template asn1_KDFAlgorithmId_tag__2[] = {
     312             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct KDFAlgorithmId), ((void *)(uintptr_t)4) },
     313             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct KDFAlgorithmId, kdf_id), asn1_KDFAlgorithmId_tag_kdf_id_3 },
     314             : /* 2 */ { A1_OP_NAME, 0, "KDFAlgorithmId" },
     315             : /* 3 */ { A1_OP_NAME, 0, "kdf-id" },
     316             : /* 4 */ { A1_OP_NAME, 0, "..." }
     317             : };
     318             : /* generate_template_type: KDFAlgorithmId */
     319             : const struct asn1_template asn1_KDFAlgorithmId[] = {
     320             : /* 0 */ { 0, sizeof(KDFAlgorithmId), ((void *)(uintptr_t)1) },
     321             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_KDFAlgorithmId_tag__2 }
     322             : };
     323             : 
     324             : int ASN1CALL
     325           0 : decode_KDFAlgorithmId(const unsigned char *p, size_t len, KDFAlgorithmId *data, size_t *size)
     326             : {
     327           0 :     memset(data, 0, sizeof(*data));
     328           0 :     return _asn1_decode_top(asn1_KDFAlgorithmId, 0|0, p, len, data, size);
     329             : }
     330             : 
     331             : 
     332             : int ASN1CALL
     333           0 : encode_KDFAlgorithmId(unsigned char *p, size_t len, const KDFAlgorithmId *data, size_t *size)
     334             : {
     335           0 :     return _asn1_encode(asn1_KDFAlgorithmId, p, len, data, size);
     336             : }
     337             : 
     338             : 
     339             : size_t ASN1CALL
     340           0 : length_KDFAlgorithmId(const KDFAlgorithmId *data)
     341             : {
     342           0 :     return _asn1_length(asn1_KDFAlgorithmId, data);
     343             : }
     344             : 
     345             : 
     346             : void ASN1CALL
     347           0 : free_KDFAlgorithmId(KDFAlgorithmId *data)
     348             : {
     349           0 :     _asn1_free_top(asn1_KDFAlgorithmId, data);
     350           0 : }
     351             : 
     352             : 
     353             : int ASN1CALL
     354           0 : copy_KDFAlgorithmId(const KDFAlgorithmId *from, KDFAlgorithmId *to)
     355             : {
     356           0 :     return _asn1_copy_top(asn1_KDFAlgorithmId, from, to);
     357             : }
     358             : 
     359             : 
     360             : char * ASN1CALL
     361           0 : print_KDFAlgorithmId(const KDFAlgorithmId *data, int flags)
     362             : {
     363           0 :     return _asn1_print_top(asn1_KDFAlgorithmId, flags, data);
     364             : }
     365             : 
     366             : /* template_members: TrustedCA exp exp */
     367             : /* tsequence: members isstruct: 1 */
     368             : /* template_members: TrustedCA exp imp */
     369             : /* template_members: heim_octet_string exp exp */
     370             : /* generate_template_type: heim_octet_string_tag_caName_7 */
     371             : /* generate_template_type: TrustedCA_tag_caName_6 */
     372             : const struct asn1_template asn1_TrustedCA_tag_caName_6[] = {
     373             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
     374             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), 0, asn1_DHNonce_tag__1 }
     375             : };
     376             : /* template_members: TrustedCA exp exp */
     377             : /* template_members: heim_integer exp exp */
     378             : /* generate_template_type: heim_integer_tag_certificateSerialNumber_9 */
     379             : const struct asn1_template asn1_heim_integer_tag_certificateSerialNumber_9[] = {
     380             : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)1) },
     381             : /* 1 */ { A1_PARSE_T(A1T_HEIM_INTEGER), 0, NULL }
     382             : };
     383             : /* generate_template_type: TrustedCA_tag_certificateSerialNumber_8 */
     384             : const struct asn1_template asn1_TrustedCA_tag_certificateSerialNumber_8[] = {
     385             : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)1) },
     386             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), 0, asn1_heim_integer_tag_certificateSerialNumber_9 }
     387             : };
     388             : /* template_members: TrustedCA exp exp */
     389             : /* template_members: heim_octet_string exp exp */
     390             : /* generate_template_type: heim_octet_string_tag_subjectKeyIdentifier_11 */
     391             : /* generate_template_type: TrustedCA_tag_subjectKeyIdentifier_10 */
     392             : /* generate_template_type: TrustedCA_tag__5 */
     393             : const struct asn1_template asn1_TrustedCA_tag__5[] = {
     394             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct TrustedCA), ((void *)(uintptr_t)8) },
     395             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, offsetof(struct TrustedCA, caName), asn1_TrustedCA_tag_caName_6 },
     396             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct TrustedCA, certificateSerialNumber), asn1_TrustedCA_tag_certificateSerialNumber_8 },
     397             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct TrustedCA, subjectKeyIdentifier), asn1_TrustedCA_tag_caName_6 },
     398             : /* 4 */ { A1_OP_NAME, 0, "TrustedCA" },
     399             : /* 5 */ { A1_OP_NAME, 0, "caName" },
     400             : /* 6 */ { A1_OP_NAME, 0, "certificateSerialNumber" },
     401             : /* 7 */ { A1_OP_NAME, 0, "subjectKeyIdentifier" },
     402             : /* 8 */ { A1_OP_NAME, 0, "..." }
     403             : };
     404             : /* generate_template_type: TrustedCA */
     405             : const struct asn1_template asn1_TrustedCA[] = {
     406             : /* 0 */ { 0, sizeof(TrustedCA), ((void *)(uintptr_t)1) },
     407             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_TrustedCA_tag__5 }
     408             : };
     409             : 
     410             : int ASN1CALL
     411           0 : decode_TrustedCA(const unsigned char *p, size_t len, TrustedCA *data, size_t *size)
     412             : {
     413           0 :     memset(data, 0, sizeof(*data));
     414           0 :     return _asn1_decode_top(asn1_TrustedCA, 0|0, p, len, data, size);
     415             : }
     416             : 
     417             : 
     418             : int ASN1CALL
     419           0 : encode_TrustedCA(unsigned char *p, size_t len, const TrustedCA *data, size_t *size)
     420             : {
     421           0 :     return _asn1_encode(asn1_TrustedCA, p, len, data, size);
     422             : }
     423             : 
     424             : 
     425             : size_t ASN1CALL
     426           0 : length_TrustedCA(const TrustedCA *data)
     427             : {
     428           0 :     return _asn1_length(asn1_TrustedCA, data);
     429             : }
     430             : 
     431             : 
     432             : void ASN1CALL
     433           0 : free_TrustedCA(TrustedCA *data)
     434             : {
     435           0 :     _asn1_free_top(asn1_TrustedCA, data);
     436           0 : }
     437             : 
     438             : 
     439             : int ASN1CALL
     440           0 : copy_TrustedCA(const TrustedCA *from, TrustedCA *to)
     441             : {
     442           0 :     return _asn1_copy_top(asn1_TrustedCA, from, to);
     443             : }
     444             : 
     445             : 
     446             : char * ASN1CALL
     447           0 : print_TrustedCA(const TrustedCA *data, int flags)
     448             : {
     449           0 :     return _asn1_print_top(asn1_TrustedCA, flags, data);
     450             : }
     451             : 
     452             : /* template_members: ExternalPrincipalIdentifier exp exp */
     453             : /* tsequence: members isstruct: 1 */
     454             : /* template_members: ExternalPrincipalIdentifier exp imp */
     455             : /* template_members: heim_octet_string exp exp */
     456             : /* generate_template_type: heim_octet_string_tag_subjectName_14 */
     457             : /* generate_template_type: ExternalPrincipalIdentifier_tag_subjectName_13 */
     458             : /* template_members: ExternalPrincipalIdentifier exp imp */
     459             : /* template_members: heim_octet_string exp exp */
     460             : /* generate_template_type: heim_octet_string_tag_issuerAndSerialNumber_16 */
     461             : /* generate_template_type: ExternalPrincipalIdentifier_tag_issuerAndSerialNumber_15 */
     462             : /* template_members: ExternalPrincipalIdentifier exp imp */
     463             : /* template_members: heim_octet_string exp exp */
     464             : /* generate_template_type: heim_octet_string_tag_subjectKeyIdentifier_18 */
     465             : /* generate_template_type: ExternalPrincipalIdentifier_tag_subjectKeyIdentifier_17 */
     466             : /* generate_template_type: ExternalPrincipalIdentifier_tag__12 */
     467             : const struct asn1_template asn1_ExternalPrincipalIdentifier_tag__12[] = {
     468             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct ExternalPrincipalIdentifier), ((void *)(uintptr_t)8) },
     469             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct ExternalPrincipalIdentifier, subjectName), asn1_TrustedCA_tag_caName_6 },
     470             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,1)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct ExternalPrincipalIdentifier, issuerAndSerialNumber), asn1_TrustedCA_tag_caName_6 },
     471             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,2)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct ExternalPrincipalIdentifier, subjectKeyIdentifier), asn1_TrustedCA_tag_caName_6 },
     472             : /* 4 */ { A1_OP_NAME, 0, "ExternalPrincipalIdentifier" },
     473             : /* 5 */ { A1_OP_NAME, 0, "subjectName" },
     474             : /* 6 */ { A1_OP_NAME, 0, "issuerAndSerialNumber" },
     475             : /* 7 */ { A1_OP_NAME, 0, "subjectKeyIdentifier" },
     476             : /* 8 */ { A1_OP_NAME, 0, "..." }
     477             : };
     478             : /* generate_template_type: ExternalPrincipalIdentifier */
     479             : const struct asn1_template asn1_ExternalPrincipalIdentifier[] = {
     480             : /* 0 */ { 0, sizeof(ExternalPrincipalIdentifier), ((void *)(uintptr_t)1) },
     481             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ExternalPrincipalIdentifier_tag__12 }
     482             : };
     483             : 
     484             : int ASN1CALL
     485           0 : decode_ExternalPrincipalIdentifier(const unsigned char *p, size_t len, ExternalPrincipalIdentifier *data, size_t *size)
     486             : {
     487           0 :     memset(data, 0, sizeof(*data));
     488           0 :     return _asn1_decode_top(asn1_ExternalPrincipalIdentifier, 0|0, p, len, data, size);
     489             : }
     490             : 
     491             : 
     492             : int ASN1CALL
     493           0 : encode_ExternalPrincipalIdentifier(unsigned char *p, size_t len, const ExternalPrincipalIdentifier *data, size_t *size)
     494             : {
     495           0 :     return _asn1_encode(asn1_ExternalPrincipalIdentifier, p, len, data, size);
     496             : }
     497             : 
     498             : 
     499             : size_t ASN1CALL
     500           0 : length_ExternalPrincipalIdentifier(const ExternalPrincipalIdentifier *data)
     501             : {
     502           0 :     return _asn1_length(asn1_ExternalPrincipalIdentifier, data);
     503             : }
     504             : 
     505             : 
     506             : void ASN1CALL
     507           0 : free_ExternalPrincipalIdentifier(ExternalPrincipalIdentifier *data)
     508             : {
     509           0 :     _asn1_free_top(asn1_ExternalPrincipalIdentifier, data);
     510           0 : }
     511             : 
     512             : 
     513             : int ASN1CALL
     514           0 : copy_ExternalPrincipalIdentifier(const ExternalPrincipalIdentifier *from, ExternalPrincipalIdentifier *to)
     515             : {
     516           0 :     return _asn1_copy_top(asn1_ExternalPrincipalIdentifier, from, to);
     517             : }
     518             : 
     519             : 
     520             : char * ASN1CALL
     521           0 : print_ExternalPrincipalIdentifier(const ExternalPrincipalIdentifier *data, int flags)
     522             : {
     523           0 :     return _asn1_print_top(asn1_ExternalPrincipalIdentifier, flags, data);
     524             : }
     525             : 
     526             : /* template_members: ExternalPrincipalIdentifiers exp exp */
     527             : /* generate_template_type: ExternalPrincipalIdentifier_seofTstruct_0 */
     528             : const struct asn1_template asn1_ExternalPrincipalIdentifier_seofTstruct_0[] = {
     529             : /* 0 */ { 0, sizeof(ExternalPrincipalIdentifier), ((void *)(uintptr_t)1) },
     530             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifier }
     531             : };
     532             : /* generate_template_type: ExternalPrincipalIdentifiers_tag__19 */
     533             : const struct asn1_template asn1_ExternalPrincipalIdentifiers_tag__19[] = {
     534             : /* 0 */ { 0, sizeof(ExternalPrincipalIdentifier), ((void *)(uintptr_t)1) },
     535             : /* 1 */ { A1_OP_SEQOF, 0, asn1_ExternalPrincipalIdentifier_seofTstruct_0 }
     536             : };
     537             : /* generate_template_type: ExternalPrincipalIdentifiers */
     538             : const struct asn1_template asn1_ExternalPrincipalIdentifiers[] = {
     539             : /* 0 */ { 0, sizeof(ExternalPrincipalIdentifiers), ((void *)(uintptr_t)1) },
     540             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ExternalPrincipalIdentifiers_tag__19 }
     541             : };
     542             : 
     543             : int ASN1CALL
     544           0 : decode_ExternalPrincipalIdentifiers(const unsigned char *p, size_t len, ExternalPrincipalIdentifiers *data, size_t *size)
     545             : {
     546           0 :     memset(data, 0, sizeof(*data));
     547           0 :     return _asn1_decode_top(asn1_ExternalPrincipalIdentifiers, 0|0, p, len, data, size);
     548             : }
     549             : 
     550             : 
     551             : int ASN1CALL
     552           0 : encode_ExternalPrincipalIdentifiers(unsigned char *p, size_t len, const ExternalPrincipalIdentifiers *data, size_t *size)
     553             : {
     554           0 :     return _asn1_encode(asn1_ExternalPrincipalIdentifiers, p, len, data, size);
     555             : }
     556             : 
     557             : 
     558             : size_t ASN1CALL
     559           0 : length_ExternalPrincipalIdentifiers(const ExternalPrincipalIdentifiers *data)
     560             : {
     561           0 :     return _asn1_length(asn1_ExternalPrincipalIdentifiers, data);
     562             : }
     563             : 
     564             : 
     565             : void ASN1CALL
     566           0 : free_ExternalPrincipalIdentifiers(ExternalPrincipalIdentifiers *data)
     567             : {
     568           0 :     _asn1_free_top(asn1_ExternalPrincipalIdentifiers, data);
     569           0 : }
     570             : 
     571             : 
     572             : int ASN1CALL
     573           0 : copy_ExternalPrincipalIdentifiers(const ExternalPrincipalIdentifiers *from, ExternalPrincipalIdentifiers *to)
     574             : {
     575           0 :     return _asn1_copy_top(asn1_ExternalPrincipalIdentifiers, from, to);
     576             : }
     577             : 
     578             : 
     579             : char * ASN1CALL
     580           0 : print_ExternalPrincipalIdentifiers(const ExternalPrincipalIdentifiers *data, int flags)
     581             : {
     582           0 :     return _asn1_print_top(asn1_ExternalPrincipalIdentifiers, flags, data);
     583             : }
     584             : 
     585             : /* template_members: PA_PK_AS_REQ exp exp */
     586             : /* tsequence: members isstruct: 1 */
     587             : /* template_members: PA_PK_AS_REQ exp imp */
     588             : /* template_members: heim_octet_string exp exp */
     589             : /* generate_template_type: heim_octet_string_tag_signedAuthPack_22 */
     590             : /* generate_template_type: PA_PK_AS_REQ_tag_signedAuthPack_21 */
     591             : /* template_members: PA_PK_AS_REQ exp exp */
     592             : /* generate_template_type: PA_PK_AS_REQ_tag_trustedCertifiers_23 */
     593             : const struct asn1_template asn1_PA_PK_AS_REQ_tag_trustedCertifiers_23[] = {
     594             : /* 0 */ { 0, sizeof(ExternalPrincipalIdentifiers), ((void *)(uintptr_t)1) },
     595             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifiers }
     596             : };
     597             : /* template_members: PA_PK_AS_REQ exp imp */
     598             : /* template_members: heim_octet_string exp exp */
     599             : /* generate_template_type: heim_octet_string_tag_kdcPkId_25 */
     600             : /* generate_template_type: PA_PK_AS_REQ_tag_kdcPkId_24 */
     601             : /* generate_template_type: PA_PK_AS_REQ_tag__20 */
     602             : const struct asn1_template asn1_PA_PK_AS_REQ_tag__20[] = {
     603             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct PA_PK_AS_REQ), ((void *)(uintptr_t)8) },
     604             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, offsetof(struct PA_PK_AS_REQ, signedAuthPack), asn1_TrustedCA_tag_caName_6 },
     605             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REQ, trustedCertifiers), asn1_PA_PK_AS_REQ_tag_trustedCertifiers_23 },
     606             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,2)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct PA_PK_AS_REQ, kdcPkId), asn1_TrustedCA_tag_caName_6 },
     607             : /* 4 */ { A1_OP_NAME, 0, "PA_PK_AS_REQ" },
     608             : /* 5 */ { A1_OP_NAME, 0, "signedAuthPack" },
     609             : /* 6 */ { A1_OP_NAME, 0, "trustedCertifiers" },
     610             : /* 7 */ { A1_OP_NAME, 0, "kdcPkId" },
     611             : /* 8 */ { A1_OP_NAME, 0, "..." }
     612             : };
     613             : /* generate_template_type: PA_PK_AS_REQ */
     614             : const struct asn1_template asn1_PA_PK_AS_REQ[] = {
     615             : /* 0 */ { 0, sizeof(PA_PK_AS_REQ), ((void *)(uintptr_t)1) },
     616             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REQ_tag__20 }
     617             : };
     618             : 
     619             : int ASN1CALL
     620           0 : decode_PA_PK_AS_REQ(const unsigned char *p, size_t len, PA_PK_AS_REQ *data, size_t *size)
     621             : {
     622           0 :     memset(data, 0, sizeof(*data));
     623           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REQ, 0|0, p, len, data, size);
     624             : }
     625             : 
     626             : 
     627             : int ASN1CALL
     628          77 : encode_PA_PK_AS_REQ(unsigned char *p, size_t len, const PA_PK_AS_REQ *data, size_t *size)
     629             : {
     630          77 :     return _asn1_encode(asn1_PA_PK_AS_REQ, p, len, data, size);
     631             : }
     632             : 
     633             : 
     634             : size_t ASN1CALL
     635          77 : length_PA_PK_AS_REQ(const PA_PK_AS_REQ *data)
     636             : {
     637          77 :     return _asn1_length(asn1_PA_PK_AS_REQ, data);
     638             : }
     639             : 
     640             : 
     641             : void ASN1CALL
     642          77 : free_PA_PK_AS_REQ(PA_PK_AS_REQ *data)
     643             : {
     644          77 :     _asn1_free_top(asn1_PA_PK_AS_REQ, data);
     645          77 : }
     646             : 
     647             : 
     648             : int ASN1CALL
     649           0 : copy_PA_PK_AS_REQ(const PA_PK_AS_REQ *from, PA_PK_AS_REQ *to)
     650             : {
     651           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REQ, from, to);
     652             : }
     653             : 
     654             : 
     655             : char * ASN1CALL
     656           0 : print_PA_PK_AS_REQ(const PA_PK_AS_REQ *data, int flags)
     657             : {
     658           0 :     return _asn1_print_top(asn1_PA_PK_AS_REQ, flags, data);
     659             : }
     660             : 
     661             : /* template_members: PKAuthenticator exp exp */
     662             : /* tsequence: members isstruct: 1 */
     663             : /* template_members: PKAuthenticator exp exp */
     664             : /* template_members: heim_integer exp exp */
     665             : /* generate_template_type: heim_integer_tag_cusec_28 */
     666             : /* generate_template_type: PKAuthenticator_tag_cusec_27 */
     667             : /* template_members: PKAuthenticator exp exp */
     668             : /* generate_template_type: PKAuthenticator_tag_ctime_29 */
     669             : const struct asn1_template asn1_PKAuthenticator_tag_ctime_29[] = {
     670             : /* 0 */ { 0, sizeof(KerberosTime), ((void *)(uintptr_t)1) },
     671             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_KerberosTime}
     672             : };
     673             : /* template_members: PKAuthenticator exp exp */
     674             : /* template_members: unsigned exp exp */
     675             : /* generate_template_type: unsigned_tag_nonce_31 */
     676             : const struct asn1_template asn1_unsigned_tag_nonce_31[] = {
     677             : /* 0 */ { 0, sizeof(unsigned), ((void *)(uintptr_t)1) },
     678             : /* 1 */ { A1_PARSE_T(A1T_UNSIGNED), 0, NULL }
     679             : };
     680             : /* generate_template_type: PKAuthenticator_tag_nonce_30 */
     681             : const struct asn1_template asn1_PKAuthenticator_tag_nonce_30[] = {
     682             : /* 0 */ { 0, sizeof(unsigned), ((void *)(uintptr_t)1) },
     683             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), 0, asn1_unsigned_tag_nonce_31 }
     684             : };
     685             : /* template_members: PKAuthenticator exp exp */
     686             : /* template_members: heim_octet_string exp exp */
     687             : /* generate_template_type: heim_octet_string_tag_paChecksum_33 */
     688             : /* generate_template_type: PKAuthenticator_tag_paChecksum_32 */
     689             : /* generate_template_type: PKAuthenticator_tag__26 */
     690             : const struct asn1_template asn1_PKAuthenticator_tag__26[] = {
     691             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct PKAuthenticator), ((void *)(uintptr_t)10) },
     692             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PKAuthenticator, cusec), asn1_TrustedCA_tag_certificateSerialNumber_8 },
     693             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PKAuthenticator, ctime), asn1_PKAuthenticator_tag_ctime_29 },
     694             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PKAuthenticator, nonce), asn1_PKAuthenticator_tag_nonce_30 },
     695             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct PKAuthenticator, paChecksum), asn1_TrustedCA_tag_caName_6 },
     696             : /* 5 */ { A1_OP_NAME, 0, "PKAuthenticator" },
     697             : /* 6 */ { A1_OP_NAME, 0, "cusec" },
     698             : /* 7 */ { A1_OP_NAME, 0, "ctime" },
     699             : /* 8 */ { A1_OP_NAME, 0, "nonce" },
     700             : /* 9 */ { A1_OP_NAME, 0, "paChecksum" },
     701             : /* 10 */ { A1_OP_NAME, 0, "..." }
     702             : };
     703             : /* generate_template_type: PKAuthenticator */
     704             : const struct asn1_template asn1_PKAuthenticator[] = {
     705             : /* 0 */ { 0, sizeof(PKAuthenticator), ((void *)(uintptr_t)1) },
     706             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PKAuthenticator_tag__26 }
     707             : };
     708             : 
     709             : int ASN1CALL
     710           0 : decode_PKAuthenticator(const unsigned char *p, size_t len, PKAuthenticator *data, size_t *size)
     711             : {
     712           0 :     memset(data, 0, sizeof(*data));
     713           0 :     return _asn1_decode_top(asn1_PKAuthenticator, 0|0, p, len, data, size);
     714             : }
     715             : 
     716             : 
     717             : int ASN1CALL
     718           0 : encode_PKAuthenticator(unsigned char *p, size_t len, const PKAuthenticator *data, size_t *size)
     719             : {
     720           0 :     return _asn1_encode(asn1_PKAuthenticator, p, len, data, size);
     721             : }
     722             : 
     723             : 
     724             : size_t ASN1CALL
     725           0 : length_PKAuthenticator(const PKAuthenticator *data)
     726             : {
     727           0 :     return _asn1_length(asn1_PKAuthenticator, data);
     728             : }
     729             : 
     730             : 
     731             : void ASN1CALL
     732           0 : free_PKAuthenticator(PKAuthenticator *data)
     733             : {
     734           0 :     _asn1_free_top(asn1_PKAuthenticator, data);
     735           0 : }
     736             : 
     737             : 
     738             : int ASN1CALL
     739           0 : copy_PKAuthenticator(const PKAuthenticator *from, PKAuthenticator *to)
     740             : {
     741           0 :     return _asn1_copy_top(asn1_PKAuthenticator, from, to);
     742             : }
     743             : 
     744             : 
     745             : char * ASN1CALL
     746           0 : print_PKAuthenticator(const PKAuthenticator *data, int flags)
     747             : {
     748           0 :     return _asn1_print_top(asn1_PKAuthenticator, flags, data);
     749             : }
     750             : 
     751             : /* template_members: AuthPack exp exp */
     752             : /* tsequence: members isstruct: 1 */
     753             : /* template_members: AuthPack exp exp */
     754             : /* generate_template_type: AuthPack_tag_pkAuthenticator_35 */
     755             : const struct asn1_template asn1_AuthPack_tag_pkAuthenticator_35[] = {
     756             : /* 0 */ { 0, sizeof(PKAuthenticator), ((void *)(uintptr_t)1) },
     757             : /* 1 */ { A1_OP_TYPE , 0, asn1_PKAuthenticator }
     758             : };
     759             : /* template_members: AuthPack exp exp */
     760             : /* generate_template_type: AuthPack_tag_clientPublicValue_36 */
     761             : const struct asn1_template asn1_AuthPack_tag_clientPublicValue_36[] = {
     762             : /* 0 */ { 0, sizeof(SubjectPublicKeyInfo), ((void *)(uintptr_t)1) },
     763             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_SubjectPublicKeyInfo}
     764             : };
     765             : /* template_members: AuthPack exp exp */
     766             : /* template_members: AuthPack exp exp */
     767             : /* generate_template_type: AuthPack_supportedCMSTypes_1 */
     768             : const struct asn1_template asn1_AuthPack_supportedCMSTypes_1[] = {
     769             : /* 0 */ { 0, sizeof(AlgorithmIdentifier), ((void *)(uintptr_t)1) },
     770             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_AlgorithmIdentifier}
     771             : };
     772             : /* generate_template_type: AuthPack_tag_supportedCMSTypes_38 */
     773             : const struct asn1_template asn1_AuthPack_tag_supportedCMSTypes_38[] = {
     774             : /* 0 */ { 0, sizeof(struct AuthPack_supportedCMSTypes), ((void *)(uintptr_t)1) },
     775             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedCMSTypes_1 }
     776             : };
     777             : /* generate_template_type: AuthPack_tag_supportedCMSTypes_37 */
     778             : const struct asn1_template asn1_AuthPack_tag_supportedCMSTypes_37[] = {
     779             : /* 0 */ { 0, sizeof(struct AuthPack_supportedCMSTypes), ((void *)(uintptr_t)1) },
     780             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag_supportedCMSTypes_38 }
     781             : };
     782             : /* template_members: AuthPack exp exp */
     783             : /* generate_template_type: AuthPack_tag_clientDHNonce_39 */
     784             : const struct asn1_template asn1_AuthPack_tag_clientDHNonce_39[] = {
     785             : /* 0 */ { 0, sizeof(DHNonce), ((void *)(uintptr_t)1) },
     786             : /* 1 */ { A1_OP_TYPE , 0, asn1_DHNonce }
     787             : };
     788             : /* template_members: AuthPack exp exp */
     789             : /* template_members: AuthPack exp exp */
     790             : /* generate_template_type: AuthPack_supportedKDFs_2 */
     791             : const struct asn1_template asn1_AuthPack_supportedKDFs_2[] = {
     792             : /* 0 */ { 0, sizeof(KDFAlgorithmId), ((void *)(uintptr_t)1) },
     793             : /* 1 */ { A1_OP_TYPE , 0, asn1_KDFAlgorithmId }
     794             : };
     795             : /* generate_template_type: AuthPack_tag_supportedKDFs_41 */
     796             : const struct asn1_template asn1_AuthPack_tag_supportedKDFs_41[] = {
     797             : /* 0 */ { 0, sizeof(struct AuthPack_supportedKDFs), ((void *)(uintptr_t)1) },
     798             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedKDFs_2 }
     799             : };
     800             : /* generate_template_type: AuthPack_tag_supportedKDFs_40 */
     801             : const struct asn1_template asn1_AuthPack_tag_supportedKDFs_40[] = {
     802             : /* 0 */ { 0, sizeof(struct AuthPack_supportedKDFs), ((void *)(uintptr_t)1) },
     803             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag_supportedKDFs_41 }
     804             : };
     805             : /* generate_template_type: AuthPack_tag__34 */
     806             : const struct asn1_template asn1_AuthPack_tag__34[] = {
     807             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct AuthPack), ((void *)(uintptr_t)13) },
     808             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct AuthPack, pkAuthenticator), asn1_AuthPack_tag_pkAuthenticator_35 },
     809             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, clientPublicValue), asn1_AuthPack_tag_clientPublicValue_36 },
     810             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, supportedCMSTypes), asn1_AuthPack_tag_supportedCMSTypes_37 },
     811             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, clientDHNonce), asn1_AuthPack_tag_clientDHNonce_39 },
     812             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,4)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, supportedKDFs), asn1_AuthPack_tag_supportedKDFs_40 },
     813             : /* 6 */ { A1_OP_NAME, 0, "AuthPack" },
     814             : /* 7 */ { A1_OP_NAME, 0, "pkAuthenticator" },
     815             : /* 8 */ { A1_OP_NAME, 0, "clientPublicValue" },
     816             : /* 9 */ { A1_OP_NAME, 0, "supportedCMSTypes" },
     817             : /* 10 */ { A1_OP_NAME, 0, "clientDHNonce" },
     818             : /* 11 */ { A1_OP_NAME, 0, "..." },
     819             : /* 12 */ { A1_OP_NAME, 0, "supportedKDFs" },
     820             : /* 13 */ { A1_OP_NAME, 0, "..." }
     821             : };
     822             : /* generate_template_type: AuthPack */
     823             : const struct asn1_template asn1_AuthPack[] = {
     824             : /* 0 */ { 0, sizeof(AuthPack), ((void *)(uintptr_t)1) },
     825             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag__34 }
     826             : };
     827             : 
     828             : int ASN1CALL
     829           0 : decode_AuthPack(const unsigned char *p, size_t len, AuthPack *data, size_t *size)
     830             : {
     831           0 :     memset(data, 0, sizeof(*data));
     832           0 :     return _asn1_decode_top(asn1_AuthPack, 0|0, p, len, data, size);
     833             : }
     834             : 
     835             : 
     836             : int ASN1CALL
     837          77 : encode_AuthPack(unsigned char *p, size_t len, const AuthPack *data, size_t *size)
     838             : {
     839          77 :     return _asn1_encode(asn1_AuthPack, p, len, data, size);
     840             : }
     841             : 
     842             : 
     843             : size_t ASN1CALL
     844          77 : length_AuthPack(const AuthPack *data)
     845             : {
     846          77 :     return _asn1_length(asn1_AuthPack, data);
     847             : }
     848             : 
     849             : 
     850             : void ASN1CALL
     851          77 : free_AuthPack(AuthPack *data)
     852             : {
     853          77 :     _asn1_free_top(asn1_AuthPack, data);
     854          77 : }
     855             : 
     856             : 
     857             : int ASN1CALL
     858           0 : copy_AuthPack(const AuthPack *from, AuthPack *to)
     859             : {
     860           0 :     return _asn1_copy_top(asn1_AuthPack, from, to);
     861             : }
     862             : 
     863             : 
     864             : char * ASN1CALL
     865           0 : print_AuthPack(const AuthPack *data, int flags)
     866             : {
     867           0 :     return _asn1_print_top(asn1_AuthPack, flags, data);
     868             : }
     869             : 
     870             : /* generate_template_type: TD_TRUSTED_CERTIFIERS */
     871             : const struct asn1_template asn1_TD_TRUSTED_CERTIFIERS[] = {
     872             : /* 0 */ { 0, sizeof(TD_TRUSTED_CERTIFIERS), ((void *)(uintptr_t)1) },
     873             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifiers }
     874             : };
     875             : 
     876             : int ASN1CALL
     877           0 : decode_TD_TRUSTED_CERTIFIERS(const unsigned char *p, size_t len, TD_TRUSTED_CERTIFIERS *data, size_t *size)
     878             : {
     879           0 :     memset(data, 0, sizeof(*data));
     880           0 :     return _asn1_decode_top(asn1_TD_TRUSTED_CERTIFIERS, 0|0, p, len, data, size);
     881             : }
     882             : 
     883             : 
     884             : int ASN1CALL
     885           0 : encode_TD_TRUSTED_CERTIFIERS(unsigned char *p, size_t len, const TD_TRUSTED_CERTIFIERS *data, size_t *size)
     886             : {
     887           0 :     return _asn1_encode(asn1_TD_TRUSTED_CERTIFIERS, p, len, data, size);
     888             : }
     889             : 
     890             : 
     891             : size_t ASN1CALL
     892           0 : length_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *data)
     893             : {
     894           0 :     return _asn1_length(asn1_TD_TRUSTED_CERTIFIERS, data);
     895             : }
     896             : 
     897             : 
     898             : void ASN1CALL
     899           0 : free_TD_TRUSTED_CERTIFIERS(TD_TRUSTED_CERTIFIERS *data)
     900             : {
     901           0 :     _asn1_free_top(asn1_TD_TRUSTED_CERTIFIERS, data);
     902           0 : }
     903             : 
     904             : 
     905             : int ASN1CALL
     906           0 : copy_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *from, TD_TRUSTED_CERTIFIERS *to)
     907             : {
     908           0 :     return _asn1_copy_top(asn1_TD_TRUSTED_CERTIFIERS, from, to);
     909             : }
     910             : 
     911             : 
     912             : char * ASN1CALL
     913           0 : print_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *data, int flags)
     914             : {
     915           0 :     return _asn1_print_top(asn1_TD_TRUSTED_CERTIFIERS, flags, data);
     916             : }
     917             : 
     918             : /* generate_template_type: TD_INVALID_CERTIFICATES */
     919             : const struct asn1_template asn1_TD_INVALID_CERTIFICATES[] = {
     920             : /* 0 */ { 0, sizeof(TD_INVALID_CERTIFICATES), ((void *)(uintptr_t)1) },
     921             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifiers }
     922             : };
     923             : 
     924             : int ASN1CALL
     925           0 : decode_TD_INVALID_CERTIFICATES(const unsigned char *p, size_t len, TD_INVALID_CERTIFICATES *data, size_t *size)
     926             : {
     927           0 :     memset(data, 0, sizeof(*data));
     928           0 :     return _asn1_decode_top(asn1_TD_INVALID_CERTIFICATES, 0|0, p, len, data, size);
     929             : }
     930             : 
     931             : 
     932             : int ASN1CALL
     933           0 : encode_TD_INVALID_CERTIFICATES(unsigned char *p, size_t len, const TD_INVALID_CERTIFICATES *data, size_t *size)
     934             : {
     935           0 :     return _asn1_encode(asn1_TD_INVALID_CERTIFICATES, p, len, data, size);
     936             : }
     937             : 
     938             : 
     939             : size_t ASN1CALL
     940           0 : length_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *data)
     941             : {
     942           0 :     return _asn1_length(asn1_TD_INVALID_CERTIFICATES, data);
     943             : }
     944             : 
     945             : 
     946             : void ASN1CALL
     947           0 : free_TD_INVALID_CERTIFICATES(TD_INVALID_CERTIFICATES *data)
     948             : {
     949           0 :     _asn1_free_top(asn1_TD_INVALID_CERTIFICATES, data);
     950           0 : }
     951             : 
     952             : 
     953             : int ASN1CALL
     954           0 : copy_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *from, TD_INVALID_CERTIFICATES *to)
     955             : {
     956           0 :     return _asn1_copy_top(asn1_TD_INVALID_CERTIFICATES, from, to);
     957             : }
     958             : 
     959             : 
     960             : char * ASN1CALL
     961           0 : print_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *data, int flags)
     962             : {
     963           0 :     return _asn1_print_top(asn1_TD_INVALID_CERTIFICATES, flags, data);
     964             : }
     965             : 
     966             : /* template_members: AD_INITIAL_VERIFIED_CAS exp exp */
     967             : /* generate_template_type: ExternalPrincipalIdentifier_seofTstruct_3 */
     968             : /* generate_template_type: AD_INITIAL_VERIFIED_CAS_tag__42 */
     969             : /* generate_template_type: AD_INITIAL_VERIFIED_CAS */
     970             : const struct asn1_template asn1_AD_INITIAL_VERIFIED_CAS[] = {
     971             : /* 0 */ { 0, sizeof(AD_INITIAL_VERIFIED_CAS), ((void *)(uintptr_t)1) },
     972             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ExternalPrincipalIdentifiers_tag__19 }
     973             : };
     974             : 
     975             : int ASN1CALL
     976           0 : decode_AD_INITIAL_VERIFIED_CAS(const unsigned char *p, size_t len, AD_INITIAL_VERIFIED_CAS *data, size_t *size)
     977             : {
     978           0 :     memset(data, 0, sizeof(*data));
     979           0 :     return _asn1_decode_top(asn1_AD_INITIAL_VERIFIED_CAS, 0|0, p, len, data, size);
     980             : }
     981             : 
     982             : 
     983             : int ASN1CALL
     984           0 : encode_AD_INITIAL_VERIFIED_CAS(unsigned char *p, size_t len, const AD_INITIAL_VERIFIED_CAS *data, size_t *size)
     985             : {
     986           0 :     return _asn1_encode(asn1_AD_INITIAL_VERIFIED_CAS, p, len, data, size);
     987             : }
     988             : 
     989             : 
     990             : size_t ASN1CALL
     991           0 : length_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *data)
     992             : {
     993           0 :     return _asn1_length(asn1_AD_INITIAL_VERIFIED_CAS, data);
     994             : }
     995             : 
     996             : 
     997             : void ASN1CALL
     998           0 : free_AD_INITIAL_VERIFIED_CAS(AD_INITIAL_VERIFIED_CAS *data)
     999             : {
    1000           0 :     _asn1_free_top(asn1_AD_INITIAL_VERIFIED_CAS, data);
    1001           0 : }
    1002             : 
    1003             : 
    1004             : int ASN1CALL
    1005           0 : copy_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *from, AD_INITIAL_VERIFIED_CAS *to)
    1006             : {
    1007           0 :     return _asn1_copy_top(asn1_AD_INITIAL_VERIFIED_CAS, from, to);
    1008             : }
    1009             : 
    1010             : 
    1011             : char * ASN1CALL
    1012           0 : print_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *data, int flags)
    1013             : {
    1014           0 :     return _asn1_print_top(asn1_AD_INITIAL_VERIFIED_CAS, flags, data);
    1015             : }
    1016             : 
    1017             : /* template_members: DHRepInfo exp exp */
    1018             : /* tsequence: members isstruct: 1 */
    1019             : /* template_members: DHRepInfo exp imp */
    1020             : /* template_members: heim_octet_string exp exp */
    1021             : /* generate_template_type: heim_octet_string_tag_dhSignedData_45 */
    1022             : /* generate_template_type: DHRepInfo_tag_dhSignedData_44 */
    1023             : /* template_members: DHRepInfo exp exp */
    1024             : /* generate_template_type: DHRepInfo_tag_serverDHNonce_46 */
    1025             : /* template_members: DHRepInfo exp exp */
    1026             : /* generate_template_type: DHRepInfo_tag_kdf_47 */
    1027             : /* generate_template_type: DHRepInfo_tag__43 */
    1028             : const struct asn1_template asn1_DHRepInfo_tag__43[] = {
    1029             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct DHRepInfo), ((void *)(uintptr_t)9) },
    1030             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, offsetof(struct DHRepInfo, dhSignedData), asn1_TrustedCA_tag_caName_6 },
    1031             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct DHRepInfo, serverDHNonce), asn1_AuthPack_tag_clientDHNonce_39 },
    1032             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct DHRepInfo, kdf), asn1_AuthPack_supportedKDFs_2 },
    1033             : /* 4 */ { A1_OP_NAME, 0, "DHRepInfo" },
    1034             : /* 5 */ { A1_OP_NAME, 0, "dhSignedData" },
    1035             : /* 6 */ { A1_OP_NAME, 0, "serverDHNonce" },
    1036             : /* 7 */ { A1_OP_NAME, 0, "..." },
    1037             : /* 8 */ { A1_OP_NAME, 0, "kdf" },
    1038             : /* 9 */ { A1_OP_NAME, 0, "..." }
    1039             : };
    1040             : /* generate_template_type: DHRepInfo */
    1041             : const struct asn1_template asn1_DHRepInfo[] = {
    1042             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1043             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_DHRepInfo_tag__43 }
    1044             : };
    1045             : 
    1046             : int ASN1CALL
    1047           0 : decode_DHRepInfo(const unsigned char *p, size_t len, DHRepInfo *data, size_t *size)
    1048             : {
    1049           0 :     memset(data, 0, sizeof(*data));
    1050           0 :     return _asn1_decode_top(asn1_DHRepInfo, 0|0, p, len, data, size);
    1051             : }
    1052             : 
    1053             : 
    1054             : int ASN1CALL
    1055           0 : encode_DHRepInfo(unsigned char *p, size_t len, const DHRepInfo *data, size_t *size)
    1056             : {
    1057           0 :     return _asn1_encode(asn1_DHRepInfo, p, len, data, size);
    1058             : }
    1059             : 
    1060             : 
    1061             : size_t ASN1CALL
    1062           0 : length_DHRepInfo(const DHRepInfo *data)
    1063             : {
    1064           0 :     return _asn1_length(asn1_DHRepInfo, data);
    1065             : }
    1066             : 
    1067             : 
    1068             : void ASN1CALL
    1069           0 : free_DHRepInfo(DHRepInfo *data)
    1070             : {
    1071           0 :     _asn1_free_top(asn1_DHRepInfo, data);
    1072           0 : }
    1073             : 
    1074             : 
    1075             : int ASN1CALL
    1076           0 : copy_DHRepInfo(const DHRepInfo *from, DHRepInfo *to)
    1077             : {
    1078           0 :     return _asn1_copy_top(asn1_DHRepInfo, from, to);
    1079             : }
    1080             : 
    1081             : 
    1082             : char * ASN1CALL
    1083           0 : print_DHRepInfo(const DHRepInfo *data, int flags)
    1084             : {
    1085           0 :     return _asn1_print_top(asn1_DHRepInfo, flags, data);
    1086             : }
    1087             : 
    1088             : /* template_members: DHRepInfo exp exp */
    1089             : /* generate_template_type: DHRepInfo_tag__48 */
    1090             : const struct asn1_template asn1_DHRepInfo_tag__48[] = {
    1091             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1092             : /* 1 */ { A1_OP_TYPE , 0, asn1_DHRepInfo }
    1093             : };
    1094             : /* generate_template_type: PA_PK_AS_REP_choice_dhInfo */
    1095             : const struct asn1_template asn1_PA_PK_AS_REP_choice_dhInfo[] = {
    1096             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1097             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), 0, asn1_DHRepInfo_tag__48 }
    1098             : };
    1099             : /* template_members: heim_octet_string imp imp */
    1100             : /* template_members: heim_octet_string exp exp */
    1101             : /* generate_template_type: heim_octet_string_tag__50 */
    1102             : /* generate_template_type: heim_octet_string_tag__49 */
    1103             : /* generate_template_type: PA_PK_AS_REP_choice_encKeyPack */
    1104             : const struct asn1_template asn1_PA_PK_AS_REP_choice_encKeyPack[] = {
    1105             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
    1106             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,1)|A1_FLAG_IMPLICIT, 0, asn1_TrustedCA_tag_caName_6 }
    1107             : };
    1108             : static const struct asn1_template asn1_choice_PA_PK_AS_REP_0[] = {
    1109             : /* 0 */ { offsetof(PA_PK_AS_REP, u.asn1_ellipsis), offsetof(PA_PK_AS_REP, element), ((void *)(uintptr_t)5) },
    1110             : /* 1 */ { choice_PA_PK_AS_REP_dhInfo, offsetof(PA_PK_AS_REP, u.dhInfo), asn1_PA_PK_AS_REP_choice_dhInfo },
    1111             : /* 2 */ { choice_PA_PK_AS_REP_encKeyPack, offsetof(PA_PK_AS_REP, u.encKeyPack), asn1_PA_PK_AS_REP_choice_encKeyPack },
    1112             : /* 3 */ { 0, 0, "dhInfo" },
    1113             : /* 4 */ { 0, 0, "encKeyPack" },
    1114             : /* 5 */ { 0, 0, "..." }
    1115             : };
    1116             : /* generate_template_type: PA_PK_AS_REP */
    1117             : const struct asn1_template asn1_PA_PK_AS_REP[] = {
    1118             : /* 0 */ { 0, sizeof(PA_PK_AS_REP), ((void *)(uintptr_t)1) },
    1119             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_PA_PK_AS_REP_0 }
    1120             : };
    1121             : 
    1122             : int ASN1CALL
    1123           0 : decode_PA_PK_AS_REP(const unsigned char *p, size_t len, PA_PK_AS_REP *data, size_t *size)
    1124             : {
    1125           0 :     memset(data, 0, sizeof(*data));
    1126           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REP, 0|0, p, len, data, size);
    1127             : }
    1128             : 
    1129             : 
    1130             : int ASN1CALL
    1131           0 : encode_PA_PK_AS_REP(unsigned char *p, size_t len, const PA_PK_AS_REP *data, size_t *size)
    1132             : {
    1133           0 :     return _asn1_encode(asn1_PA_PK_AS_REP, p, len, data, size);
    1134             : }
    1135             : 
    1136             : 
    1137             : size_t ASN1CALL
    1138           0 : length_PA_PK_AS_REP(const PA_PK_AS_REP *data)
    1139             : {
    1140           0 :     return _asn1_length(asn1_PA_PK_AS_REP, data);
    1141             : }
    1142             : 
    1143             : 
    1144             : void ASN1CALL
    1145           0 : free_PA_PK_AS_REP(PA_PK_AS_REP *data)
    1146             : {
    1147           0 :     _asn1_free_top(asn1_PA_PK_AS_REP, data);
    1148           0 : }
    1149             : 
    1150             : 
    1151             : int ASN1CALL
    1152           0 : copy_PA_PK_AS_REP(const PA_PK_AS_REP *from, PA_PK_AS_REP *to)
    1153             : {
    1154           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP, from, to);
    1155             : }
    1156             : 
    1157             : 
    1158             : char * ASN1CALL
    1159           0 : print_PA_PK_AS_REP(const PA_PK_AS_REP *data, int flags)
    1160             : {
    1161           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP, flags, data);
    1162             : }
    1163             : 
    1164             : /* template_members: KDCDHKeyInfo exp exp */
    1165             : /* tsequence: members isstruct: 1 */
    1166             : /* template_members: KDCDHKeyInfo exp exp */
    1167             : /* template_members: KDCDHKeyInfo exp exp */
    1168             : /* generate_template_type: KDCDHKeyInfo_tag_subjectPublicKey_53 */
    1169             : const struct asn1_template asn1_KDCDHKeyInfo_tag_subjectPublicKey_53[] = {
    1170             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1171             : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
    1172             : };
    1173             : /* generate_template_type: KDCDHKeyInfo_tag_subjectPublicKey_52 */
    1174             : const struct asn1_template asn1_KDCDHKeyInfo_tag_subjectPublicKey_52[] = {
    1175             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1176             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), 0, asn1_KDCDHKeyInfo_tag_subjectPublicKey_53 }
    1177             : };
    1178             : /* template_members: KDCDHKeyInfo exp exp */
    1179             : /* template_members: unsigned exp exp */
    1180             : /* generate_template_type: unsigned_tag_nonce_55 */
    1181             : /* generate_template_type: KDCDHKeyInfo_tag_nonce_54 */
    1182             : /* template_members: KDCDHKeyInfo exp exp */
    1183             : /* generate_template_type: KDCDHKeyInfo_tag_dhKeyExpiration_56 */
    1184             : /* generate_template_type: KDCDHKeyInfo_tag__51 */
    1185             : const struct asn1_template asn1_KDCDHKeyInfo_tag__51[] = {
    1186             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct KDCDHKeyInfo), ((void *)(uintptr_t)8) },
    1187             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct KDCDHKeyInfo, subjectPublicKey), asn1_KDCDHKeyInfo_tag_subjectPublicKey_52 },
    1188             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct KDCDHKeyInfo, nonce), asn1_PKAuthenticator_tag_nonce_30 },
    1189             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct KDCDHKeyInfo, dhKeyExpiration), asn1_PKAuthenticator_tag_ctime_29 },
    1190             : /* 4 */ { A1_OP_NAME, 0, "KDCDHKeyInfo" },
    1191             : /* 5 */ { A1_OP_NAME, 0, "subjectPublicKey" },
    1192             : /* 6 */ { A1_OP_NAME, 0, "nonce" },
    1193             : /* 7 */ { A1_OP_NAME, 0, "dhKeyExpiration" },
    1194             : /* 8 */ { A1_OP_NAME, 0, "..." }
    1195             : };
    1196             : /* generate_template_type: KDCDHKeyInfo */
    1197             : const struct asn1_template asn1_KDCDHKeyInfo[] = {
    1198             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1199             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_KDCDHKeyInfo_tag__51 }
    1200             : };
    1201             : 
    1202             : int ASN1CALL
    1203           0 : decode_KDCDHKeyInfo(const unsigned char *p, size_t len, KDCDHKeyInfo *data, size_t *size)
    1204             : {
    1205           0 :     memset(data, 0, sizeof(*data));
    1206           0 :     return _asn1_decode_top(asn1_KDCDHKeyInfo, 0|0, p, len, data, size);
    1207             : }
    1208             : 
    1209             : 
    1210             : int ASN1CALL
    1211           0 : encode_KDCDHKeyInfo(unsigned char *p, size_t len, const KDCDHKeyInfo *data, size_t *size)
    1212             : {
    1213           0 :     return _asn1_encode(asn1_KDCDHKeyInfo, p, len, data, size);
    1214             : }
    1215             : 
    1216             : 
    1217             : size_t ASN1CALL
    1218           0 : length_KDCDHKeyInfo(const KDCDHKeyInfo *data)
    1219             : {
    1220           0 :     return _asn1_length(asn1_KDCDHKeyInfo, data);
    1221             : }
    1222             : 
    1223             : 
    1224             : void ASN1CALL
    1225           0 : free_KDCDHKeyInfo(KDCDHKeyInfo *data)
    1226             : {
    1227           0 :     _asn1_free_top(asn1_KDCDHKeyInfo, data);
    1228           0 : }
    1229             : 
    1230             : 
    1231             : int ASN1CALL
    1232           0 : copy_KDCDHKeyInfo(const KDCDHKeyInfo *from, KDCDHKeyInfo *to)
    1233             : {
    1234           0 :     return _asn1_copy_top(asn1_KDCDHKeyInfo, from, to);
    1235             : }
    1236             : 
    1237             : 
    1238             : char * ASN1CALL
    1239           0 : print_KDCDHKeyInfo(const KDCDHKeyInfo *data, int flags)
    1240             : {
    1241           0 :     return _asn1_print_top(asn1_KDCDHKeyInfo, flags, data);
    1242             : }
    1243             : 
    1244             : /* template_members: ReplyKeyPack exp exp */
    1245             : /* tsequence: members isstruct: 1 */
    1246             : /* template_members: ReplyKeyPack exp exp */
    1247             : /* generate_template_type: ReplyKeyPack_tag_replyKey_58 */
    1248             : const struct asn1_template asn1_ReplyKeyPack_tag_replyKey_58[] = {
    1249             : /* 0 */ { 0, sizeof(EncryptionKey), ((void *)(uintptr_t)1) },
    1250             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_EncryptionKey}
    1251             : };
    1252             : /* template_members: ReplyKeyPack exp exp */
    1253             : /* generate_template_type: ReplyKeyPack_tag_asChecksum_59 */
    1254             : const struct asn1_template asn1_ReplyKeyPack_tag_asChecksum_59[] = {
    1255             : /* 0 */ { 0, sizeof(Checksum), ((void *)(uintptr_t)1) },
    1256             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Checksum}
    1257             : };
    1258             : /* generate_template_type: ReplyKeyPack_tag__57 */
    1259             : const struct asn1_template asn1_ReplyKeyPack_tag__57[] = {
    1260             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct ReplyKeyPack), ((void *)(uintptr_t)6) },
    1261             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct ReplyKeyPack, replyKey), asn1_ReplyKeyPack_tag_replyKey_58 },
    1262             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct ReplyKeyPack, asChecksum), asn1_ReplyKeyPack_tag_asChecksum_59 },
    1263             : /* 3 */ { A1_OP_NAME, 0, "ReplyKeyPack" },
    1264             : /* 4 */ { A1_OP_NAME, 0, "replyKey" },
    1265             : /* 5 */ { A1_OP_NAME, 0, "asChecksum" },
    1266             : /* 6 */ { A1_OP_NAME, 0, "..." }
    1267             : };
    1268             : /* generate_template_type: ReplyKeyPack */
    1269             : const struct asn1_template asn1_ReplyKeyPack[] = {
    1270             : /* 0 */ { 0, sizeof(ReplyKeyPack), ((void *)(uintptr_t)1) },
    1271             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ReplyKeyPack_tag__57 }
    1272             : };
    1273             : 
    1274             : int ASN1CALL
    1275           0 : decode_ReplyKeyPack(const unsigned char *p, size_t len, ReplyKeyPack *data, size_t *size)
    1276             : {
    1277           0 :     memset(data, 0, sizeof(*data));
    1278           0 :     return _asn1_decode_top(asn1_ReplyKeyPack, 0|0, p, len, data, size);
    1279             : }
    1280             : 
    1281             : 
    1282             : int ASN1CALL
    1283           0 : encode_ReplyKeyPack(unsigned char *p, size_t len, const ReplyKeyPack *data, size_t *size)
    1284             : {
    1285           0 :     return _asn1_encode(asn1_ReplyKeyPack, p, len, data, size);
    1286             : }
    1287             : 
    1288             : 
    1289             : size_t ASN1CALL
    1290           0 : length_ReplyKeyPack(const ReplyKeyPack *data)
    1291             : {
    1292           0 :     return _asn1_length(asn1_ReplyKeyPack, data);
    1293             : }
    1294             : 
    1295             : 
    1296             : void ASN1CALL
    1297           0 : free_ReplyKeyPack(ReplyKeyPack *data)
    1298             : {
    1299           0 :     _asn1_free_top(asn1_ReplyKeyPack, data);
    1300           0 : }
    1301             : 
    1302             : 
    1303             : int ASN1CALL
    1304           0 : copy_ReplyKeyPack(const ReplyKeyPack *from, ReplyKeyPack *to)
    1305             : {
    1306           0 :     return _asn1_copy_top(asn1_ReplyKeyPack, from, to);
    1307             : }
    1308             : 
    1309             : 
    1310             : char * ASN1CALL
    1311           0 : print_ReplyKeyPack(const ReplyKeyPack *data, int flags)
    1312             : {
    1313           0 :     return _asn1_print_top(asn1_ReplyKeyPack, flags, data);
    1314             : }
    1315             : 
    1316             : /* template_members: TD_DH_PARAMETERS exp exp */
    1317             : /* generate_template_type: AlgorithmIdentifier_seofTstruct_4 */
    1318             : /* generate_template_type: TD_DH_PARAMETERS_tag__60 */
    1319             : const struct asn1_template asn1_TD_DH_PARAMETERS_tag__60[] = {
    1320             : /* 0 */ { 0, sizeof(AlgorithmIdentifier), ((void *)(uintptr_t)1) },
    1321             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedCMSTypes_1 }
    1322             : };
    1323             : /* generate_template_type: TD_DH_PARAMETERS */
    1324             : const struct asn1_template asn1_TD_DH_PARAMETERS[] = {
    1325             : /* 0 */ { 0, sizeof(TD_DH_PARAMETERS), ((void *)(uintptr_t)1) },
    1326             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_TD_DH_PARAMETERS_tag__60 }
    1327             : };
    1328             : 
    1329             : int ASN1CALL
    1330           0 : decode_TD_DH_PARAMETERS(const unsigned char *p, size_t len, TD_DH_PARAMETERS *data, size_t *size)
    1331             : {
    1332           0 :     memset(data, 0, sizeof(*data));
    1333           0 :     return _asn1_decode_top(asn1_TD_DH_PARAMETERS, 0|0, p, len, data, size);
    1334             : }
    1335             : 
    1336             : 
    1337             : int ASN1CALL
    1338           0 : encode_TD_DH_PARAMETERS(unsigned char *p, size_t len, const TD_DH_PARAMETERS *data, size_t *size)
    1339             : {
    1340           0 :     return _asn1_encode(asn1_TD_DH_PARAMETERS, p, len, data, size);
    1341             : }
    1342             : 
    1343             : 
    1344             : size_t ASN1CALL
    1345           0 : length_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *data)
    1346             : {
    1347           0 :     return _asn1_length(asn1_TD_DH_PARAMETERS, data);
    1348             : }
    1349             : 
    1350             : 
    1351             : void ASN1CALL
    1352           0 : free_TD_DH_PARAMETERS(TD_DH_PARAMETERS *data)
    1353             : {
    1354           0 :     _asn1_free_top(asn1_TD_DH_PARAMETERS, data);
    1355           0 : }
    1356             : 
    1357             : 
    1358             : int ASN1CALL
    1359           0 : copy_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *from, TD_DH_PARAMETERS *to)
    1360             : {
    1361           0 :     return _asn1_copy_top(asn1_TD_DH_PARAMETERS, from, to);
    1362             : }
    1363             : 
    1364             : 
    1365             : char * ASN1CALL
    1366           0 : print_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *data, int flags)
    1367             : {
    1368           0 :     return _asn1_print_top(asn1_TD_DH_PARAMETERS, flags, data);
    1369             : }
    1370             : 
    1371             : /* template_members: PKAuthenticator_Win2k exp exp */
    1372             : /* tsequence: members isstruct: 1 */
    1373             : /* template_members: PKAuthenticator_Win2k exp exp */
    1374             : /* generate_template_type: PKAuthenticator_Win2k_tag_kdcName_62 */
    1375             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_kdcName_62[] = {
    1376             : /* 0 */ { 0, sizeof(PrincipalName), ((void *)(uintptr_t)1) },
    1377             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_PrincipalName}
    1378             : };
    1379             : /* template_members: PKAuthenticator_Win2k exp exp */
    1380             : /* generate_template_type: PKAuthenticator_Win2k_tag_kdcRealm_63 */
    1381             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_kdcRealm_63[] = {
    1382             : /* 0 */ { 0, sizeof(Realm), ((void *)(uintptr_t)1) },
    1383             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Realm}
    1384             : };
    1385             : /* template_members: PKAuthenticator_Win2k exp exp */
    1386             : /* template_members: unsigned exp exp */
    1387             : /* generate_template_type: unsigned_tag_cusec_65 */
    1388             : /* generate_template_type: PKAuthenticator_Win2k_tag_cusec_64 */
    1389             : /* template_members: PKAuthenticator_Win2k exp exp */
    1390             : /* generate_template_type: PKAuthenticator_Win2k_tag_ctime_66 */
    1391             : /* template_members: PKAuthenticator_Win2k exp exp */
    1392             : /* template_members: int exp exp */
    1393             : /* generate_template_type: int_tag_nonce_68 */
    1394             : const struct asn1_template asn1_int_tag_nonce_68[] = {
    1395             : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
    1396             : /* 1 */ { A1_PARSE_T(A1T_INTEGER), 0, NULL }
    1397             : };
    1398             : /* generate_template_type: PKAuthenticator_Win2k_tag_nonce_67 */
    1399             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_nonce_67[] = {
    1400             : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
    1401             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), 0, asn1_int_tag_nonce_68 }
    1402             : };
    1403             : /* generate_template_type: PKAuthenticator_Win2k_tag__61 */
    1404             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag__61[] = {
    1405             : /* 0 */ { 0, sizeof(struct PKAuthenticator_Win2k), ((void *)(uintptr_t)11) },
    1406             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PKAuthenticator_Win2k, kdcName), asn1_PKAuthenticator_Win2k_tag_kdcName_62 },
    1407             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PKAuthenticator_Win2k, kdcRealm), asn1_PKAuthenticator_Win2k_tag_kdcRealm_63 },
    1408             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PKAuthenticator_Win2k, cusec), asn1_PKAuthenticator_tag_nonce_30 },
    1409             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3), offsetof(struct PKAuthenticator_Win2k, ctime), asn1_PKAuthenticator_tag_ctime_29 },
    1410             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,4), offsetof(struct PKAuthenticator_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_67 },
    1411             : /* 6 */ { A1_OP_NAME, 0, "PKAuthenticator_Win2k" },
    1412             : /* 7 */ { A1_OP_NAME, 0, "kdcName" },
    1413             : /* 8 */ { A1_OP_NAME, 0, "kdcRealm" },
    1414             : /* 9 */ { A1_OP_NAME, 0, "cusec" },
    1415             : /* 10 */ { A1_OP_NAME, 0, "ctime" },
    1416             : /* 11 */ { A1_OP_NAME, 0, "nonce" }
    1417             : };
    1418             : /* generate_template_type: PKAuthenticator_Win2k */
    1419             : const struct asn1_template asn1_PKAuthenticator_Win2k[] = {
    1420             : /* 0 */ { 0, sizeof(PKAuthenticator_Win2k), ((void *)(uintptr_t)1) },
    1421             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PKAuthenticator_Win2k_tag__61 }
    1422             : };
    1423             : 
    1424             : int ASN1CALL
    1425           0 : decode_PKAuthenticator_Win2k(const unsigned char *p, size_t len, PKAuthenticator_Win2k *data, size_t *size)
    1426             : {
    1427           0 :     memset(data, 0, sizeof(*data));
    1428           0 :     return _asn1_decode_top(asn1_PKAuthenticator_Win2k, 0|0, p, len, data, size);
    1429             : }
    1430             : 
    1431             : 
    1432             : int ASN1CALL
    1433           0 : encode_PKAuthenticator_Win2k(unsigned char *p, size_t len, const PKAuthenticator_Win2k *data, size_t *size)
    1434             : {
    1435           0 :     return _asn1_encode(asn1_PKAuthenticator_Win2k, p, len, data, size);
    1436             : }
    1437             : 
    1438             : 
    1439             : size_t ASN1CALL
    1440           0 : length_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *data)
    1441             : {
    1442           0 :     return _asn1_length(asn1_PKAuthenticator_Win2k, data);
    1443             : }
    1444             : 
    1445             : 
    1446             : void ASN1CALL
    1447           0 : free_PKAuthenticator_Win2k(PKAuthenticator_Win2k *data)
    1448             : {
    1449           0 :     _asn1_free_top(asn1_PKAuthenticator_Win2k, data);
    1450           0 : }
    1451             : 
    1452             : 
    1453             : int ASN1CALL
    1454           0 : copy_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *from, PKAuthenticator_Win2k *to)
    1455             : {
    1456           0 :     return _asn1_copy_top(asn1_PKAuthenticator_Win2k, from, to);
    1457             : }
    1458             : 
    1459             : 
    1460             : char * ASN1CALL
    1461           0 : print_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *data, int flags)
    1462             : {
    1463           0 :     return _asn1_print_top(asn1_PKAuthenticator_Win2k, flags, data);
    1464             : }
    1465             : 
    1466             : /* template_members: AuthPack_Win2k exp exp */
    1467             : /* tsequence: members isstruct: 1 */
    1468             : /* template_members: AuthPack_Win2k exp exp */
    1469             : /* generate_template_type: AuthPack_Win2k_tag_pkAuthenticator_70 */
    1470             : const struct asn1_template asn1_AuthPack_Win2k_tag_pkAuthenticator_70[] = {
    1471             : /* 0 */ { 0, sizeof(PKAuthenticator_Win2k), ((void *)(uintptr_t)1) },
    1472             : /* 1 */ { A1_OP_TYPE , 0, asn1_PKAuthenticator_Win2k }
    1473             : };
    1474             : /* template_members: AuthPack_Win2k exp exp */
    1475             : /* generate_template_type: AuthPack_Win2k_tag_clientPublicValue_71 */
    1476             : /* generate_template_type: AuthPack_Win2k_tag__69 */
    1477             : const struct asn1_template asn1_AuthPack_Win2k_tag__69[] = {
    1478             : /* 0 */ { 0, sizeof(struct AuthPack_Win2k), ((void *)(uintptr_t)5) },
    1479             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct AuthPack_Win2k, pkAuthenticator), asn1_AuthPack_Win2k_tag_pkAuthenticator_70 },
    1480             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack_Win2k, clientPublicValue), asn1_AuthPack_tag_clientPublicValue_36 },
    1481             : /* 3 */ { A1_OP_NAME, 0, "AuthPack_Win2k" },
    1482             : /* 4 */ { A1_OP_NAME, 0, "pkAuthenticator" },
    1483             : /* 5 */ { A1_OP_NAME, 0, "clientPublicValue" }
    1484             : };
    1485             : /* generate_template_type: AuthPack_Win2k */
    1486             : const struct asn1_template asn1_AuthPack_Win2k[] = {
    1487             : /* 0 */ { 0, sizeof(AuthPack_Win2k), ((void *)(uintptr_t)1) },
    1488             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_Win2k_tag__69 }
    1489             : };
    1490             : 
    1491             : int ASN1CALL
    1492           0 : decode_AuthPack_Win2k(const unsigned char *p, size_t len, AuthPack_Win2k *data, size_t *size)
    1493             : {
    1494           0 :     memset(data, 0, sizeof(*data));
    1495           0 :     return _asn1_decode_top(asn1_AuthPack_Win2k, 0|0, p, len, data, size);
    1496             : }
    1497             : 
    1498             : 
    1499             : int ASN1CALL
    1500           0 : encode_AuthPack_Win2k(unsigned char *p, size_t len, const AuthPack_Win2k *data, size_t *size)
    1501             : {
    1502           0 :     return _asn1_encode(asn1_AuthPack_Win2k, p, len, data, size);
    1503             : }
    1504             : 
    1505             : 
    1506             : size_t ASN1CALL
    1507           0 : length_AuthPack_Win2k(const AuthPack_Win2k *data)
    1508             : {
    1509           0 :     return _asn1_length(asn1_AuthPack_Win2k, data);
    1510             : }
    1511             : 
    1512             : 
    1513             : void ASN1CALL
    1514           0 : free_AuthPack_Win2k(AuthPack_Win2k *data)
    1515             : {
    1516           0 :     _asn1_free_top(asn1_AuthPack_Win2k, data);
    1517           0 : }
    1518             : 
    1519             : 
    1520             : int ASN1CALL
    1521           0 : copy_AuthPack_Win2k(const AuthPack_Win2k *from, AuthPack_Win2k *to)
    1522             : {
    1523           0 :     return _asn1_copy_top(asn1_AuthPack_Win2k, from, to);
    1524             : }
    1525             : 
    1526             : 
    1527             : char * ASN1CALL
    1528           0 : print_AuthPack_Win2k(const AuthPack_Win2k *data, int flags)
    1529             : {
    1530           0 :     return _asn1_print_top(asn1_AuthPack_Win2k, flags, data);
    1531             : }
    1532             : 
    1533             : /* template_members: HEIM_ANY exp exp */
    1534             : /* generate_template_type: HEIM_ANY_tag__72 */
    1535             : const struct asn1_template asn1_HEIM_ANY_tag__72[] = {
    1536             : /* 0 */ { 0, sizeof(HEIM_ANY), ((void *)(uintptr_t)1) },
    1537             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_HEIM_ANY}
    1538             : };
    1539             : /* generate_template_type: TrustedCA_Win2k_choice_caName */
    1540             : const struct asn1_template asn1_TrustedCA_Win2k_choice_caName[] = {
    1541             : /* 0 */ { 0, sizeof(HEIM_ANY), ((void *)(uintptr_t)1) },
    1542             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), 0, asn1_HEIM_ANY_tag__72 }
    1543             : };
    1544             : /* template_members: IssuerAndSerialNumber exp exp */
    1545             : /* generate_template_type: IssuerAndSerialNumber_tag__73 */
    1546             : const struct asn1_template asn1_IssuerAndSerialNumber_tag__73[] = {
    1547             : /* 0 */ { 0, sizeof(IssuerAndSerialNumber), ((void *)(uintptr_t)1) },
    1548             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_IssuerAndSerialNumber}
    1549             : };
    1550             : /* generate_template_type: TrustedCA_Win2k_choice_issuerAndSerial */
    1551             : const struct asn1_template asn1_TrustedCA_Win2k_choice_issuerAndSerial[] = {
    1552             : /* 0 */ { 0, sizeof(IssuerAndSerialNumber), ((void *)(uintptr_t)1) },
    1553             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), 0, asn1_IssuerAndSerialNumber_tag__73 }
    1554             : };
    1555             : static const struct asn1_template asn1_choice_TrustedCA_Win2k_1[] = {
    1556             : /* 0 */ { 0, offsetof(TrustedCA_Win2k, element), ((void *)(uintptr_t)4) },
    1557             : /* 1 */ { choice_TrustedCA_Win2k_caName, offsetof(TrustedCA_Win2k, u.caName), asn1_TrustedCA_Win2k_choice_caName },
    1558             : /* 2 */ { choice_TrustedCA_Win2k_issuerAndSerial, offsetof(TrustedCA_Win2k, u.issuerAndSerial), asn1_TrustedCA_Win2k_choice_issuerAndSerial },
    1559             : /* 3 */ { 0, 0, "caName" },
    1560             : /* 4 */ { 0, 0, "issuerAndSerial" }
    1561             : };
    1562             : /* generate_template_type: TrustedCA_Win2k */
    1563             : const struct asn1_template asn1_TrustedCA_Win2k[] = {
    1564             : /* 0 */ { 0, sizeof(TrustedCA_Win2k), ((void *)(uintptr_t)1) },
    1565             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_TrustedCA_Win2k_1 }
    1566             : };
    1567             : 
    1568             : int ASN1CALL
    1569           0 : decode_TrustedCA_Win2k(const unsigned char *p, size_t len, TrustedCA_Win2k *data, size_t *size)
    1570             : {
    1571           0 :     memset(data, 0, sizeof(*data));
    1572           0 :     return _asn1_decode_top(asn1_TrustedCA_Win2k, 0|0, p, len, data, size);
    1573             : }
    1574             : 
    1575             : 
    1576             : int ASN1CALL
    1577           0 : encode_TrustedCA_Win2k(unsigned char *p, size_t len, const TrustedCA_Win2k *data, size_t *size)
    1578             : {
    1579           0 :     return _asn1_encode(asn1_TrustedCA_Win2k, p, len, data, size);
    1580             : }
    1581             : 
    1582             : 
    1583             : size_t ASN1CALL
    1584           0 : length_TrustedCA_Win2k(const TrustedCA_Win2k *data)
    1585             : {
    1586           0 :     return _asn1_length(asn1_TrustedCA_Win2k, data);
    1587             : }
    1588             : 
    1589             : 
    1590             : void ASN1CALL
    1591           0 : free_TrustedCA_Win2k(TrustedCA_Win2k *data)
    1592             : {
    1593           0 :     _asn1_free_top(asn1_TrustedCA_Win2k, data);
    1594           0 : }
    1595             : 
    1596             : 
    1597             : int ASN1CALL
    1598           0 : copy_TrustedCA_Win2k(const TrustedCA_Win2k *from, TrustedCA_Win2k *to)
    1599             : {
    1600           0 :     return _asn1_copy_top(asn1_TrustedCA_Win2k, from, to);
    1601             : }
    1602             : 
    1603             : 
    1604             : char * ASN1CALL
    1605           0 : print_TrustedCA_Win2k(const TrustedCA_Win2k *data, int flags)
    1606             : {
    1607           0 :     return _asn1_print_top(asn1_TrustedCA_Win2k, flags, data);
    1608             : }
    1609             : 
    1610             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1611             : /* tsequence: members isstruct: 1 */
    1612             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1613             : /* template_members: heim_octet_string exp exp */
    1614             : /* generate_template_type: heim_octet_string_tag_signed_auth_pack_76 */
    1615             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_signed_auth_pack_75 */
    1616             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1617             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1618             : /* generate_template_type: PA_PK_AS_REQ_Win2k_trusted_certifiers_5 */
    1619             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_trusted_certifiers_5[] = {
    1620             : /* 0 */ { 0, sizeof(TrustedCA_Win2k), ((void *)(uintptr_t)1) },
    1621             : /* 1 */ { A1_OP_TYPE , 0, asn1_TrustedCA_Win2k }
    1622             : };
    1623             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_78 */
    1624             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_78[] = {
    1625             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k_trusted_certifiers), ((void *)(uintptr_t)1) },
    1626             : /* 1 */ { A1_OP_SEQOF, 0, asn1_PA_PK_AS_REQ_Win2k_trusted_certifiers_5 }
    1627             : };
    1628             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_77 */
    1629             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_77[] = {
    1630             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k_trusted_certifiers), ((void *)(uintptr_t)1) },
    1631             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_78 }
    1632             : };
    1633             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1634             : /* template_members: heim_octet_string exp exp */
    1635             : /* generate_template_type: heim_octet_string_tag_kdc_cert_80 */
    1636             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_kdc_cert_79 */
    1637             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1638             : /* template_members: heim_octet_string exp exp */
    1639             : /* generate_template_type: heim_octet_string_tag_encryption_cert_82 */
    1640             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_encryption_cert_81 */
    1641             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag__74 */
    1642             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag__74[] = {
    1643             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k), ((void *)(uintptr_t)9) },
    1644             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, offsetof(struct PA_PK_AS_REQ_Win2k, signed_auth_pack), asn1_TrustedCA_tag_caName_6 },
    1645             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REQ_Win2k, trusted_certifiers), asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_77 },
    1646             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,3)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct PA_PK_AS_REQ_Win2k, kdc_cert), asn1_TrustedCA_tag_caName_6 },
    1647             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,4)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct PA_PK_AS_REQ_Win2k, encryption_cert), asn1_TrustedCA_tag_caName_6 },
    1648             : /* 5 */ { A1_OP_NAME, 0, "PA_PK_AS_REQ_Win2k" },
    1649             : /* 6 */ { A1_OP_NAME, 0, "signed-auth-pack" },
    1650             : /* 7 */ { A1_OP_NAME, 0, "trusted-certifiers" },
    1651             : /* 8 */ { A1_OP_NAME, 0, "kdc-cert" },
    1652             : /* 9 */ { A1_OP_NAME, 0, "encryption-cert" }
    1653             : };
    1654             : /* generate_template_type: PA_PK_AS_REQ_Win2k */
    1655             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k[] = {
    1656             : /* 0 */ { 0, sizeof(PA_PK_AS_REQ_Win2k), ((void *)(uintptr_t)1) },
    1657             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REQ_Win2k_tag__74 }
    1658             : };
    1659             : 
    1660             : int ASN1CALL
    1661           0 : decode_PA_PK_AS_REQ_Win2k(const unsigned char *p, size_t len, PA_PK_AS_REQ_Win2k *data, size_t *size)
    1662             : {
    1663           0 :     memset(data, 0, sizeof(*data));
    1664           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REQ_Win2k, 0|0, p, len, data, size);
    1665             : }
    1666             : 
    1667             : 
    1668             : int ASN1CALL
    1669           0 : encode_PA_PK_AS_REQ_Win2k(unsigned char *p, size_t len, const PA_PK_AS_REQ_Win2k *data, size_t *size)
    1670             : {
    1671           0 :     return _asn1_encode(asn1_PA_PK_AS_REQ_Win2k, p, len, data, size);
    1672             : }
    1673             : 
    1674             : 
    1675             : size_t ASN1CALL
    1676           0 : length_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *data)
    1677             : {
    1678           0 :     return _asn1_length(asn1_PA_PK_AS_REQ_Win2k, data);
    1679             : }
    1680             : 
    1681             : 
    1682             : void ASN1CALL
    1683           0 : free_PA_PK_AS_REQ_Win2k(PA_PK_AS_REQ_Win2k *data)
    1684             : {
    1685           0 :     _asn1_free_top(asn1_PA_PK_AS_REQ_Win2k, data);
    1686           0 : }
    1687             : 
    1688             : 
    1689             : int ASN1CALL
    1690           0 : copy_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *from, PA_PK_AS_REQ_Win2k *to)
    1691             : {
    1692           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REQ_Win2k, from, to);
    1693             : }
    1694             : 
    1695             : 
    1696             : char * ASN1CALL
    1697           0 : print_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *data, int flags)
    1698             : {
    1699           0 :     return _asn1_print_top(asn1_PA_PK_AS_REQ_Win2k, flags, data);
    1700             : }
    1701             : 
    1702             : /* template_members: heim_octet_string imp imp */
    1703             : /* template_members: heim_octet_string exp exp */
    1704             : /* generate_template_type: heim_octet_string_tag__84 */
    1705             : /* generate_template_type: heim_octet_string_tag__83 */
    1706             : /* generate_template_type: PA_PK_AS_REP_Win2k_choice_dhSignedData */
    1707             : const struct asn1_template asn1_PA_PK_AS_REP_Win2k_choice_dhSignedData[] = {
    1708             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
    1709             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, 0, asn1_TrustedCA_tag_caName_6 }
    1710             : };
    1711             : /* template_members: heim_octet_string imp imp */
    1712             : /* template_members: heim_octet_string exp exp */
    1713             : /* generate_template_type: heim_octet_string_tag__86 */
    1714             : /* generate_template_type: heim_octet_string_tag__85 */
    1715             : /* generate_template_type: PA_PK_AS_REP_Win2k_choice_encKeyPack */
    1716             : static const struct asn1_template asn1_choice_PA_PK_AS_REP_Win2k_2[] = {
    1717             : /* 0 */ { 0, offsetof(PA_PK_AS_REP_Win2k, element), ((void *)(uintptr_t)4) },
    1718             : /* 1 */ { choice_PA_PK_AS_REP_Win2k_dhSignedData, offsetof(PA_PK_AS_REP_Win2k, u.dhSignedData), asn1_PA_PK_AS_REP_Win2k_choice_dhSignedData },
    1719             : /* 2 */ { choice_PA_PK_AS_REP_Win2k_encKeyPack, offsetof(PA_PK_AS_REP_Win2k, u.encKeyPack), asn1_PA_PK_AS_REP_choice_encKeyPack },
    1720             : /* 3 */ { 0, 0, "dhSignedData" },
    1721             : /* 4 */ { 0, 0, "encKeyPack" }
    1722             : };
    1723             : /* generate_template_type: PA_PK_AS_REP_Win2k */
    1724             : const struct asn1_template asn1_PA_PK_AS_REP_Win2k[] = {
    1725             : /* 0 */ { 0, sizeof(PA_PK_AS_REP_Win2k), ((void *)(uintptr_t)1) },
    1726             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_PA_PK_AS_REP_Win2k_2 }
    1727             : };
    1728             : 
    1729             : int ASN1CALL
    1730           0 : decode_PA_PK_AS_REP_Win2k(const unsigned char *p, size_t len, PA_PK_AS_REP_Win2k *data, size_t *size)
    1731             : {
    1732           0 :     memset(data, 0, sizeof(*data));
    1733           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REP_Win2k, 0|0, p, len, data, size);
    1734             : }
    1735             : 
    1736             : 
    1737             : int ASN1CALL
    1738           0 : encode_PA_PK_AS_REP_Win2k(unsigned char *p, size_t len, const PA_PK_AS_REP_Win2k *data, size_t *size)
    1739             : {
    1740           0 :     return _asn1_encode(asn1_PA_PK_AS_REP_Win2k, p, len, data, size);
    1741             : }
    1742             : 
    1743             : 
    1744             : size_t ASN1CALL
    1745           0 : length_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *data)
    1746             : {
    1747           0 :     return _asn1_length(asn1_PA_PK_AS_REP_Win2k, data);
    1748             : }
    1749             : 
    1750             : 
    1751             : void ASN1CALL
    1752           0 : free_PA_PK_AS_REP_Win2k(PA_PK_AS_REP_Win2k *data)
    1753             : {
    1754           0 :     _asn1_free_top(asn1_PA_PK_AS_REP_Win2k, data);
    1755           0 : }
    1756             : 
    1757             : 
    1758             : int ASN1CALL
    1759           0 : copy_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *from, PA_PK_AS_REP_Win2k *to)
    1760             : {
    1761           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP_Win2k, from, to);
    1762             : }
    1763             : 
    1764             : 
    1765             : char * ASN1CALL
    1766           0 : print_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *data, int flags)
    1767             : {
    1768           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP_Win2k, flags, data);
    1769             : }
    1770             : 
    1771             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1772             : /* tsequence: members isstruct: 1 */
    1773             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1774             : /* template_members: int exp exp */
    1775             : /* generate_template_type: int_tag_nonce_89 */
    1776             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_nonce_88 */
    1777             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1778             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1779             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_subjectPublicKey_91 */
    1780             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_91[] = {
    1781             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1782             : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
    1783             : };
    1784             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_subjectPublicKey_90 */
    1785             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_90[] = {
    1786             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1787             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), 0, asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_91 }
    1788             : };
    1789             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag__87 */
    1790             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag__87[] = {
    1791             : /* 0 */ { 0, sizeof(struct KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)5) },
    1792             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct KDCDHKeyInfo_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_67 },
    1793             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct KDCDHKeyInfo_Win2k, subjectPublicKey), asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_90 },
    1794             : /* 3 */ { A1_OP_NAME, 0, "KDCDHKeyInfo_Win2k" },
    1795             : /* 4 */ { A1_OP_NAME, 0, "nonce" },
    1796             : /* 5 */ { A1_OP_NAME, 0, "subjectPublicKey" }
    1797             : };
    1798             : /* generate_template_type: KDCDHKeyInfo_Win2k */
    1799             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k[] = {
    1800             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1801             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_KDCDHKeyInfo_Win2k_tag__87 }
    1802             : };
    1803             : 
    1804             : int ASN1CALL
    1805           0 : decode_KDCDHKeyInfo_Win2k(const unsigned char *p, size_t len, KDCDHKeyInfo_Win2k *data, size_t *size)
    1806             : {
    1807           0 :     memset(data, 0, sizeof(*data));
    1808           0 :     return _asn1_decode_top(asn1_KDCDHKeyInfo_Win2k, 0|0, p, len, data, size);
    1809             : }
    1810             : 
    1811             : 
    1812             : int ASN1CALL
    1813           0 : encode_KDCDHKeyInfo_Win2k(unsigned char *p, size_t len, const KDCDHKeyInfo_Win2k *data, size_t *size)
    1814             : {
    1815           0 :     return _asn1_encode(asn1_KDCDHKeyInfo_Win2k, p, len, data, size);
    1816             : }
    1817             : 
    1818             : 
    1819             : size_t ASN1CALL
    1820           0 : length_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *data)
    1821             : {
    1822           0 :     return _asn1_length(asn1_KDCDHKeyInfo_Win2k, data);
    1823             : }
    1824             : 
    1825             : 
    1826             : void ASN1CALL
    1827           0 : free_KDCDHKeyInfo_Win2k(KDCDHKeyInfo_Win2k *data)
    1828             : {
    1829           0 :     _asn1_free_top(asn1_KDCDHKeyInfo_Win2k, data);
    1830           0 : }
    1831             : 
    1832             : 
    1833             : int ASN1CALL
    1834           0 : copy_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *from, KDCDHKeyInfo_Win2k *to)
    1835             : {
    1836           0 :     return _asn1_copy_top(asn1_KDCDHKeyInfo_Win2k, from, to);
    1837             : }
    1838             : 
    1839             : 
    1840             : char * ASN1CALL
    1841           0 : print_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *data, int flags)
    1842             : {
    1843           0 :     return _asn1_print_top(asn1_KDCDHKeyInfo_Win2k, flags, data);
    1844             : }
    1845             : 
    1846             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1847             : /* tsequence: members isstruct: 1 */
    1848             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1849             : /* generate_template_type: ReplyKeyPack_Win2k_tag_replyKey_93 */
    1850             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1851             : /* template_members: int exp exp */
    1852             : /* generate_template_type: int_tag_nonce_95 */
    1853             : /* generate_template_type: ReplyKeyPack_Win2k_tag_nonce_94 */
    1854             : /* generate_template_type: ReplyKeyPack_Win2k_tag__92 */
    1855             : const struct asn1_template asn1_ReplyKeyPack_Win2k_tag__92[] = {
    1856             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct ReplyKeyPack_Win2k), ((void *)(uintptr_t)6) },
    1857             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct ReplyKeyPack_Win2k, replyKey), asn1_ReplyKeyPack_tag_replyKey_58 },
    1858             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct ReplyKeyPack_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_67 },
    1859             : /* 3 */ { A1_OP_NAME, 0, "ReplyKeyPack_Win2k" },
    1860             : /* 4 */ { A1_OP_NAME, 0, "replyKey" },
    1861             : /* 5 */ { A1_OP_NAME, 0, "nonce" },
    1862             : /* 6 */ { A1_OP_NAME, 0, "..." }
    1863             : };
    1864             : /* generate_template_type: ReplyKeyPack_Win2k */
    1865             : const struct asn1_template asn1_ReplyKeyPack_Win2k[] = {
    1866             : /* 0 */ { 0, sizeof(ReplyKeyPack_Win2k), ((void *)(uintptr_t)1) },
    1867             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ReplyKeyPack_Win2k_tag__92 }
    1868             : };
    1869             : 
    1870             : int ASN1CALL
    1871           0 : decode_ReplyKeyPack_Win2k(const unsigned char *p, size_t len, ReplyKeyPack_Win2k *data, size_t *size)
    1872             : {
    1873           0 :     memset(data, 0, sizeof(*data));
    1874           0 :     return _asn1_decode_top(asn1_ReplyKeyPack_Win2k, 0|0, p, len, data, size);
    1875             : }
    1876             : 
    1877             : 
    1878             : int ASN1CALL
    1879           0 : encode_ReplyKeyPack_Win2k(unsigned char *p, size_t len, const ReplyKeyPack_Win2k *data, size_t *size)
    1880             : {
    1881           0 :     return _asn1_encode(asn1_ReplyKeyPack_Win2k, p, len, data, size);
    1882             : }
    1883             : 
    1884             : 
    1885             : size_t ASN1CALL
    1886           0 : length_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *data)
    1887             : {
    1888           0 :     return _asn1_length(asn1_ReplyKeyPack_Win2k, data);
    1889             : }
    1890             : 
    1891             : 
    1892             : void ASN1CALL
    1893           0 : free_ReplyKeyPack_Win2k(ReplyKeyPack_Win2k *data)
    1894             : {
    1895           0 :     _asn1_free_top(asn1_ReplyKeyPack_Win2k, data);
    1896           0 : }
    1897             : 
    1898             : 
    1899             : int ASN1CALL
    1900           0 : copy_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *from, ReplyKeyPack_Win2k *to)
    1901             : {
    1902           0 :     return _asn1_copy_top(asn1_ReplyKeyPack_Win2k, from, to);
    1903             : }
    1904             : 
    1905             : 
    1906             : char * ASN1CALL
    1907           0 : print_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *data, int flags)
    1908             : {
    1909           0 :     return _asn1_print_top(asn1_ReplyKeyPack_Win2k, flags, data);
    1910             : }
    1911             : 
    1912             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1913             : /* tsequence: members isstruct: 1 */
    1914             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1915             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag_dhSignedData_97 */
    1916             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1917             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag_encKeyPack_98 */
    1918             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag__96 */
    1919             : const struct asn1_template asn1_PA_PK_AS_REP_BTMM_tag__96[] = {
    1920             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REP_BTMM), ((void *)(uintptr_t)5) },
    1921             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REP_BTMM, dhSignedData), asn1_HEIM_ANY_tag__72 },
    1922             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REP_BTMM, encKeyPack), asn1_HEIM_ANY_tag__72 },
    1923             : /* 3 */ { A1_OP_NAME, 0, "PA_PK_AS_REP_BTMM" },
    1924             : /* 4 */ { A1_OP_NAME, 0, "dhSignedData" },
    1925             : /* 5 */ { A1_OP_NAME, 0, "encKeyPack" }
    1926             : };
    1927             : /* generate_template_type: PA_PK_AS_REP_BTMM */
    1928             : const struct asn1_template asn1_PA_PK_AS_REP_BTMM[] = {
    1929             : /* 0 */ { 0, sizeof(PA_PK_AS_REP_BTMM), ((void *)(uintptr_t)1) },
    1930             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REP_BTMM_tag__96 }
    1931             : };
    1932             : 
    1933             : int ASN1CALL
    1934           0 : decode_PA_PK_AS_REP_BTMM(const unsigned char *p, size_t len, PA_PK_AS_REP_BTMM *data, size_t *size)
    1935             : {
    1936           0 :     memset(data, 0, sizeof(*data));
    1937           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REP_BTMM, 0|0, p, len, data, size);
    1938             : }
    1939             : 
    1940             : 
    1941             : int ASN1CALL
    1942           0 : encode_PA_PK_AS_REP_BTMM(unsigned char *p, size_t len, const PA_PK_AS_REP_BTMM *data, size_t *size)
    1943             : {
    1944           0 :     return _asn1_encode(asn1_PA_PK_AS_REP_BTMM, p, len, data, size);
    1945             : }
    1946             : 
    1947             : 
    1948             : size_t ASN1CALL
    1949           0 : length_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *data)
    1950             : {
    1951           0 :     return _asn1_length(asn1_PA_PK_AS_REP_BTMM, data);
    1952             : }
    1953             : 
    1954             : 
    1955             : void ASN1CALL
    1956           0 : free_PA_PK_AS_REP_BTMM(PA_PK_AS_REP_BTMM *data)
    1957             : {
    1958           0 :     _asn1_free_top(asn1_PA_PK_AS_REP_BTMM, data);
    1959           0 : }
    1960             : 
    1961             : 
    1962             : int ASN1CALL
    1963           0 : copy_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *from, PA_PK_AS_REP_BTMM *to)
    1964             : {
    1965           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP_BTMM, from, to);
    1966             : }
    1967             : 
    1968             : 
    1969             : char * ASN1CALL
    1970           0 : print_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *data, int flags)
    1971             : {
    1972           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP_BTMM, flags, data);
    1973             : }
    1974             : 
    1975             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1976             : /* tsequence: members isstruct: 1 */
    1977             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1978             : /* template_members: heim_octet_string exp exp */
    1979             : /* generate_template_type: heim_octet_string_tag_partyUInfo_101 */
    1980             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_partyUInfo_100 */
    1981             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1982             : /* template_members: heim_octet_string exp exp */
    1983             : /* generate_template_type: heim_octet_string_tag_partyVInfo_103 */
    1984             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_partyVInfo_102 */
    1985             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1986             : /* template_members: heim_octet_string exp exp */
    1987             : /* generate_template_type: heim_octet_string_tag_suppPubInfo_105 */
    1988             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_suppPubInfo_104 */
    1989             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1990             : /* template_members: heim_octet_string exp exp */
    1991             : /* generate_template_type: heim_octet_string_tag_suppPrivInfo_107 */
    1992             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_suppPrivInfo_106 */
    1993             : /* generate_template_type: PkinitSP80056AOtherInfo_tag__99 */
    1994             : const struct asn1_template asn1_PkinitSP80056AOtherInfo_tag__99[] = {
    1995             : /* 0 */ { 0, sizeof(struct PkinitSP80056AOtherInfo), ((void *)(uintptr_t)11) },
    1996             : /* 1 */ { A1_OP_TYPE_EXTERN , offsetof(struct PkinitSP80056AOtherInfo, algorithmID), &asn1_extern_AlgorithmIdentifier},
    1997             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PkinitSP80056AOtherInfo, partyUInfo), asn1_TrustedCA_tag_caName_6 },
    1998             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PkinitSP80056AOtherInfo, partyVInfo), asn1_TrustedCA_tag_caName_6 },
    1999             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct PkinitSP80056AOtherInfo, suppPubInfo), asn1_TrustedCA_tag_caName_6 },
    2000             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct PkinitSP80056AOtherInfo, suppPrivInfo), asn1_TrustedCA_tag_caName_6 },
    2001             : /* 6 */ { A1_OP_NAME, 0, "PkinitSP80056AOtherInfo" },
    2002             : /* 7 */ { A1_OP_NAME, 0, "algorithmID" },
    2003             : /* 8 */ { A1_OP_NAME, 0, "partyUInfo" },
    2004             : /* 9 */ { A1_OP_NAME, 0, "partyVInfo" },
    2005             : /* 10 */ { A1_OP_NAME, 0, "suppPubInfo" },
    2006             : /* 11 */ { A1_OP_NAME, 0, "suppPrivInfo" }
    2007             : };
    2008             : /* generate_template_type: PkinitSP80056AOtherInfo */
    2009             : const struct asn1_template asn1_PkinitSP80056AOtherInfo[] = {
    2010             : /* 0 */ { 0, sizeof(PkinitSP80056AOtherInfo), ((void *)(uintptr_t)1) },
    2011             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PkinitSP80056AOtherInfo_tag__99 }
    2012             : };
    2013             : 
    2014             : int ASN1CALL
    2015           0 : decode_PkinitSP80056AOtherInfo(const unsigned char *p, size_t len, PkinitSP80056AOtherInfo *data, size_t *size)
    2016             : {
    2017           0 :     memset(data, 0, sizeof(*data));
    2018           0 :     return _asn1_decode_top(asn1_PkinitSP80056AOtherInfo, 0|0, p, len, data, size);
    2019             : }
    2020             : 
    2021             : 
    2022             : int ASN1CALL
    2023           0 : encode_PkinitSP80056AOtherInfo(unsigned char *p, size_t len, const PkinitSP80056AOtherInfo *data, size_t *size)
    2024             : {
    2025           0 :     return _asn1_encode(asn1_PkinitSP80056AOtherInfo, p, len, data, size);
    2026             : }
    2027             : 
    2028             : 
    2029             : size_t ASN1CALL
    2030           0 : length_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *data)
    2031             : {
    2032           0 :     return _asn1_length(asn1_PkinitSP80056AOtherInfo, data);
    2033             : }
    2034             : 
    2035             : 
    2036             : void ASN1CALL
    2037           0 : free_PkinitSP80056AOtherInfo(PkinitSP80056AOtherInfo *data)
    2038             : {
    2039           0 :     _asn1_free_top(asn1_PkinitSP80056AOtherInfo, data);
    2040           0 : }
    2041             : 
    2042             : 
    2043             : int ASN1CALL
    2044           0 : copy_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *from, PkinitSP80056AOtherInfo *to)
    2045             : {
    2046           0 :     return _asn1_copy_top(asn1_PkinitSP80056AOtherInfo, from, to);
    2047             : }
    2048             : 
    2049             : 
    2050             : char * ASN1CALL
    2051           0 : print_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *data, int flags)
    2052             : {
    2053           0 :     return _asn1_print_top(asn1_PkinitSP80056AOtherInfo, flags, data);
    2054             : }
    2055             : 
    2056             : /* template_members: PkinitSuppPubInfo exp exp */
    2057             : /* tsequence: members isstruct: 1 */
    2058             : /* template_members: PkinitSuppPubInfo exp exp */
    2059             : /* template_members: int exp exp */
    2060             : /* generate_template_type: int_tag_enctype_110 */
    2061             : /* generate_template_type: PkinitSuppPubInfo_tag_enctype_109 */
    2062             : /* template_members: PkinitSuppPubInfo exp exp */
    2063             : /* template_members: heim_octet_string exp exp */
    2064             : /* generate_template_type: heim_octet_string_tag_as_REQ_112 */
    2065             : /* generate_template_type: PkinitSuppPubInfo_tag_as_REQ_111 */
    2066             : /* template_members: PkinitSuppPubInfo exp exp */
    2067             : /* template_members: heim_octet_string exp exp */
    2068             : /* generate_template_type: heim_octet_string_tag_pk_as_rep_114 */
    2069             : /* generate_template_type: PkinitSuppPubInfo_tag_pk_as_rep_113 */
    2070             : /* template_members: PkinitSuppPubInfo exp exp */
    2071             : /* generate_template_type: PkinitSuppPubInfo_tag_ticket_115 */
    2072             : const struct asn1_template asn1_PkinitSuppPubInfo_tag_ticket_115[] = {
    2073             : /* 0 */ { 0, sizeof(Ticket), ((void *)(uintptr_t)1) },
    2074             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Ticket}
    2075             : };
    2076             : /* generate_template_type: PkinitSuppPubInfo_tag__108 */
    2077             : const struct asn1_template asn1_PkinitSuppPubInfo_tag__108[] = {
    2078             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct PkinitSuppPubInfo), ((void *)(uintptr_t)10) },
    2079             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PkinitSuppPubInfo, enctype), asn1_PKAuthenticator_Win2k_tag_nonce_67 },
    2080             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PkinitSuppPubInfo, as_REQ), asn1_TrustedCA_tag_caName_6 },
    2081             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PkinitSuppPubInfo, pk_as_rep), asn1_TrustedCA_tag_caName_6 },
    2082             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3), offsetof(struct PkinitSuppPubInfo, ticket), asn1_PkinitSuppPubInfo_tag_ticket_115 },
    2083             : /* 5 */ { A1_OP_NAME, 0, "PkinitSuppPubInfo" },
    2084             : /* 6 */ { A1_OP_NAME, 0, "enctype" },
    2085             : /* 7 */ { A1_OP_NAME, 0, "as-REQ" },
    2086             : /* 8 */ { A1_OP_NAME, 0, "pk-as-rep" },
    2087             : /* 9 */ { A1_OP_NAME, 0, "ticket" },
    2088             : /* 10 */ { A1_OP_NAME, 0, "..." }
    2089             : };
    2090             : /* generate_template_type: PkinitSuppPubInfo */
    2091             : const struct asn1_template asn1_PkinitSuppPubInfo[] = {
    2092             : /* 0 */ { 0, sizeof(PkinitSuppPubInfo), ((void *)(uintptr_t)1) },
    2093             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PkinitSuppPubInfo_tag__108 }
    2094             : };
    2095             : 
    2096             : int ASN1CALL
    2097           0 : decode_PkinitSuppPubInfo(const unsigned char *p, size_t len, PkinitSuppPubInfo *data, size_t *size)
    2098             : {
    2099           0 :     memset(data, 0, sizeof(*data));
    2100           0 :     return _asn1_decode_top(asn1_PkinitSuppPubInfo, 0|0, p, len, data, size);
    2101             : }
    2102             : 
    2103             : 
    2104             : int ASN1CALL
    2105           0 : encode_PkinitSuppPubInfo(unsigned char *p, size_t len, const PkinitSuppPubInfo *data, size_t *size)
    2106             : {
    2107           0 :     return _asn1_encode(asn1_PkinitSuppPubInfo, p, len, data, size);
    2108             : }
    2109             : 
    2110             : 
    2111             : size_t ASN1CALL
    2112           0 : length_PkinitSuppPubInfo(const PkinitSuppPubInfo *data)
    2113             : {
    2114           0 :     return _asn1_length(asn1_PkinitSuppPubInfo, data);
    2115             : }
    2116             : 
    2117             : 
    2118             : void ASN1CALL
    2119           0 : free_PkinitSuppPubInfo(PkinitSuppPubInfo *data)
    2120             : {
    2121           0 :     _asn1_free_top(asn1_PkinitSuppPubInfo, data);
    2122           0 : }
    2123             : 
    2124             : 
    2125             : int ASN1CALL
    2126           0 : copy_PkinitSuppPubInfo(const PkinitSuppPubInfo *from, PkinitSuppPubInfo *to)
    2127             : {
    2128           0 :     return _asn1_copy_top(asn1_PkinitSuppPubInfo, from, to);
    2129             : }
    2130             : 
    2131             : 
    2132             : char * ASN1CALL
    2133           0 : print_PkinitSuppPubInfo(const PkinitSuppPubInfo *data, int flags)
    2134             : {
    2135           0 :     return _asn1_print_top(asn1_PkinitSuppPubInfo, flags, data);
    2136             : }
    2137             : 

Generated by: LCOV version 1.13