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 master 2f515e9b Lines: 76 378 20.1 %
Date: 2024-04-21 15:09:00 Functions: 30 162 18.5 %

          Line data    Source code
       1             : /* Generated from /builds/eaglegai/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          47 : decode_MS_UPN_SAN(const unsigned char *p, size_t len, MS_UPN_SAN *data, size_t *size)
     202             : {
     203          47 :     memset(data, 0, sizeof(*data));
     204          47 :     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          47 : free_MS_UPN_SAN(MS_UPN_SAN *data)
     224             : {
     225          47 :     _asn1_free_top(asn1_MS_UPN_SAN, data);
     226          47 : }
     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          57 : decode_PA_PK_AS_REQ(const unsigned char *p, size_t len, PA_PK_AS_REQ *data, size_t *size)
     621             : {
     622          57 :     memset(data, 0, sizeof(*data));
     623          57 :     return _asn1_decode_top(asn1_PA_PK_AS_REQ, 0|0, p, len, data, size);
     624             : }
     625             : 
     626             : 
     627             : int ASN1CALL
     628         124 : encode_PA_PK_AS_REQ(unsigned char *p, size_t len, const PA_PK_AS_REQ *data, size_t *size)
     629             : {
     630         124 :     return _asn1_encode(asn1_PA_PK_AS_REQ, p, len, data, size);
     631             : }
     632             : 
     633             : 
     634             : size_t ASN1CALL
     635         124 : length_PA_PK_AS_REQ(const PA_PK_AS_REQ *data)
     636             : {
     637         124 :     return _asn1_length(asn1_PA_PK_AS_REQ, data);
     638             : }
     639             : 
     640             : 
     641             : void ASN1CALL
     642         181 : free_PA_PK_AS_REQ(PA_PK_AS_REQ *data)
     643             : {
     644         181 :     _asn1_free_top(asn1_PA_PK_AS_REQ, data);
     645         181 : }
     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             : /* template_members: PKAuthenticator exp exp */
     690             : /* template_members: heim_octet_string exp exp */
     691             : /* generate_template_type: heim_octet_string_tag_freshnessToken_35 */
     692             : /* generate_template_type: PKAuthenticator_tag_freshnessToken_34 */
     693             : /* generate_template_type: PKAuthenticator_tag__26 */
     694             : const struct asn1_template asn1_PKAuthenticator_tag__26[] = {
     695             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct PKAuthenticator), ((void *)(uintptr_t)12) },
     696             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PKAuthenticator, cusec), asn1_TrustedCA_tag_certificateSerialNumber_8 },
     697             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PKAuthenticator, ctime), asn1_PKAuthenticator_tag_ctime_29 },
     698             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PKAuthenticator, nonce), asn1_PKAuthenticator_tag_nonce_30 },
     699             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct PKAuthenticator, paChecksum), asn1_TrustedCA_tag_caName_6 },
     700             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,4)|A1_FLAG_OPTIONAL, offsetof(struct PKAuthenticator, freshnessToken), asn1_TrustedCA_tag_caName_6 },
     701             : /* 6 */ { A1_OP_NAME, 0, "PKAuthenticator" },
     702             : /* 7 */ { A1_OP_NAME, 0, "cusec" },
     703             : /* 8 */ { A1_OP_NAME, 0, "ctime" },
     704             : /* 9 */ { A1_OP_NAME, 0, "nonce" },
     705             : /* 10 */ { A1_OP_NAME, 0, "paChecksum" },
     706             : /* 11 */ { A1_OP_NAME, 0, "freshnessToken" },
     707             : /* 12 */ { A1_OP_NAME, 0, "..." }
     708             : };
     709             : /* generate_template_type: PKAuthenticator */
     710             : const struct asn1_template asn1_PKAuthenticator[] = {
     711             : /* 0 */ { 0, sizeof(PKAuthenticator), ((void *)(uintptr_t)1) },
     712             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PKAuthenticator_tag__26 }
     713             : };
     714             : 
     715             : int ASN1CALL
     716           0 : decode_PKAuthenticator(const unsigned char *p, size_t len, PKAuthenticator *data, size_t *size)
     717             : {
     718           0 :     memset(data, 0, sizeof(*data));
     719           0 :     return _asn1_decode_top(asn1_PKAuthenticator, 0|0, p, len, data, size);
     720             : }
     721             : 
     722             : 
     723             : int ASN1CALL
     724           0 : encode_PKAuthenticator(unsigned char *p, size_t len, const PKAuthenticator *data, size_t *size)
     725             : {
     726           0 :     return _asn1_encode(asn1_PKAuthenticator, p, len, data, size);
     727             : }
     728             : 
     729             : 
     730             : size_t ASN1CALL
     731           0 : length_PKAuthenticator(const PKAuthenticator *data)
     732             : {
     733           0 :     return _asn1_length(asn1_PKAuthenticator, data);
     734             : }
     735             : 
     736             : 
     737             : void ASN1CALL
     738           0 : free_PKAuthenticator(PKAuthenticator *data)
     739             : {
     740           0 :     _asn1_free_top(asn1_PKAuthenticator, data);
     741           0 : }
     742             : 
     743             : 
     744             : int ASN1CALL
     745           0 : copy_PKAuthenticator(const PKAuthenticator *from, PKAuthenticator *to)
     746             : {
     747           0 :     return _asn1_copy_top(asn1_PKAuthenticator, from, to);
     748             : }
     749             : 
     750             : 
     751             : char * ASN1CALL
     752           0 : print_PKAuthenticator(const PKAuthenticator *data, int flags)
     753             : {
     754           0 :     return _asn1_print_top(asn1_PKAuthenticator, flags, data);
     755             : }
     756             : 
     757             : /* template_members: AuthPack exp exp */
     758             : /* tsequence: members isstruct: 1 */
     759             : /* template_members: AuthPack exp exp */
     760             : /* generate_template_type: AuthPack_tag_pkAuthenticator_37 */
     761             : const struct asn1_template asn1_AuthPack_tag_pkAuthenticator_37[] = {
     762             : /* 0 */ { 0, sizeof(PKAuthenticator), ((void *)(uintptr_t)1) },
     763             : /* 1 */ { A1_OP_TYPE , 0, asn1_PKAuthenticator }
     764             : };
     765             : /* template_members: AuthPack exp exp */
     766             : /* generate_template_type: AuthPack_tag_clientPublicValue_38 */
     767             : const struct asn1_template asn1_AuthPack_tag_clientPublicValue_38[] = {
     768             : /* 0 */ { 0, sizeof(SubjectPublicKeyInfo), ((void *)(uintptr_t)1) },
     769             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_SubjectPublicKeyInfo}
     770             : };
     771             : /* template_members: AuthPack exp exp */
     772             : /* template_members: AuthPack exp exp */
     773             : /* generate_template_type: AuthPack_supportedCMSTypes_1 */
     774             : const struct asn1_template asn1_AuthPack_supportedCMSTypes_1[] = {
     775             : /* 0 */ { 0, sizeof(AlgorithmIdentifier), ((void *)(uintptr_t)1) },
     776             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_AlgorithmIdentifier}
     777             : };
     778             : /* generate_template_type: AuthPack_tag_supportedCMSTypes_40 */
     779             : const struct asn1_template asn1_AuthPack_tag_supportedCMSTypes_40[] = {
     780             : /* 0 */ { 0, sizeof(struct AuthPack_supportedCMSTypes), ((void *)(uintptr_t)1) },
     781             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedCMSTypes_1 }
     782             : };
     783             : /* generate_template_type: AuthPack_tag_supportedCMSTypes_39 */
     784             : const struct asn1_template asn1_AuthPack_tag_supportedCMSTypes_39[] = {
     785             : /* 0 */ { 0, sizeof(struct AuthPack_supportedCMSTypes), ((void *)(uintptr_t)1) },
     786             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag_supportedCMSTypes_40 }
     787             : };
     788             : /* template_members: AuthPack exp exp */
     789             : /* generate_template_type: AuthPack_tag_clientDHNonce_41 */
     790             : const struct asn1_template asn1_AuthPack_tag_clientDHNonce_41[] = {
     791             : /* 0 */ { 0, sizeof(DHNonce), ((void *)(uintptr_t)1) },
     792             : /* 1 */ { A1_OP_TYPE , 0, asn1_DHNonce }
     793             : };
     794             : /* template_members: AuthPack exp exp */
     795             : /* template_members: AuthPack exp exp */
     796             : /* generate_template_type: AuthPack_supportedKDFs_2 */
     797             : const struct asn1_template asn1_AuthPack_supportedKDFs_2[] = {
     798             : /* 0 */ { 0, sizeof(KDFAlgorithmId), ((void *)(uintptr_t)1) },
     799             : /* 1 */ { A1_OP_TYPE , 0, asn1_KDFAlgorithmId }
     800             : };
     801             : /* generate_template_type: AuthPack_tag_supportedKDFs_43 */
     802             : const struct asn1_template asn1_AuthPack_tag_supportedKDFs_43[] = {
     803             : /* 0 */ { 0, sizeof(struct AuthPack_supportedKDFs), ((void *)(uintptr_t)1) },
     804             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedKDFs_2 }
     805             : };
     806             : /* generate_template_type: AuthPack_tag_supportedKDFs_42 */
     807             : const struct asn1_template asn1_AuthPack_tag_supportedKDFs_42[] = {
     808             : /* 0 */ { 0, sizeof(struct AuthPack_supportedKDFs), ((void *)(uintptr_t)1) },
     809             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag_supportedKDFs_43 }
     810             : };
     811             : /* generate_template_type: AuthPack_tag__36 */
     812             : const struct asn1_template asn1_AuthPack_tag__36[] = {
     813             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct AuthPack), ((void *)(uintptr_t)13) },
     814             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct AuthPack, pkAuthenticator), asn1_AuthPack_tag_pkAuthenticator_37 },
     815             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, clientPublicValue), asn1_AuthPack_tag_clientPublicValue_38 },
     816             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, supportedCMSTypes), asn1_AuthPack_tag_supportedCMSTypes_39 },
     817             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, clientDHNonce), asn1_AuthPack_tag_clientDHNonce_41 },
     818             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,4)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack, supportedKDFs), asn1_AuthPack_tag_supportedKDFs_42 },
     819             : /* 6 */ { A1_OP_NAME, 0, "AuthPack" },
     820             : /* 7 */ { A1_OP_NAME, 0, "pkAuthenticator" },
     821             : /* 8 */ { A1_OP_NAME, 0, "clientPublicValue" },
     822             : /* 9 */ { A1_OP_NAME, 0, "supportedCMSTypes" },
     823             : /* 10 */ { A1_OP_NAME, 0, "clientDHNonce" },
     824             : /* 11 */ { A1_OP_NAME, 0, "..." },
     825             : /* 12 */ { A1_OP_NAME, 0, "supportedKDFs" },
     826             : /* 13 */ { A1_OP_NAME, 0, "..." }
     827             : };
     828             : /* generate_template_type: AuthPack */
     829             : const struct asn1_template asn1_AuthPack[] = {
     830             : /* 0 */ { 0, sizeof(AuthPack), ((void *)(uintptr_t)1) },
     831             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_tag__36 }
     832             : };
     833             : 
     834             : int ASN1CALL
     835          55 : decode_AuthPack(const unsigned char *p, size_t len, AuthPack *data, size_t *size)
     836             : {
     837          55 :     memset(data, 0, sizeof(*data));
     838          55 :     return _asn1_decode_top(asn1_AuthPack, 0|0, p, len, data, size);
     839             : }
     840             : 
     841             : 
     842             : int ASN1CALL
     843         124 : encode_AuthPack(unsigned char *p, size_t len, const AuthPack *data, size_t *size)
     844             : {
     845         124 :     return _asn1_encode(asn1_AuthPack, p, len, data, size);
     846             : }
     847             : 
     848             : 
     849             : size_t ASN1CALL
     850         124 : length_AuthPack(const AuthPack *data)
     851             : {
     852         124 :     return _asn1_length(asn1_AuthPack, data);
     853             : }
     854             : 
     855             : 
     856             : void ASN1CALL
     857         179 : free_AuthPack(AuthPack *data)
     858             : {
     859         179 :     _asn1_free_top(asn1_AuthPack, data);
     860         179 : }
     861             : 
     862             : 
     863             : int ASN1CALL
     864           0 : copy_AuthPack(const AuthPack *from, AuthPack *to)
     865             : {
     866           0 :     return _asn1_copy_top(asn1_AuthPack, from, to);
     867             : }
     868             : 
     869             : 
     870             : char * ASN1CALL
     871           0 : print_AuthPack(const AuthPack *data, int flags)
     872             : {
     873           0 :     return _asn1_print_top(asn1_AuthPack, flags, data);
     874             : }
     875             : 
     876             : /* generate_template_type: TD_TRUSTED_CERTIFIERS */
     877             : const struct asn1_template asn1_TD_TRUSTED_CERTIFIERS[] = {
     878             : /* 0 */ { 0, sizeof(TD_TRUSTED_CERTIFIERS), ((void *)(uintptr_t)1) },
     879             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifiers }
     880             : };
     881             : 
     882             : int ASN1CALL
     883           0 : decode_TD_TRUSTED_CERTIFIERS(const unsigned char *p, size_t len, TD_TRUSTED_CERTIFIERS *data, size_t *size)
     884             : {
     885           0 :     memset(data, 0, sizeof(*data));
     886           0 :     return _asn1_decode_top(asn1_TD_TRUSTED_CERTIFIERS, 0|0, p, len, data, size);
     887             : }
     888             : 
     889             : 
     890             : int ASN1CALL
     891           0 : encode_TD_TRUSTED_CERTIFIERS(unsigned char *p, size_t len, const TD_TRUSTED_CERTIFIERS *data, size_t *size)
     892             : {
     893           0 :     return _asn1_encode(asn1_TD_TRUSTED_CERTIFIERS, p, len, data, size);
     894             : }
     895             : 
     896             : 
     897             : size_t ASN1CALL
     898           0 : length_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *data)
     899             : {
     900           0 :     return _asn1_length(asn1_TD_TRUSTED_CERTIFIERS, data);
     901             : }
     902             : 
     903             : 
     904             : void ASN1CALL
     905           0 : free_TD_TRUSTED_CERTIFIERS(TD_TRUSTED_CERTIFIERS *data)
     906             : {
     907           0 :     _asn1_free_top(asn1_TD_TRUSTED_CERTIFIERS, data);
     908           0 : }
     909             : 
     910             : 
     911             : int ASN1CALL
     912           0 : copy_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *from, TD_TRUSTED_CERTIFIERS *to)
     913             : {
     914           0 :     return _asn1_copy_top(asn1_TD_TRUSTED_CERTIFIERS, from, to);
     915             : }
     916             : 
     917             : 
     918             : char * ASN1CALL
     919           0 : print_TD_TRUSTED_CERTIFIERS(const TD_TRUSTED_CERTIFIERS *data, int flags)
     920             : {
     921           0 :     return _asn1_print_top(asn1_TD_TRUSTED_CERTIFIERS, flags, data);
     922             : }
     923             : 
     924             : /* generate_template_type: TD_INVALID_CERTIFICATES */
     925             : const struct asn1_template asn1_TD_INVALID_CERTIFICATES[] = {
     926             : /* 0 */ { 0, sizeof(TD_INVALID_CERTIFICATES), ((void *)(uintptr_t)1) },
     927             : /* 1 */ { A1_OP_TYPE , 0, asn1_ExternalPrincipalIdentifiers }
     928             : };
     929             : 
     930             : int ASN1CALL
     931           0 : decode_TD_INVALID_CERTIFICATES(const unsigned char *p, size_t len, TD_INVALID_CERTIFICATES *data, size_t *size)
     932             : {
     933           0 :     memset(data, 0, sizeof(*data));
     934           0 :     return _asn1_decode_top(asn1_TD_INVALID_CERTIFICATES, 0|0, p, len, data, size);
     935             : }
     936             : 
     937             : 
     938             : int ASN1CALL
     939           0 : encode_TD_INVALID_CERTIFICATES(unsigned char *p, size_t len, const TD_INVALID_CERTIFICATES *data, size_t *size)
     940             : {
     941           0 :     return _asn1_encode(asn1_TD_INVALID_CERTIFICATES, p, len, data, size);
     942             : }
     943             : 
     944             : 
     945             : size_t ASN1CALL
     946           0 : length_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *data)
     947             : {
     948           0 :     return _asn1_length(asn1_TD_INVALID_CERTIFICATES, data);
     949             : }
     950             : 
     951             : 
     952             : void ASN1CALL
     953           0 : free_TD_INVALID_CERTIFICATES(TD_INVALID_CERTIFICATES *data)
     954             : {
     955           0 :     _asn1_free_top(asn1_TD_INVALID_CERTIFICATES, data);
     956           0 : }
     957             : 
     958             : 
     959             : int ASN1CALL
     960           0 : copy_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *from, TD_INVALID_CERTIFICATES *to)
     961             : {
     962           0 :     return _asn1_copy_top(asn1_TD_INVALID_CERTIFICATES, from, to);
     963             : }
     964             : 
     965             : 
     966             : char * ASN1CALL
     967           0 : print_TD_INVALID_CERTIFICATES(const TD_INVALID_CERTIFICATES *data, int flags)
     968             : {
     969           0 :     return _asn1_print_top(asn1_TD_INVALID_CERTIFICATES, flags, data);
     970             : }
     971             : 
     972             : /* template_members: AD_INITIAL_VERIFIED_CAS exp exp */
     973             : /* generate_template_type: ExternalPrincipalIdentifier_seofTstruct_3 */
     974             : /* generate_template_type: AD_INITIAL_VERIFIED_CAS_tag__44 */
     975             : /* generate_template_type: AD_INITIAL_VERIFIED_CAS */
     976             : const struct asn1_template asn1_AD_INITIAL_VERIFIED_CAS[] = {
     977             : /* 0 */ { 0, sizeof(AD_INITIAL_VERIFIED_CAS), ((void *)(uintptr_t)1) },
     978             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ExternalPrincipalIdentifiers_tag__19 }
     979             : };
     980             : 
     981             : int ASN1CALL
     982           0 : decode_AD_INITIAL_VERIFIED_CAS(const unsigned char *p, size_t len, AD_INITIAL_VERIFIED_CAS *data, size_t *size)
     983             : {
     984           0 :     memset(data, 0, sizeof(*data));
     985           0 :     return _asn1_decode_top(asn1_AD_INITIAL_VERIFIED_CAS, 0|0, p, len, data, size);
     986             : }
     987             : 
     988             : 
     989             : int ASN1CALL
     990          45 : encode_AD_INITIAL_VERIFIED_CAS(unsigned char *p, size_t len, const AD_INITIAL_VERIFIED_CAS *data, size_t *size)
     991             : {
     992          45 :     return _asn1_encode(asn1_AD_INITIAL_VERIFIED_CAS, p, len, data, size);
     993             : }
     994             : 
     995             : 
     996             : size_t ASN1CALL
     997          45 : length_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *data)
     998             : {
     999          45 :     return _asn1_length(asn1_AD_INITIAL_VERIFIED_CAS, data);
    1000             : }
    1001             : 
    1002             : 
    1003             : void ASN1CALL
    1004           0 : free_AD_INITIAL_VERIFIED_CAS(AD_INITIAL_VERIFIED_CAS *data)
    1005             : {
    1006           0 :     _asn1_free_top(asn1_AD_INITIAL_VERIFIED_CAS, data);
    1007           0 : }
    1008             : 
    1009             : 
    1010             : int ASN1CALL
    1011           0 : copy_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *from, AD_INITIAL_VERIFIED_CAS *to)
    1012             : {
    1013           0 :     return _asn1_copy_top(asn1_AD_INITIAL_VERIFIED_CAS, from, to);
    1014             : }
    1015             : 
    1016             : 
    1017             : char * ASN1CALL
    1018           0 : print_AD_INITIAL_VERIFIED_CAS(const AD_INITIAL_VERIFIED_CAS *data, int flags)
    1019             : {
    1020           0 :     return _asn1_print_top(asn1_AD_INITIAL_VERIFIED_CAS, flags, data);
    1021             : }
    1022             : 
    1023             : /* template_members: DHRepInfo exp exp */
    1024             : /* tsequence: members isstruct: 1 */
    1025             : /* template_members: DHRepInfo exp imp */
    1026             : /* template_members: heim_octet_string exp exp */
    1027             : /* generate_template_type: heim_octet_string_tag_dhSignedData_47 */
    1028             : /* generate_template_type: DHRepInfo_tag_dhSignedData_46 */
    1029             : /* template_members: DHRepInfo exp exp */
    1030             : /* generate_template_type: DHRepInfo_tag_serverDHNonce_48 */
    1031             : /* template_members: DHRepInfo exp exp */
    1032             : /* generate_template_type: DHRepInfo_tag_kdf_49 */
    1033             : /* generate_template_type: DHRepInfo_tag__45 */
    1034             : const struct asn1_template asn1_DHRepInfo_tag__45[] = {
    1035             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct DHRepInfo), ((void *)(uintptr_t)9) },
    1036             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, offsetof(struct DHRepInfo, dhSignedData), asn1_TrustedCA_tag_caName_6 },
    1037             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct DHRepInfo, serverDHNonce), asn1_AuthPack_tag_clientDHNonce_41 },
    1038             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct DHRepInfo, kdf), asn1_AuthPack_supportedKDFs_2 },
    1039             : /* 4 */ { A1_OP_NAME, 0, "DHRepInfo" },
    1040             : /* 5 */ { A1_OP_NAME, 0, "dhSignedData" },
    1041             : /* 6 */ { A1_OP_NAME, 0, "serverDHNonce" },
    1042             : /* 7 */ { A1_OP_NAME, 0, "..." },
    1043             : /* 8 */ { A1_OP_NAME, 0, "kdf" },
    1044             : /* 9 */ { A1_OP_NAME, 0, "..." }
    1045             : };
    1046             : /* generate_template_type: DHRepInfo */
    1047             : const struct asn1_template asn1_DHRepInfo[] = {
    1048             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1049             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_DHRepInfo_tag__45 }
    1050             : };
    1051             : 
    1052             : int ASN1CALL
    1053           0 : decode_DHRepInfo(const unsigned char *p, size_t len, DHRepInfo *data, size_t *size)
    1054             : {
    1055           0 :     memset(data, 0, sizeof(*data));
    1056           0 :     return _asn1_decode_top(asn1_DHRepInfo, 0|0, p, len, data, size);
    1057             : }
    1058             : 
    1059             : 
    1060             : int ASN1CALL
    1061           0 : encode_DHRepInfo(unsigned char *p, size_t len, const DHRepInfo *data, size_t *size)
    1062             : {
    1063           0 :     return _asn1_encode(asn1_DHRepInfo, p, len, data, size);
    1064             : }
    1065             : 
    1066             : 
    1067             : size_t ASN1CALL
    1068           0 : length_DHRepInfo(const DHRepInfo *data)
    1069             : {
    1070           0 :     return _asn1_length(asn1_DHRepInfo, data);
    1071             : }
    1072             : 
    1073             : 
    1074             : void ASN1CALL
    1075           0 : free_DHRepInfo(DHRepInfo *data)
    1076             : {
    1077           0 :     _asn1_free_top(asn1_DHRepInfo, data);
    1078           0 : }
    1079             : 
    1080             : 
    1081             : int ASN1CALL
    1082           0 : copy_DHRepInfo(const DHRepInfo *from, DHRepInfo *to)
    1083             : {
    1084           0 :     return _asn1_copy_top(asn1_DHRepInfo, from, to);
    1085             : }
    1086             : 
    1087             : 
    1088             : char * ASN1CALL
    1089           0 : print_DHRepInfo(const DHRepInfo *data, int flags)
    1090             : {
    1091           0 :     return _asn1_print_top(asn1_DHRepInfo, flags, data);
    1092             : }
    1093             : 
    1094             : /* template_members: DHRepInfo exp exp */
    1095             : /* generate_template_type: DHRepInfo_tag__50 */
    1096             : const struct asn1_template asn1_DHRepInfo_tag__50[] = {
    1097             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1098             : /* 1 */ { A1_OP_TYPE , 0, asn1_DHRepInfo }
    1099             : };
    1100             : /* generate_template_type: PA_PK_AS_REP_choice_dhInfo */
    1101             : const struct asn1_template asn1_PA_PK_AS_REP_choice_dhInfo[] = {
    1102             : /* 0 */ { 0, sizeof(DHRepInfo), ((void *)(uintptr_t)1) },
    1103             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), 0, asn1_DHRepInfo_tag__50 }
    1104             : };
    1105             : /* template_members: heim_octet_string imp imp */
    1106             : /* template_members: heim_octet_string exp exp */
    1107             : /* generate_template_type: heim_octet_string_tag__52 */
    1108             : /* generate_template_type: heim_octet_string_tag__51 */
    1109             : /* generate_template_type: PA_PK_AS_REP_choice_encKeyPack */
    1110             : const struct asn1_template asn1_PA_PK_AS_REP_choice_encKeyPack[] = {
    1111             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
    1112             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,1)|A1_FLAG_IMPLICIT, 0, asn1_TrustedCA_tag_caName_6 }
    1113             : };
    1114             : static const struct asn1_template asn1_choice_PA_PK_AS_REP_0[] = {
    1115             : /* 0 */ { offsetof(PA_PK_AS_REP, u.asn1_ellipsis), offsetof(PA_PK_AS_REP, element), ((void *)(uintptr_t)5) },
    1116             : /* 1 */ { choice_PA_PK_AS_REP_dhInfo, offsetof(PA_PK_AS_REP, u.dhInfo), asn1_PA_PK_AS_REP_choice_dhInfo },
    1117             : /* 2 */ { choice_PA_PK_AS_REP_encKeyPack, offsetof(PA_PK_AS_REP, u.encKeyPack), asn1_PA_PK_AS_REP_choice_encKeyPack },
    1118             : /* 3 */ { 0, 0, "dhInfo" },
    1119             : /* 4 */ { 0, 0, "encKeyPack" },
    1120             : /* 5 */ { 0, 0, "..." }
    1121             : };
    1122             : /* generate_template_type: PA_PK_AS_REP */
    1123             : const struct asn1_template asn1_PA_PK_AS_REP[] = {
    1124             : /* 0 */ { 0, sizeof(PA_PK_AS_REP), ((void *)(uintptr_t)1) },
    1125             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_PA_PK_AS_REP_0 }
    1126             : };
    1127             : 
    1128             : int ASN1CALL
    1129          13 : decode_PA_PK_AS_REP(const unsigned char *p, size_t len, PA_PK_AS_REP *data, size_t *size)
    1130             : {
    1131          13 :     memset(data, 0, sizeof(*data));
    1132          13 :     return _asn1_decode_top(asn1_PA_PK_AS_REP, 0|0, p, len, data, size);
    1133             : }
    1134             : 
    1135             : 
    1136             : int ASN1CALL
    1137          41 : encode_PA_PK_AS_REP(unsigned char *p, size_t len, const PA_PK_AS_REP *data, size_t *size)
    1138             : {
    1139          41 :     return _asn1_encode(asn1_PA_PK_AS_REP, p, len, data, size);
    1140             : }
    1141             : 
    1142             : 
    1143             : size_t ASN1CALL
    1144          41 : length_PA_PK_AS_REP(const PA_PK_AS_REP *data)
    1145             : {
    1146          41 :     return _asn1_length(asn1_PA_PK_AS_REP, data);
    1147             : }
    1148             : 
    1149             : 
    1150             : void ASN1CALL
    1151          54 : free_PA_PK_AS_REP(PA_PK_AS_REP *data)
    1152             : {
    1153          54 :     _asn1_free_top(asn1_PA_PK_AS_REP, data);
    1154          54 : }
    1155             : 
    1156             : 
    1157             : int ASN1CALL
    1158           0 : copy_PA_PK_AS_REP(const PA_PK_AS_REP *from, PA_PK_AS_REP *to)
    1159             : {
    1160           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP, from, to);
    1161             : }
    1162             : 
    1163             : 
    1164             : char * ASN1CALL
    1165           0 : print_PA_PK_AS_REP(const PA_PK_AS_REP *data, int flags)
    1166             : {
    1167           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP, flags, data);
    1168             : }
    1169             : 
    1170             : /* template_members: KDCDHKeyInfo exp exp */
    1171             : /* tsequence: members isstruct: 1 */
    1172             : /* template_members: KDCDHKeyInfo exp exp */
    1173             : /* template_members: KDCDHKeyInfo exp exp */
    1174             : /* generate_template_type: KDCDHKeyInfo_tag_subjectPublicKey_55 */
    1175             : const struct asn1_template asn1_KDCDHKeyInfo_tag_subjectPublicKey_55[] = {
    1176             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1177             : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
    1178             : };
    1179             : /* generate_template_type: KDCDHKeyInfo_tag_subjectPublicKey_54 */
    1180             : const struct asn1_template asn1_KDCDHKeyInfo_tag_subjectPublicKey_54[] = {
    1181             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1182             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), 0, asn1_KDCDHKeyInfo_tag_subjectPublicKey_55 }
    1183             : };
    1184             : /* template_members: KDCDHKeyInfo exp exp */
    1185             : /* template_members: unsigned exp exp */
    1186             : /* generate_template_type: unsigned_tag_nonce_57 */
    1187             : /* generate_template_type: KDCDHKeyInfo_tag_nonce_56 */
    1188             : /* template_members: KDCDHKeyInfo exp exp */
    1189             : /* generate_template_type: KDCDHKeyInfo_tag_dhKeyExpiration_58 */
    1190             : /* generate_template_type: KDCDHKeyInfo_tag__53 */
    1191             : const struct asn1_template asn1_KDCDHKeyInfo_tag__53[] = {
    1192             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct KDCDHKeyInfo), ((void *)(uintptr_t)8) },
    1193             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct KDCDHKeyInfo, subjectPublicKey), asn1_KDCDHKeyInfo_tag_subjectPublicKey_54 },
    1194             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct KDCDHKeyInfo, nonce), asn1_PKAuthenticator_tag_nonce_30 },
    1195             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct KDCDHKeyInfo, dhKeyExpiration), asn1_PKAuthenticator_tag_ctime_29 },
    1196             : /* 4 */ { A1_OP_NAME, 0, "KDCDHKeyInfo" },
    1197             : /* 5 */ { A1_OP_NAME, 0, "subjectPublicKey" },
    1198             : /* 6 */ { A1_OP_NAME, 0, "nonce" },
    1199             : /* 7 */ { A1_OP_NAME, 0, "dhKeyExpiration" },
    1200             : /* 8 */ { A1_OP_NAME, 0, "..." }
    1201             : };
    1202             : /* generate_template_type: KDCDHKeyInfo */
    1203             : const struct asn1_template asn1_KDCDHKeyInfo[] = {
    1204             : /* 0 */ { 0, sizeof(KDCDHKeyInfo), ((void *)(uintptr_t)1) },
    1205             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_KDCDHKeyInfo_tag__53 }
    1206             : };
    1207             : 
    1208             : int ASN1CALL
    1209          13 : decode_KDCDHKeyInfo(const unsigned char *p, size_t len, KDCDHKeyInfo *data, size_t *size)
    1210             : {
    1211          13 :     memset(data, 0, sizeof(*data));
    1212          13 :     return _asn1_decode_top(asn1_KDCDHKeyInfo, 0|0, p, len, data, size);
    1213             : }
    1214             : 
    1215             : 
    1216             : int ASN1CALL
    1217          24 : encode_KDCDHKeyInfo(unsigned char *p, size_t len, const KDCDHKeyInfo *data, size_t *size)
    1218             : {
    1219          24 :     return _asn1_encode(asn1_KDCDHKeyInfo, p, len, data, size);
    1220             : }
    1221             : 
    1222             : 
    1223             : size_t ASN1CALL
    1224          24 : length_KDCDHKeyInfo(const KDCDHKeyInfo *data)
    1225             : {
    1226          24 :     return _asn1_length(asn1_KDCDHKeyInfo, data);
    1227             : }
    1228             : 
    1229             : 
    1230             : void ASN1CALL
    1231          37 : free_KDCDHKeyInfo(KDCDHKeyInfo *data)
    1232             : {
    1233          37 :     _asn1_free_top(asn1_KDCDHKeyInfo, data);
    1234          37 : }
    1235             : 
    1236             : 
    1237             : int ASN1CALL
    1238           0 : copy_KDCDHKeyInfo(const KDCDHKeyInfo *from, KDCDHKeyInfo *to)
    1239             : {
    1240           0 :     return _asn1_copy_top(asn1_KDCDHKeyInfo, from, to);
    1241             : }
    1242             : 
    1243             : 
    1244             : char * ASN1CALL
    1245           0 : print_KDCDHKeyInfo(const KDCDHKeyInfo *data, int flags)
    1246             : {
    1247           0 :     return _asn1_print_top(asn1_KDCDHKeyInfo, flags, data);
    1248             : }
    1249             : 
    1250             : /* template_members: ReplyKeyPack exp exp */
    1251             : /* tsequence: members isstruct: 1 */
    1252             : /* template_members: ReplyKeyPack exp exp */
    1253             : /* generate_template_type: ReplyKeyPack_tag_replyKey_60 */
    1254             : const struct asn1_template asn1_ReplyKeyPack_tag_replyKey_60[] = {
    1255             : /* 0 */ { 0, sizeof(EncryptionKey), ((void *)(uintptr_t)1) },
    1256             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_EncryptionKey}
    1257             : };
    1258             : /* template_members: ReplyKeyPack exp exp */
    1259             : /* generate_template_type: ReplyKeyPack_tag_asChecksum_61 */
    1260             : const struct asn1_template asn1_ReplyKeyPack_tag_asChecksum_61[] = {
    1261             : /* 0 */ { 0, sizeof(Checksum), ((void *)(uintptr_t)1) },
    1262             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Checksum}
    1263             : };
    1264             : /* generate_template_type: ReplyKeyPack_tag__59 */
    1265             : const struct asn1_template asn1_ReplyKeyPack_tag__59[] = {
    1266             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct ReplyKeyPack), ((void *)(uintptr_t)6) },
    1267             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct ReplyKeyPack, replyKey), asn1_ReplyKeyPack_tag_replyKey_60 },
    1268             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct ReplyKeyPack, asChecksum), asn1_ReplyKeyPack_tag_asChecksum_61 },
    1269             : /* 3 */ { A1_OP_NAME, 0, "ReplyKeyPack" },
    1270             : /* 4 */ { A1_OP_NAME, 0, "replyKey" },
    1271             : /* 5 */ { A1_OP_NAME, 0, "asChecksum" },
    1272             : /* 6 */ { A1_OP_NAME, 0, "..." }
    1273             : };
    1274             : /* generate_template_type: ReplyKeyPack */
    1275             : const struct asn1_template asn1_ReplyKeyPack[] = {
    1276             : /* 0 */ { 0, sizeof(ReplyKeyPack), ((void *)(uintptr_t)1) },
    1277             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ReplyKeyPack_tag__59 }
    1278             : };
    1279             : 
    1280             : int ASN1CALL
    1281           0 : decode_ReplyKeyPack(const unsigned char *p, size_t len, ReplyKeyPack *data, size_t *size)
    1282             : {
    1283           0 :     memset(data, 0, sizeof(*data));
    1284           0 :     return _asn1_decode_top(asn1_ReplyKeyPack, 0|0, p, len, data, size);
    1285             : }
    1286             : 
    1287             : 
    1288             : int ASN1CALL
    1289          21 : encode_ReplyKeyPack(unsigned char *p, size_t len, const ReplyKeyPack *data, size_t *size)
    1290             : {
    1291          21 :     return _asn1_encode(asn1_ReplyKeyPack, p, len, data, size);
    1292             : }
    1293             : 
    1294             : 
    1295             : size_t ASN1CALL
    1296          21 : length_ReplyKeyPack(const ReplyKeyPack *data)
    1297             : {
    1298          21 :     return _asn1_length(asn1_ReplyKeyPack, data);
    1299             : }
    1300             : 
    1301             : 
    1302             : void ASN1CALL
    1303          21 : free_ReplyKeyPack(ReplyKeyPack *data)
    1304             : {
    1305          21 :     _asn1_free_top(asn1_ReplyKeyPack, data);
    1306          21 : }
    1307             : 
    1308             : 
    1309             : int ASN1CALL
    1310           0 : copy_ReplyKeyPack(const ReplyKeyPack *from, ReplyKeyPack *to)
    1311             : {
    1312           0 :     return _asn1_copy_top(asn1_ReplyKeyPack, from, to);
    1313             : }
    1314             : 
    1315             : 
    1316             : char * ASN1CALL
    1317           0 : print_ReplyKeyPack(const ReplyKeyPack *data, int flags)
    1318             : {
    1319           0 :     return _asn1_print_top(asn1_ReplyKeyPack, flags, data);
    1320             : }
    1321             : 
    1322             : /* template_members: TD_DH_PARAMETERS exp exp */
    1323             : /* generate_template_type: AlgorithmIdentifier_seofTstruct_4 */
    1324             : /* generate_template_type: TD_DH_PARAMETERS_tag__62 */
    1325             : const struct asn1_template asn1_TD_DH_PARAMETERS_tag__62[] = {
    1326             : /* 0 */ { 0, sizeof(AlgorithmIdentifier), ((void *)(uintptr_t)1) },
    1327             : /* 1 */ { A1_OP_SEQOF, 0, asn1_AuthPack_supportedCMSTypes_1 }
    1328             : };
    1329             : /* generate_template_type: TD_DH_PARAMETERS */
    1330             : const struct asn1_template asn1_TD_DH_PARAMETERS[] = {
    1331             : /* 0 */ { 0, sizeof(TD_DH_PARAMETERS), ((void *)(uintptr_t)1) },
    1332             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_TD_DH_PARAMETERS_tag__62 }
    1333             : };
    1334             : 
    1335             : int ASN1CALL
    1336           0 : decode_TD_DH_PARAMETERS(const unsigned char *p, size_t len, TD_DH_PARAMETERS *data, size_t *size)
    1337             : {
    1338           0 :     memset(data, 0, sizeof(*data));
    1339           0 :     return _asn1_decode_top(asn1_TD_DH_PARAMETERS, 0|0, p, len, data, size);
    1340             : }
    1341             : 
    1342             : 
    1343             : int ASN1CALL
    1344           0 : encode_TD_DH_PARAMETERS(unsigned char *p, size_t len, const TD_DH_PARAMETERS *data, size_t *size)
    1345             : {
    1346           0 :     return _asn1_encode(asn1_TD_DH_PARAMETERS, p, len, data, size);
    1347             : }
    1348             : 
    1349             : 
    1350             : size_t ASN1CALL
    1351           0 : length_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *data)
    1352             : {
    1353           0 :     return _asn1_length(asn1_TD_DH_PARAMETERS, data);
    1354             : }
    1355             : 
    1356             : 
    1357             : void ASN1CALL
    1358           0 : free_TD_DH_PARAMETERS(TD_DH_PARAMETERS *data)
    1359             : {
    1360           0 :     _asn1_free_top(asn1_TD_DH_PARAMETERS, data);
    1361           0 : }
    1362             : 
    1363             : 
    1364             : int ASN1CALL
    1365           0 : copy_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *from, TD_DH_PARAMETERS *to)
    1366             : {
    1367           0 :     return _asn1_copy_top(asn1_TD_DH_PARAMETERS, from, to);
    1368             : }
    1369             : 
    1370             : 
    1371             : char * ASN1CALL
    1372           0 : print_TD_DH_PARAMETERS(const TD_DH_PARAMETERS *data, int flags)
    1373             : {
    1374           0 :     return _asn1_print_top(asn1_TD_DH_PARAMETERS, flags, data);
    1375             : }
    1376             : 
    1377             : /* template_members: PKAuthenticator_Win2k exp exp */
    1378             : /* tsequence: members isstruct: 1 */
    1379             : /* template_members: PKAuthenticator_Win2k exp exp */
    1380             : /* generate_template_type: PKAuthenticator_Win2k_tag_kdcName_64 */
    1381             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_kdcName_64[] = {
    1382             : /* 0 */ { 0, sizeof(PrincipalName), ((void *)(uintptr_t)1) },
    1383             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_PrincipalName}
    1384             : };
    1385             : /* template_members: PKAuthenticator_Win2k exp exp */
    1386             : /* generate_template_type: PKAuthenticator_Win2k_tag_kdcRealm_65 */
    1387             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_kdcRealm_65[] = {
    1388             : /* 0 */ { 0, sizeof(Realm), ((void *)(uintptr_t)1) },
    1389             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Realm}
    1390             : };
    1391             : /* template_members: PKAuthenticator_Win2k exp exp */
    1392             : /* template_members: unsigned exp exp */
    1393             : /* generate_template_type: unsigned_tag_cusec_67 */
    1394             : /* generate_template_type: PKAuthenticator_Win2k_tag_cusec_66 */
    1395             : /* template_members: PKAuthenticator_Win2k exp exp */
    1396             : /* generate_template_type: PKAuthenticator_Win2k_tag_ctime_68 */
    1397             : /* template_members: PKAuthenticator_Win2k exp exp */
    1398             : /* template_members: int exp exp */
    1399             : /* generate_template_type: int_tag_nonce_70 */
    1400             : const struct asn1_template asn1_int_tag_nonce_70[] = {
    1401             : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
    1402             : /* 1 */ { A1_PARSE_T(A1T_INTEGER), 0, NULL }
    1403             : };
    1404             : /* generate_template_type: PKAuthenticator_Win2k_tag_nonce_69 */
    1405             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag_nonce_69[] = {
    1406             : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
    1407             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), 0, asn1_int_tag_nonce_70 }
    1408             : };
    1409             : /* generate_template_type: PKAuthenticator_Win2k_tag__63 */
    1410             : const struct asn1_template asn1_PKAuthenticator_Win2k_tag__63[] = {
    1411             : /* 0 */ { 0, sizeof(struct PKAuthenticator_Win2k), ((void *)(uintptr_t)11) },
    1412             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PKAuthenticator_Win2k, kdcName), asn1_PKAuthenticator_Win2k_tag_kdcName_64 },
    1413             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PKAuthenticator_Win2k, kdcRealm), asn1_PKAuthenticator_Win2k_tag_kdcRealm_65 },
    1414             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PKAuthenticator_Win2k, cusec), asn1_PKAuthenticator_tag_nonce_30 },
    1415             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3), offsetof(struct PKAuthenticator_Win2k, ctime), asn1_PKAuthenticator_tag_ctime_29 },
    1416             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,4), offsetof(struct PKAuthenticator_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_69 },
    1417             : /* 6 */ { A1_OP_NAME, 0, "PKAuthenticator_Win2k" },
    1418             : /* 7 */ { A1_OP_NAME, 0, "kdcName" },
    1419             : /* 8 */ { A1_OP_NAME, 0, "kdcRealm" },
    1420             : /* 9 */ { A1_OP_NAME, 0, "cusec" },
    1421             : /* 10 */ { A1_OP_NAME, 0, "ctime" },
    1422             : /* 11 */ { A1_OP_NAME, 0, "nonce" }
    1423             : };
    1424             : /* generate_template_type: PKAuthenticator_Win2k */
    1425             : const struct asn1_template asn1_PKAuthenticator_Win2k[] = {
    1426             : /* 0 */ { 0, sizeof(PKAuthenticator_Win2k), ((void *)(uintptr_t)1) },
    1427             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PKAuthenticator_Win2k_tag__63 }
    1428             : };
    1429             : 
    1430             : int ASN1CALL
    1431           0 : decode_PKAuthenticator_Win2k(const unsigned char *p, size_t len, PKAuthenticator_Win2k *data, size_t *size)
    1432             : {
    1433           0 :     memset(data, 0, sizeof(*data));
    1434           0 :     return _asn1_decode_top(asn1_PKAuthenticator_Win2k, 0|0, p, len, data, size);
    1435             : }
    1436             : 
    1437             : 
    1438             : int ASN1CALL
    1439           0 : encode_PKAuthenticator_Win2k(unsigned char *p, size_t len, const PKAuthenticator_Win2k *data, size_t *size)
    1440             : {
    1441           0 :     return _asn1_encode(asn1_PKAuthenticator_Win2k, p, len, data, size);
    1442             : }
    1443             : 
    1444             : 
    1445             : size_t ASN1CALL
    1446           0 : length_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *data)
    1447             : {
    1448           0 :     return _asn1_length(asn1_PKAuthenticator_Win2k, data);
    1449             : }
    1450             : 
    1451             : 
    1452             : void ASN1CALL
    1453           0 : free_PKAuthenticator_Win2k(PKAuthenticator_Win2k *data)
    1454             : {
    1455           0 :     _asn1_free_top(asn1_PKAuthenticator_Win2k, data);
    1456           0 : }
    1457             : 
    1458             : 
    1459             : int ASN1CALL
    1460           0 : copy_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *from, PKAuthenticator_Win2k *to)
    1461             : {
    1462           0 :     return _asn1_copy_top(asn1_PKAuthenticator_Win2k, from, to);
    1463             : }
    1464             : 
    1465             : 
    1466             : char * ASN1CALL
    1467           0 : print_PKAuthenticator_Win2k(const PKAuthenticator_Win2k *data, int flags)
    1468             : {
    1469           0 :     return _asn1_print_top(asn1_PKAuthenticator_Win2k, flags, data);
    1470             : }
    1471             : 
    1472             : /* template_members: AuthPack_Win2k exp exp */
    1473             : /* tsequence: members isstruct: 1 */
    1474             : /* template_members: AuthPack_Win2k exp exp */
    1475             : /* generate_template_type: AuthPack_Win2k_tag_pkAuthenticator_72 */
    1476             : const struct asn1_template asn1_AuthPack_Win2k_tag_pkAuthenticator_72[] = {
    1477             : /* 0 */ { 0, sizeof(PKAuthenticator_Win2k), ((void *)(uintptr_t)1) },
    1478             : /* 1 */ { A1_OP_TYPE , 0, asn1_PKAuthenticator_Win2k }
    1479             : };
    1480             : /* template_members: AuthPack_Win2k exp exp */
    1481             : /* generate_template_type: AuthPack_Win2k_tag_clientPublicValue_73 */
    1482             : /* generate_template_type: AuthPack_Win2k_tag__71 */
    1483             : const struct asn1_template asn1_AuthPack_Win2k_tag__71[] = {
    1484             : /* 0 */ { 0, sizeof(struct AuthPack_Win2k), ((void *)(uintptr_t)5) },
    1485             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct AuthPack_Win2k, pkAuthenticator), asn1_AuthPack_Win2k_tag_pkAuthenticator_72 },
    1486             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct AuthPack_Win2k, clientPublicValue), asn1_AuthPack_tag_clientPublicValue_38 },
    1487             : /* 3 */ { A1_OP_NAME, 0, "AuthPack_Win2k" },
    1488             : /* 4 */ { A1_OP_NAME, 0, "pkAuthenticator" },
    1489             : /* 5 */ { A1_OP_NAME, 0, "clientPublicValue" }
    1490             : };
    1491             : /* generate_template_type: AuthPack_Win2k */
    1492             : const struct asn1_template asn1_AuthPack_Win2k[] = {
    1493             : /* 0 */ { 0, sizeof(AuthPack_Win2k), ((void *)(uintptr_t)1) },
    1494             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_AuthPack_Win2k_tag__71 }
    1495             : };
    1496             : 
    1497             : int ASN1CALL
    1498           4 : decode_AuthPack_Win2k(const unsigned char *p, size_t len, AuthPack_Win2k *data, size_t *size)
    1499             : {
    1500           4 :     memset(data, 0, sizeof(*data));
    1501           4 :     return _asn1_decode_top(asn1_AuthPack_Win2k, 0|0, p, len, data, size);
    1502             : }
    1503             : 
    1504             : 
    1505             : int ASN1CALL
    1506           0 : encode_AuthPack_Win2k(unsigned char *p, size_t len, const AuthPack_Win2k *data, size_t *size)
    1507             : {
    1508           0 :     return _asn1_encode(asn1_AuthPack_Win2k, p, len, data, size);
    1509             : }
    1510             : 
    1511             : 
    1512             : size_t ASN1CALL
    1513           0 : length_AuthPack_Win2k(const AuthPack_Win2k *data)
    1514             : {
    1515           0 :     return _asn1_length(asn1_AuthPack_Win2k, data);
    1516             : }
    1517             : 
    1518             : 
    1519             : void ASN1CALL
    1520           4 : free_AuthPack_Win2k(AuthPack_Win2k *data)
    1521             : {
    1522           4 :     _asn1_free_top(asn1_AuthPack_Win2k, data);
    1523           4 : }
    1524             : 
    1525             : 
    1526             : int ASN1CALL
    1527           0 : copy_AuthPack_Win2k(const AuthPack_Win2k *from, AuthPack_Win2k *to)
    1528             : {
    1529           0 :     return _asn1_copy_top(asn1_AuthPack_Win2k, from, to);
    1530             : }
    1531             : 
    1532             : 
    1533             : char * ASN1CALL
    1534           0 : print_AuthPack_Win2k(const AuthPack_Win2k *data, int flags)
    1535             : {
    1536           0 :     return _asn1_print_top(asn1_AuthPack_Win2k, flags, data);
    1537             : }
    1538             : 
    1539             : /* template_members: HEIM_ANY exp exp */
    1540             : /* generate_template_type: HEIM_ANY_tag__74 */
    1541             : const struct asn1_template asn1_HEIM_ANY_tag__74[] = {
    1542             : /* 0 */ { 0, sizeof(HEIM_ANY), ((void *)(uintptr_t)1) },
    1543             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_HEIM_ANY}
    1544             : };
    1545             : /* generate_template_type: TrustedCA_Win2k_choice_caName */
    1546             : const struct asn1_template asn1_TrustedCA_Win2k_choice_caName[] = {
    1547             : /* 0 */ { 0, sizeof(HEIM_ANY), ((void *)(uintptr_t)1) },
    1548             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), 0, asn1_HEIM_ANY_tag__74 }
    1549             : };
    1550             : /* template_members: IssuerAndSerialNumber exp exp */
    1551             : /* generate_template_type: IssuerAndSerialNumber_tag__75 */
    1552             : const struct asn1_template asn1_IssuerAndSerialNumber_tag__75[] = {
    1553             : /* 0 */ { 0, sizeof(IssuerAndSerialNumber), ((void *)(uintptr_t)1) },
    1554             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_IssuerAndSerialNumber}
    1555             : };
    1556             : /* generate_template_type: TrustedCA_Win2k_choice_issuerAndSerial */
    1557             : const struct asn1_template asn1_TrustedCA_Win2k_choice_issuerAndSerial[] = {
    1558             : /* 0 */ { 0, sizeof(IssuerAndSerialNumber), ((void *)(uintptr_t)1) },
    1559             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), 0, asn1_IssuerAndSerialNumber_tag__75 }
    1560             : };
    1561             : static const struct asn1_template asn1_choice_TrustedCA_Win2k_1[] = {
    1562             : /* 0 */ { 0, offsetof(TrustedCA_Win2k, element), ((void *)(uintptr_t)4) },
    1563             : /* 1 */ { choice_TrustedCA_Win2k_caName, offsetof(TrustedCA_Win2k, u.caName), asn1_TrustedCA_Win2k_choice_caName },
    1564             : /* 2 */ { choice_TrustedCA_Win2k_issuerAndSerial, offsetof(TrustedCA_Win2k, u.issuerAndSerial), asn1_TrustedCA_Win2k_choice_issuerAndSerial },
    1565             : /* 3 */ { 0, 0, "caName" },
    1566             : /* 4 */ { 0, 0, "issuerAndSerial" }
    1567             : };
    1568             : /* generate_template_type: TrustedCA_Win2k */
    1569             : const struct asn1_template asn1_TrustedCA_Win2k[] = {
    1570             : /* 0 */ { 0, sizeof(TrustedCA_Win2k), ((void *)(uintptr_t)1) },
    1571             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_TrustedCA_Win2k_1 }
    1572             : };
    1573             : 
    1574             : int ASN1CALL
    1575           0 : decode_TrustedCA_Win2k(const unsigned char *p, size_t len, TrustedCA_Win2k *data, size_t *size)
    1576             : {
    1577           0 :     memset(data, 0, sizeof(*data));
    1578           0 :     return _asn1_decode_top(asn1_TrustedCA_Win2k, 0|0, p, len, data, size);
    1579             : }
    1580             : 
    1581             : 
    1582             : int ASN1CALL
    1583           0 : encode_TrustedCA_Win2k(unsigned char *p, size_t len, const TrustedCA_Win2k *data, size_t *size)
    1584             : {
    1585           0 :     return _asn1_encode(asn1_TrustedCA_Win2k, p, len, data, size);
    1586             : }
    1587             : 
    1588             : 
    1589             : size_t ASN1CALL
    1590           0 : length_TrustedCA_Win2k(const TrustedCA_Win2k *data)
    1591             : {
    1592           0 :     return _asn1_length(asn1_TrustedCA_Win2k, data);
    1593             : }
    1594             : 
    1595             : 
    1596             : void ASN1CALL
    1597           0 : free_TrustedCA_Win2k(TrustedCA_Win2k *data)
    1598             : {
    1599           0 :     _asn1_free_top(asn1_TrustedCA_Win2k, data);
    1600           0 : }
    1601             : 
    1602             : 
    1603             : int ASN1CALL
    1604           0 : copy_TrustedCA_Win2k(const TrustedCA_Win2k *from, TrustedCA_Win2k *to)
    1605             : {
    1606           0 :     return _asn1_copy_top(asn1_TrustedCA_Win2k, from, to);
    1607             : }
    1608             : 
    1609             : 
    1610             : char * ASN1CALL
    1611           0 : print_TrustedCA_Win2k(const TrustedCA_Win2k *data, int flags)
    1612             : {
    1613           0 :     return _asn1_print_top(asn1_TrustedCA_Win2k, flags, data);
    1614             : }
    1615             : 
    1616             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1617             : /* tsequence: members isstruct: 1 */
    1618             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1619             : /* template_members: heim_octet_string exp exp */
    1620             : /* generate_template_type: heim_octet_string_tag_signed_auth_pack_78 */
    1621             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_signed_auth_pack_77 */
    1622             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1623             : /* template_members: PA_PK_AS_REQ_Win2k exp exp */
    1624             : /* generate_template_type: PA_PK_AS_REQ_Win2k_trusted_certifiers_5 */
    1625             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_trusted_certifiers_5[] = {
    1626             : /* 0 */ { 0, sizeof(TrustedCA_Win2k), ((void *)(uintptr_t)1) },
    1627             : /* 1 */ { A1_OP_TYPE , 0, asn1_TrustedCA_Win2k }
    1628             : };
    1629             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_80 */
    1630             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_80[] = {
    1631             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k_trusted_certifiers), ((void *)(uintptr_t)1) },
    1632             : /* 1 */ { A1_OP_SEQOF, 0, asn1_PA_PK_AS_REQ_Win2k_trusted_certifiers_5 }
    1633             : };
    1634             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_79 */
    1635             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_79[] = {
    1636             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k_trusted_certifiers), ((void *)(uintptr_t)1) },
    1637             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REQ_Win2k_tag_trusted_certifiers_80 }
    1638             : };
    1639             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1640             : /* template_members: heim_octet_string exp exp */
    1641             : /* generate_template_type: heim_octet_string_tag_kdc_cert_82 */
    1642             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_kdc_cert_81 */
    1643             : /* template_members: PA_PK_AS_REQ_Win2k exp imp */
    1644             : /* template_members: heim_octet_string exp exp */
    1645             : /* generate_template_type: heim_octet_string_tag_encryption_cert_84 */
    1646             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag_encryption_cert_83 */
    1647             : /* generate_template_type: PA_PK_AS_REQ_Win2k_tag__76 */
    1648             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k_tag__76[] = {
    1649             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REQ_Win2k), ((void *)(uintptr_t)9) },
    1650             : /* 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 },
    1651             : /* 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_79 },
    1652             : /* 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 },
    1653             : /* 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 },
    1654             : /* 5 */ { A1_OP_NAME, 0, "PA_PK_AS_REQ_Win2k" },
    1655             : /* 6 */ { A1_OP_NAME, 0, "signed-auth-pack" },
    1656             : /* 7 */ { A1_OP_NAME, 0, "trusted-certifiers" },
    1657             : /* 8 */ { A1_OP_NAME, 0, "kdc-cert" },
    1658             : /* 9 */ { A1_OP_NAME, 0, "encryption-cert" }
    1659             : };
    1660             : /* generate_template_type: PA_PK_AS_REQ_Win2k */
    1661             : const struct asn1_template asn1_PA_PK_AS_REQ_Win2k[] = {
    1662             : /* 0 */ { 0, sizeof(PA_PK_AS_REQ_Win2k), ((void *)(uintptr_t)1) },
    1663             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REQ_Win2k_tag__76 }
    1664             : };
    1665             : 
    1666             : int ASN1CALL
    1667           4 : decode_PA_PK_AS_REQ_Win2k(const unsigned char *p, size_t len, PA_PK_AS_REQ_Win2k *data, size_t *size)
    1668             : {
    1669           4 :     memset(data, 0, sizeof(*data));
    1670           4 :     return _asn1_decode_top(asn1_PA_PK_AS_REQ_Win2k, 0|0, p, len, data, size);
    1671             : }
    1672             : 
    1673             : 
    1674             : int ASN1CALL
    1675           0 : encode_PA_PK_AS_REQ_Win2k(unsigned char *p, size_t len, const PA_PK_AS_REQ_Win2k *data, size_t *size)
    1676             : {
    1677           0 :     return _asn1_encode(asn1_PA_PK_AS_REQ_Win2k, p, len, data, size);
    1678             : }
    1679             : 
    1680             : 
    1681             : size_t ASN1CALL
    1682           0 : length_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *data)
    1683             : {
    1684           0 :     return _asn1_length(asn1_PA_PK_AS_REQ_Win2k, data);
    1685             : }
    1686             : 
    1687             : 
    1688             : void ASN1CALL
    1689           4 : free_PA_PK_AS_REQ_Win2k(PA_PK_AS_REQ_Win2k *data)
    1690             : {
    1691           4 :     _asn1_free_top(asn1_PA_PK_AS_REQ_Win2k, data);
    1692           4 : }
    1693             : 
    1694             : 
    1695             : int ASN1CALL
    1696           0 : copy_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *from, PA_PK_AS_REQ_Win2k *to)
    1697             : {
    1698           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REQ_Win2k, from, to);
    1699             : }
    1700             : 
    1701             : 
    1702             : char * ASN1CALL
    1703           0 : print_PA_PK_AS_REQ_Win2k(const PA_PK_AS_REQ_Win2k *data, int flags)
    1704             : {
    1705           0 :     return _asn1_print_top(asn1_PA_PK_AS_REQ_Win2k, flags, data);
    1706             : }
    1707             : 
    1708             : /* template_members: heim_octet_string imp imp */
    1709             : /* template_members: heim_octet_string exp exp */
    1710             : /* generate_template_type: heim_octet_string_tag__86 */
    1711             : /* generate_template_type: heim_octet_string_tag__85 */
    1712             : /* generate_template_type: PA_PK_AS_REP_Win2k_choice_dhSignedData */
    1713             : const struct asn1_template asn1_PA_PK_AS_REP_Win2k_choice_dhSignedData[] = {
    1714             : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
    1715             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, 0, asn1_TrustedCA_tag_caName_6 }
    1716             : };
    1717             : /* template_members: heim_octet_string imp imp */
    1718             : /* template_members: heim_octet_string exp exp */
    1719             : /* generate_template_type: heim_octet_string_tag__88 */
    1720             : /* generate_template_type: heim_octet_string_tag__87 */
    1721             : /* generate_template_type: PA_PK_AS_REP_Win2k_choice_encKeyPack */
    1722             : static const struct asn1_template asn1_choice_PA_PK_AS_REP_Win2k_2[] = {
    1723             : /* 0 */ { 0, offsetof(PA_PK_AS_REP_Win2k, element), ((void *)(uintptr_t)4) },
    1724             : /* 1 */ { choice_PA_PK_AS_REP_Win2k_dhSignedData, offsetof(PA_PK_AS_REP_Win2k, u.dhSignedData), asn1_PA_PK_AS_REP_Win2k_choice_dhSignedData },
    1725             : /* 2 */ { choice_PA_PK_AS_REP_Win2k_encKeyPack, offsetof(PA_PK_AS_REP_Win2k, u.encKeyPack), asn1_PA_PK_AS_REP_choice_encKeyPack },
    1726             : /* 3 */ { 0, 0, "dhSignedData" },
    1727             : /* 4 */ { 0, 0, "encKeyPack" }
    1728             : };
    1729             : /* generate_template_type: PA_PK_AS_REP_Win2k */
    1730             : const struct asn1_template asn1_PA_PK_AS_REP_Win2k[] = {
    1731             : /* 0 */ { 0, sizeof(PA_PK_AS_REP_Win2k), ((void *)(uintptr_t)1) },
    1732             : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_PA_PK_AS_REP_Win2k_2 }
    1733             : };
    1734             : 
    1735             : int ASN1CALL
    1736           0 : decode_PA_PK_AS_REP_Win2k(const unsigned char *p, size_t len, PA_PK_AS_REP_Win2k *data, size_t *size)
    1737             : {
    1738           0 :     memset(data, 0, sizeof(*data));
    1739           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REP_Win2k, 0|0, p, len, data, size);
    1740             : }
    1741             : 
    1742             : 
    1743             : int ASN1CALL
    1744           4 : encode_PA_PK_AS_REP_Win2k(unsigned char *p, size_t len, const PA_PK_AS_REP_Win2k *data, size_t *size)
    1745             : {
    1746           4 :     return _asn1_encode(asn1_PA_PK_AS_REP_Win2k, p, len, data, size);
    1747             : }
    1748             : 
    1749             : 
    1750             : size_t ASN1CALL
    1751           4 : length_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *data)
    1752             : {
    1753           4 :     return _asn1_length(asn1_PA_PK_AS_REP_Win2k, data);
    1754             : }
    1755             : 
    1756             : 
    1757             : void ASN1CALL
    1758           4 : free_PA_PK_AS_REP_Win2k(PA_PK_AS_REP_Win2k *data)
    1759             : {
    1760           4 :     _asn1_free_top(asn1_PA_PK_AS_REP_Win2k, data);
    1761           4 : }
    1762             : 
    1763             : 
    1764             : int ASN1CALL
    1765           0 : copy_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *from, PA_PK_AS_REP_Win2k *to)
    1766             : {
    1767           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP_Win2k, from, to);
    1768             : }
    1769             : 
    1770             : 
    1771             : char * ASN1CALL
    1772           0 : print_PA_PK_AS_REP_Win2k(const PA_PK_AS_REP_Win2k *data, int flags)
    1773             : {
    1774           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP_Win2k, flags, data);
    1775             : }
    1776             : 
    1777             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1778             : /* tsequence: members isstruct: 1 */
    1779             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1780             : /* template_members: int exp exp */
    1781             : /* generate_template_type: int_tag_nonce_91 */
    1782             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_nonce_90 */
    1783             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1784             : /* template_members: KDCDHKeyInfo_Win2k exp exp */
    1785             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_subjectPublicKey_93 */
    1786             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_93[] = {
    1787             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1788             : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
    1789             : };
    1790             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag_subjectPublicKey_92 */
    1791             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_92[] = {
    1792             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1793             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), 0, asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_93 }
    1794             : };
    1795             : /* generate_template_type: KDCDHKeyInfo_Win2k_tag__89 */
    1796             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k_tag__89[] = {
    1797             : /* 0 */ { 0, sizeof(struct KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)5) },
    1798             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct KDCDHKeyInfo_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_69 },
    1799             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct KDCDHKeyInfo_Win2k, subjectPublicKey), asn1_KDCDHKeyInfo_Win2k_tag_subjectPublicKey_92 },
    1800             : /* 3 */ { A1_OP_NAME, 0, "KDCDHKeyInfo_Win2k" },
    1801             : /* 4 */ { A1_OP_NAME, 0, "nonce" },
    1802             : /* 5 */ { A1_OP_NAME, 0, "subjectPublicKey" }
    1803             : };
    1804             : /* generate_template_type: KDCDHKeyInfo_Win2k */
    1805             : const struct asn1_template asn1_KDCDHKeyInfo_Win2k[] = {
    1806             : /* 0 */ { 0, sizeof(KDCDHKeyInfo_Win2k), ((void *)(uintptr_t)1) },
    1807             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_KDCDHKeyInfo_Win2k_tag__89 }
    1808             : };
    1809             : 
    1810             : int ASN1CALL
    1811           0 : decode_KDCDHKeyInfo_Win2k(const unsigned char *p, size_t len, KDCDHKeyInfo_Win2k *data, size_t *size)
    1812             : {
    1813           0 :     memset(data, 0, sizeof(*data));
    1814           0 :     return _asn1_decode_top(asn1_KDCDHKeyInfo_Win2k, 0|0, p, len, data, size);
    1815             : }
    1816             : 
    1817             : 
    1818             : int ASN1CALL
    1819           0 : encode_KDCDHKeyInfo_Win2k(unsigned char *p, size_t len, const KDCDHKeyInfo_Win2k *data, size_t *size)
    1820             : {
    1821           0 :     return _asn1_encode(asn1_KDCDHKeyInfo_Win2k, p, len, data, size);
    1822             : }
    1823             : 
    1824             : 
    1825             : size_t ASN1CALL
    1826           0 : length_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *data)
    1827             : {
    1828           0 :     return _asn1_length(asn1_KDCDHKeyInfo_Win2k, data);
    1829             : }
    1830             : 
    1831             : 
    1832             : void ASN1CALL
    1833           0 : free_KDCDHKeyInfo_Win2k(KDCDHKeyInfo_Win2k *data)
    1834             : {
    1835           0 :     _asn1_free_top(asn1_KDCDHKeyInfo_Win2k, data);
    1836           0 : }
    1837             : 
    1838             : 
    1839             : int ASN1CALL
    1840           0 : copy_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *from, KDCDHKeyInfo_Win2k *to)
    1841             : {
    1842           0 :     return _asn1_copy_top(asn1_KDCDHKeyInfo_Win2k, from, to);
    1843             : }
    1844             : 
    1845             : 
    1846             : char * ASN1CALL
    1847           0 : print_KDCDHKeyInfo_Win2k(const KDCDHKeyInfo_Win2k *data, int flags)
    1848             : {
    1849           0 :     return _asn1_print_top(asn1_KDCDHKeyInfo_Win2k, flags, data);
    1850             : }
    1851             : 
    1852             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1853             : /* tsequence: members isstruct: 1 */
    1854             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1855             : /* generate_template_type: ReplyKeyPack_Win2k_tag_replyKey_95 */
    1856             : /* template_members: ReplyKeyPack_Win2k exp exp */
    1857             : /* template_members: int exp exp */
    1858             : /* generate_template_type: int_tag_nonce_97 */
    1859             : /* generate_template_type: ReplyKeyPack_Win2k_tag_nonce_96 */
    1860             : /* generate_template_type: ReplyKeyPack_Win2k_tag__94 */
    1861             : const struct asn1_template asn1_ReplyKeyPack_Win2k_tag__94[] = {
    1862             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct ReplyKeyPack_Win2k), ((void *)(uintptr_t)6) },
    1863             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct ReplyKeyPack_Win2k, replyKey), asn1_ReplyKeyPack_tag_replyKey_60 },
    1864             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct ReplyKeyPack_Win2k, nonce), asn1_PKAuthenticator_Win2k_tag_nonce_69 },
    1865             : /* 3 */ { A1_OP_NAME, 0, "ReplyKeyPack_Win2k" },
    1866             : /* 4 */ { A1_OP_NAME, 0, "replyKey" },
    1867             : /* 5 */ { A1_OP_NAME, 0, "nonce" },
    1868             : /* 6 */ { A1_OP_NAME, 0, "..." }
    1869             : };
    1870             : /* generate_template_type: ReplyKeyPack_Win2k */
    1871             : const struct asn1_template asn1_ReplyKeyPack_Win2k[] = {
    1872             : /* 0 */ { 0, sizeof(ReplyKeyPack_Win2k), ((void *)(uintptr_t)1) },
    1873             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_ReplyKeyPack_Win2k_tag__94 }
    1874             : };
    1875             : 
    1876             : int ASN1CALL
    1877           0 : decode_ReplyKeyPack_Win2k(const unsigned char *p, size_t len, ReplyKeyPack_Win2k *data, size_t *size)
    1878             : {
    1879           0 :     memset(data, 0, sizeof(*data));
    1880           0 :     return _asn1_decode_top(asn1_ReplyKeyPack_Win2k, 0|0, p, len, data, size);
    1881             : }
    1882             : 
    1883             : 
    1884             : int ASN1CALL
    1885           0 : encode_ReplyKeyPack_Win2k(unsigned char *p, size_t len, const ReplyKeyPack_Win2k *data, size_t *size)
    1886             : {
    1887           0 :     return _asn1_encode(asn1_ReplyKeyPack_Win2k, p, len, data, size);
    1888             : }
    1889             : 
    1890             : 
    1891             : size_t ASN1CALL
    1892           0 : length_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *data)
    1893             : {
    1894           0 :     return _asn1_length(asn1_ReplyKeyPack_Win2k, data);
    1895             : }
    1896             : 
    1897             : 
    1898             : void ASN1CALL
    1899           0 : free_ReplyKeyPack_Win2k(ReplyKeyPack_Win2k *data)
    1900             : {
    1901           0 :     _asn1_free_top(asn1_ReplyKeyPack_Win2k, data);
    1902           0 : }
    1903             : 
    1904             : 
    1905             : int ASN1CALL
    1906           0 : copy_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *from, ReplyKeyPack_Win2k *to)
    1907             : {
    1908           0 :     return _asn1_copy_top(asn1_ReplyKeyPack_Win2k, from, to);
    1909             : }
    1910             : 
    1911             : 
    1912             : char * ASN1CALL
    1913           0 : print_ReplyKeyPack_Win2k(const ReplyKeyPack_Win2k *data, int flags)
    1914             : {
    1915           0 :     return _asn1_print_top(asn1_ReplyKeyPack_Win2k, flags, data);
    1916             : }
    1917             : 
    1918             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1919             : /* tsequence: members isstruct: 1 */
    1920             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1921             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag_dhSignedData_99 */
    1922             : /* template_members: PA_PK_AS_REP_BTMM exp exp */
    1923             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag_encKeyPack_100 */
    1924             : /* generate_template_type: PA_PK_AS_REP_BTMM_tag__98 */
    1925             : const struct asn1_template asn1_PA_PK_AS_REP_BTMM_tag__98[] = {
    1926             : /* 0 */ { 0, sizeof(struct PA_PK_AS_REP_BTMM), ((void *)(uintptr_t)5) },
    1927             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REP_BTMM, dhSignedData), asn1_HEIM_ANY_tag__74 },
    1928             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct PA_PK_AS_REP_BTMM, encKeyPack), asn1_HEIM_ANY_tag__74 },
    1929             : /* 3 */ { A1_OP_NAME, 0, "PA_PK_AS_REP_BTMM" },
    1930             : /* 4 */ { A1_OP_NAME, 0, "dhSignedData" },
    1931             : /* 5 */ { A1_OP_NAME, 0, "encKeyPack" }
    1932             : };
    1933             : /* generate_template_type: PA_PK_AS_REP_BTMM */
    1934             : const struct asn1_template asn1_PA_PK_AS_REP_BTMM[] = {
    1935             : /* 0 */ { 0, sizeof(PA_PK_AS_REP_BTMM), ((void *)(uintptr_t)1) },
    1936             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PA_PK_AS_REP_BTMM_tag__98 }
    1937             : };
    1938             : 
    1939             : int ASN1CALL
    1940           0 : decode_PA_PK_AS_REP_BTMM(const unsigned char *p, size_t len, PA_PK_AS_REP_BTMM *data, size_t *size)
    1941             : {
    1942           0 :     memset(data, 0, sizeof(*data));
    1943           0 :     return _asn1_decode_top(asn1_PA_PK_AS_REP_BTMM, 0|0, p, len, data, size);
    1944             : }
    1945             : 
    1946             : 
    1947             : int ASN1CALL
    1948           0 : encode_PA_PK_AS_REP_BTMM(unsigned char *p, size_t len, const PA_PK_AS_REP_BTMM *data, size_t *size)
    1949             : {
    1950           0 :     return _asn1_encode(asn1_PA_PK_AS_REP_BTMM, p, len, data, size);
    1951             : }
    1952             : 
    1953             : 
    1954             : size_t ASN1CALL
    1955           0 : length_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *data)
    1956             : {
    1957           0 :     return _asn1_length(asn1_PA_PK_AS_REP_BTMM, data);
    1958             : }
    1959             : 
    1960             : 
    1961             : void ASN1CALL
    1962           0 : free_PA_PK_AS_REP_BTMM(PA_PK_AS_REP_BTMM *data)
    1963             : {
    1964           0 :     _asn1_free_top(asn1_PA_PK_AS_REP_BTMM, data);
    1965           0 : }
    1966             : 
    1967             : 
    1968             : int ASN1CALL
    1969           0 : copy_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *from, PA_PK_AS_REP_BTMM *to)
    1970             : {
    1971           0 :     return _asn1_copy_top(asn1_PA_PK_AS_REP_BTMM, from, to);
    1972             : }
    1973             : 
    1974             : 
    1975             : char * ASN1CALL
    1976           0 : print_PA_PK_AS_REP_BTMM(const PA_PK_AS_REP_BTMM *data, int flags)
    1977             : {
    1978           0 :     return _asn1_print_top(asn1_PA_PK_AS_REP_BTMM, flags, data);
    1979             : }
    1980             : 
    1981             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1982             : /* tsequence: members isstruct: 1 */
    1983             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1984             : /* template_members: heim_octet_string exp exp */
    1985             : /* generate_template_type: heim_octet_string_tag_partyUInfo_103 */
    1986             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_partyUInfo_102 */
    1987             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1988             : /* template_members: heim_octet_string exp exp */
    1989             : /* generate_template_type: heim_octet_string_tag_partyVInfo_105 */
    1990             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_partyVInfo_104 */
    1991             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1992             : /* template_members: heim_octet_string exp exp */
    1993             : /* generate_template_type: heim_octet_string_tag_suppPubInfo_107 */
    1994             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_suppPubInfo_106 */
    1995             : /* template_members: PkinitSP80056AOtherInfo exp exp */
    1996             : /* template_members: heim_octet_string exp exp */
    1997             : /* generate_template_type: heim_octet_string_tag_suppPrivInfo_109 */
    1998             : /* generate_template_type: PkinitSP80056AOtherInfo_tag_suppPrivInfo_108 */
    1999             : /* generate_template_type: PkinitSP80056AOtherInfo_tag__101 */
    2000             : const struct asn1_template asn1_PkinitSP80056AOtherInfo_tag__101[] = {
    2001             : /* 0 */ { 0, sizeof(struct PkinitSP80056AOtherInfo), ((void *)(uintptr_t)11) },
    2002             : /* 1 */ { A1_OP_TYPE_EXTERN , offsetof(struct PkinitSP80056AOtherInfo, algorithmID), &asn1_extern_AlgorithmIdentifier},
    2003             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PkinitSP80056AOtherInfo, partyUInfo), asn1_TrustedCA_tag_caName_6 },
    2004             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PkinitSP80056AOtherInfo, partyVInfo), asn1_TrustedCA_tag_caName_6 },
    2005             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct PkinitSP80056AOtherInfo, suppPubInfo), asn1_TrustedCA_tag_caName_6 },
    2006             : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3)|A1_FLAG_OPTIONAL, offsetof(struct PkinitSP80056AOtherInfo, suppPrivInfo), asn1_TrustedCA_tag_caName_6 },
    2007             : /* 6 */ { A1_OP_NAME, 0, "PkinitSP80056AOtherInfo" },
    2008             : /* 7 */ { A1_OP_NAME, 0, "algorithmID" },
    2009             : /* 8 */ { A1_OP_NAME, 0, "partyUInfo" },
    2010             : /* 9 */ { A1_OP_NAME, 0, "partyVInfo" },
    2011             : /* 10 */ { A1_OP_NAME, 0, "suppPubInfo" },
    2012             : /* 11 */ { A1_OP_NAME, 0, "suppPrivInfo" }
    2013             : };
    2014             : /* generate_template_type: PkinitSP80056AOtherInfo */
    2015             : const struct asn1_template asn1_PkinitSP80056AOtherInfo[] = {
    2016             : /* 0 */ { 0, sizeof(PkinitSP80056AOtherInfo), ((void *)(uintptr_t)1) },
    2017             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PkinitSP80056AOtherInfo_tag__101 }
    2018             : };
    2019             : 
    2020             : int ASN1CALL
    2021           0 : decode_PkinitSP80056AOtherInfo(const unsigned char *p, size_t len, PkinitSP80056AOtherInfo *data, size_t *size)
    2022             : {
    2023           0 :     memset(data, 0, sizeof(*data));
    2024           0 :     return _asn1_decode_top(asn1_PkinitSP80056AOtherInfo, 0|0, p, len, data, size);
    2025             : }
    2026             : 
    2027             : 
    2028             : int ASN1CALL
    2029           0 : encode_PkinitSP80056AOtherInfo(unsigned char *p, size_t len, const PkinitSP80056AOtherInfo *data, size_t *size)
    2030             : {
    2031           0 :     return _asn1_encode(asn1_PkinitSP80056AOtherInfo, p, len, data, size);
    2032             : }
    2033             : 
    2034             : 
    2035             : size_t ASN1CALL
    2036           0 : length_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *data)
    2037             : {
    2038           0 :     return _asn1_length(asn1_PkinitSP80056AOtherInfo, data);
    2039             : }
    2040             : 
    2041             : 
    2042             : void ASN1CALL
    2043           0 : free_PkinitSP80056AOtherInfo(PkinitSP80056AOtherInfo *data)
    2044             : {
    2045           0 :     _asn1_free_top(asn1_PkinitSP80056AOtherInfo, data);
    2046           0 : }
    2047             : 
    2048             : 
    2049             : int ASN1CALL
    2050           0 : copy_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *from, PkinitSP80056AOtherInfo *to)
    2051             : {
    2052           0 :     return _asn1_copy_top(asn1_PkinitSP80056AOtherInfo, from, to);
    2053             : }
    2054             : 
    2055             : 
    2056             : char * ASN1CALL
    2057           0 : print_PkinitSP80056AOtherInfo(const PkinitSP80056AOtherInfo *data, int flags)
    2058             : {
    2059           0 :     return _asn1_print_top(asn1_PkinitSP80056AOtherInfo, flags, data);
    2060             : }
    2061             : 
    2062             : /* template_members: PkinitSuppPubInfo exp exp */
    2063             : /* tsequence: members isstruct: 1 */
    2064             : /* template_members: PkinitSuppPubInfo exp exp */
    2065             : /* template_members: int exp exp */
    2066             : /* generate_template_type: int_tag_enctype_112 */
    2067             : /* generate_template_type: PkinitSuppPubInfo_tag_enctype_111 */
    2068             : /* template_members: PkinitSuppPubInfo exp exp */
    2069             : /* template_members: heim_octet_string exp exp */
    2070             : /* generate_template_type: heim_octet_string_tag_as_REQ_114 */
    2071             : /* generate_template_type: PkinitSuppPubInfo_tag_as_REQ_113 */
    2072             : /* template_members: PkinitSuppPubInfo exp exp */
    2073             : /* template_members: heim_octet_string exp exp */
    2074             : /* generate_template_type: heim_octet_string_tag_pk_as_rep_116 */
    2075             : /* generate_template_type: PkinitSuppPubInfo_tag_pk_as_rep_115 */
    2076             : /* template_members: PkinitSuppPubInfo exp exp */
    2077             : /* generate_template_type: PkinitSuppPubInfo_tag_ticket_117 */
    2078             : const struct asn1_template asn1_PkinitSuppPubInfo_tag_ticket_117[] = {
    2079             : /* 0 */ { 0, sizeof(Ticket), ((void *)(uintptr_t)1) },
    2080             : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Ticket}
    2081             : };
    2082             : /* generate_template_type: PkinitSuppPubInfo_tag__110 */
    2083             : const struct asn1_template asn1_PkinitSuppPubInfo_tag__110[] = {
    2084             : /* 0 */ { 0|A1_HF_ELLIPSIS, sizeof(struct PkinitSuppPubInfo), ((void *)(uintptr_t)10) },
    2085             : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0), offsetof(struct PkinitSuppPubInfo, enctype), asn1_PKAuthenticator_Win2k_tag_nonce_69 },
    2086             : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), offsetof(struct PkinitSuppPubInfo, as_REQ), asn1_TrustedCA_tag_caName_6 },
    2087             : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), offsetof(struct PkinitSuppPubInfo, pk_as_rep), asn1_TrustedCA_tag_caName_6 },
    2088             : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,3), offsetof(struct PkinitSuppPubInfo, ticket), asn1_PkinitSuppPubInfo_tag_ticket_117 },
    2089             : /* 5 */ { A1_OP_NAME, 0, "PkinitSuppPubInfo" },
    2090             : /* 6 */ { A1_OP_NAME, 0, "enctype" },
    2091             : /* 7 */ { A1_OP_NAME, 0, "as-REQ" },
    2092             : /* 8 */ { A1_OP_NAME, 0, "pk-as-rep" },
    2093             : /* 9 */ { A1_OP_NAME, 0, "ticket" },
    2094             : /* 10 */ { A1_OP_NAME, 0, "..." }
    2095             : };
    2096             : /* generate_template_type: PkinitSuppPubInfo */
    2097             : const struct asn1_template asn1_PkinitSuppPubInfo[] = {
    2098             : /* 0 */ { 0, sizeof(PkinitSuppPubInfo), ((void *)(uintptr_t)1) },
    2099             : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_PkinitSuppPubInfo_tag__110 }
    2100             : };
    2101             : 
    2102             : int ASN1CALL
    2103           0 : decode_PkinitSuppPubInfo(const unsigned char *p, size_t len, PkinitSuppPubInfo *data, size_t *size)
    2104             : {
    2105           0 :     memset(data, 0, sizeof(*data));
    2106           0 :     return _asn1_decode_top(asn1_PkinitSuppPubInfo, 0|0, p, len, data, size);
    2107             : }
    2108             : 
    2109             : 
    2110             : int ASN1CALL
    2111           0 : encode_PkinitSuppPubInfo(unsigned char *p, size_t len, const PkinitSuppPubInfo *data, size_t *size)
    2112             : {
    2113           0 :     return _asn1_encode(asn1_PkinitSuppPubInfo, p, len, data, size);
    2114             : }
    2115             : 
    2116             : 
    2117             : size_t ASN1CALL
    2118           0 : length_PkinitSuppPubInfo(const PkinitSuppPubInfo *data)
    2119             : {
    2120           0 :     return _asn1_length(asn1_PkinitSuppPubInfo, data);
    2121             : }
    2122             : 
    2123             : 
    2124             : void ASN1CALL
    2125           0 : free_PkinitSuppPubInfo(PkinitSuppPubInfo *data)
    2126             : {
    2127           0 :     _asn1_free_top(asn1_PkinitSuppPubInfo, data);
    2128           0 : }
    2129             : 
    2130             : 
    2131             : int ASN1CALL
    2132           0 : copy_PkinitSuppPubInfo(const PkinitSuppPubInfo *from, PkinitSuppPubInfo *to)
    2133             : {
    2134           0 :     return _asn1_copy_top(asn1_PkinitSuppPubInfo, from, to);
    2135             : }
    2136             : 
    2137             : 
    2138             : char * ASN1CALL
    2139           0 : print_PkinitSuppPubInfo(const PkinitSuppPubInfo *data, int flags)
    2140             : {
    2141           0 :     return _asn1_print_top(asn1_PkinitSuppPubInfo, flags, data);
    2142             : }
    2143             : 

Generated by: LCOV version 1.14