/*******************************************************************
 *
 * This file was generated by TIS/ASN1COMP Ver. 4.2, an ASN.1 compiler.
 * TIS/ASN1COMP is Copyright (c) 1998, TIS Labs at Network Associates, Inc.
 *
 * This file was AUTOMATICALLY GENERATED on Tue May 18 17:09:44 1999
 *
 ******************************************************************/

#ifndef pgpX509Cert_H_
#define pgpX509Cert_H_

#include "pgpX509Cert_util.h"
#include "pgpX509Cert_struct.h"

/*******************************************************************
 *
 * Function declarations for internal functions
 *
 ******************************************************************/

#define pgpasn_SizeofAttributeTypeInternal pgpasn_SizeofOBJECT_IDInternal
#define pgpasn_DropInPlaceAttributeType pgpasn_DropInPlaceOBJECT_ID
#define pgpasn_PackAttributeTypeInternal pgpasn_PackOBJECT_IDInternal
#define pgpasn_UnpkInPlaceAttributeType pgpasn_UnpkInPlaceOBJECT_ID
#define pgpasn_UnpackAttributeTypeInternal pgpasn_UnpackOBJECT_IDInternal

#define pgpasn_SizeofAttributeValueInternal pgpasn_SizeofANYInternal
#define pgpasn_DropInPlaceAttributeValue pgpasn_DropInPlaceANY
#define pgpasn_PackAttributeValueInternal pgpasn_PackANYInternal
#define pgpasn_UnpkInPlaceAttributeValue pgpasn_UnpkInPlaceANY
#define pgpasn_UnpackAttributeValueInternal pgpasn_UnpackANYInternal

#define pgpasn_SizeofBMPStringInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlaceBMPString pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackBMPStringInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlaceBMPString pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackBMPStringInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofCertificateSerialNumberInternal pgpasn_SizeofINTEGERInternal
#define pgpasn_DropInPlaceCertificateSerialNumber pgpasn_DropInPlaceINTEGER
#define pgpasn_PackCertificateSerialNumberInternal pgpasn_PackINTEGERInternal
#define pgpasn_UnpkInPlaceCertificateSerialNumber pgpasn_UnpkInPlaceINTEGER
#define pgpasn_UnpackCertificateSerialNumberInternal pgpasn_UnpackINTEGERInternal

#define pgpasn_SizeofContentTypeInternal pgpasn_SizeofOBJECT_IDInternal
#define pgpasn_DropInPlaceContentType pgpasn_DropInPlaceOBJECT_ID
#define pgpasn_PackContentTypeInternal pgpasn_PackOBJECT_IDInternal
#define pgpasn_UnpkInPlaceContentType pgpasn_UnpkInPlaceOBJECT_ID
#define pgpasn_UnpackContentTypeInternal pgpasn_UnpackOBJECT_IDInternal

#define pgpasn_SizeofDSAPublicKeyInternal pgpasn_SizeofINTEGERInternal
#define pgpasn_DropInPlaceDSAPublicKey pgpasn_DropInPlaceINTEGER
#define pgpasn_PackDSAPublicKeyInternal pgpasn_PackINTEGERInternal
#define pgpasn_UnpkInPlaceDSAPublicKey pgpasn_UnpkInPlaceINTEGER
#define pgpasn_UnpackDSAPublicKeyInternal pgpasn_UnpackINTEGERInternal

#define pgpasn_SizeofDataInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlaceData pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackDataInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlaceData pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackDataInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofELGPublicKeyInternal pgpasn_SizeofINTEGERInternal
#define pgpasn_DropInPlaceELGPublicKey pgpasn_DropInPlaceINTEGER
#define pgpasn_PackELGPublicKeyInternal pgpasn_PackINTEGERInternal
#define pgpasn_UnpkInPlaceELGPublicKey pgpasn_UnpkInPlaceINTEGER
#define pgpasn_UnpackELGPublicKeyInternal pgpasn_UnpackINTEGERInternal

#define pgpasn_SizeofEncryptedDigestInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlaceEncryptedDigest pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackEncryptedDigestInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlaceEncryptedDigest pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackEncryptedDigestInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofKeyUsageInternal pgpasn_SizeofBIT_STRINGInternal
#define pgpasn_DropInPlaceKeyUsage pgpasn_DropInPlaceBIT_STRING
#define pgpasn_PackKeyUsageInternal pgpasn_PackBIT_STRINGInternal
#define pgpasn_UnpkInPlaceKeyUsage pgpasn_UnpkInPlaceBIT_STRING
#define pgpasn_UnpackKeyUsageInternal pgpasn_UnpackBIT_STRINGInternal

#define pgpasn_SizeofPrivateKeyInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlacePrivateKey pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackPrivateKeyInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlacePrivateKey pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackPrivateKeyInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofReasonFlagsInternal pgpasn_SizeofBIT_STRINGInternal
#define pgpasn_DropInPlaceReasonFlags pgpasn_DropInPlaceBIT_STRING
#define pgpasn_PackReasonFlagsInternal pgpasn_PackBIT_STRINGInternal
#define pgpasn_UnpkInPlaceReasonFlags pgpasn_UnpkInPlaceBIT_STRING
#define pgpasn_UnpackReasonFlagsInternal pgpasn_UnpackBIT_STRINGInternal

#define pgpasn_SizeofSignatureInternal pgpasn_SizeofBIT_STRINGInternal
#define pgpasn_DropInPlaceSignature pgpasn_DropInPlaceBIT_STRING
#define pgpasn_PackSignatureInternal pgpasn_PackBIT_STRINGInternal
#define pgpasn_UnpkInPlaceSignature pgpasn_UnpkInPlaceBIT_STRING
#define pgpasn_UnpackSignatureInternal pgpasn_UnpackBIT_STRINGInternal

#define pgpasn_SizeofUTF8StringInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlaceUTF8String pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackUTF8StringInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlaceUTF8String pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackUTF8StringInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofUniqueIdentifierInternal pgpasn_SizeofBIT_STRINGInternal
#define pgpasn_DropInPlaceUniqueIdentifier pgpasn_DropInPlaceBIT_STRING
#define pgpasn_PackUniqueIdentifierInternal pgpasn_PackBIT_STRINGInternal
#define pgpasn_UnpkInPlaceUniqueIdentifier pgpasn_UnpkInPlaceBIT_STRING
#define pgpasn_UnpackUniqueIdentifierInternal pgpasn_UnpackBIT_STRINGInternal

#define pgpasn_SizeofUniversalStringInternal pgpasn_SizeofOCTET_STRINGInternal
#define pgpasn_DropInPlaceUniversalString pgpasn_DropInPlaceOCTET_STRING
#define pgpasn_PackUniversalStringInternal pgpasn_PackOCTET_STRINGInternal
#define pgpasn_UnpkInPlaceUniversalString pgpasn_UnpkInPlaceOCTET_STRING
#define pgpasn_UnpackUniversalStringInternal pgpasn_UnpackOCTET_STRINGInternal

#define pgpasn_SizeofVersionInternal pgpasn_SizeofINTEGERInternal
#define pgpasn_DropInPlaceVersion pgpasn_DropInPlaceINTEGER
#define pgpasn_PackVersionInternal pgpasn_PackINTEGERInternal
#define pgpasn_UnpkInPlaceVersion pgpasn_UnpkInPlaceINTEGER
#define pgpasn_UnpackVersionInternal pgpasn_UnpackINTEGERInternal

size_t pgpasn_SizeofAlgorithmIdentifierInternal(
    PGPASN_AlgorithmIdentifier *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceAlgorithmIdentifier(
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier *f);
size_t pgpasn_PackAlgorithmIdentifierInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AlgorithmIdentifier *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceAlgorithmIdentifier (
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackAlgorithmIdentifierInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofAttributeTypeAndValueInternal(
    PGPASN_AttributeTypeAndValue *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceAttributeTypeAndValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue *f);
size_t pgpasn_PackAttributeTypeAndValueInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AttributeTypeAndValue *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceAttributeTypeAndValue (
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackAttributeTypeAndValueInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofAttributeValuesInternal(
    PGPASN_AttributeValues *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceAttributeValues(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues *f);
size_t pgpasn_PackAttributeValuesInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AttributeValues *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceAttributeValues (
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackAttributeValuesInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofBasicConstraintsInternal(
    PGPASN_BasicConstraints *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceBasicConstraints(
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints *f);
size_t pgpasn_PackBasicConstraintsInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_BasicConstraints *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceBasicConstraints (
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackBasicConstraintsInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificateValidityDateInternal(
    PGPASN_CertificateValidityDate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificateValidityDate(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate *f);
size_t pgpasn_PackCertificateValidityDateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateValidityDate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificateValidityDate (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificateValidityDateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofContentInfoInternal(
    PGPASN_ContentInfo *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceContentInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo *f);
size_t pgpasn_PackContentInfoInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_ContentInfo *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceContentInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackContentInfoInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDirectoryStringInternal(
    PGPASN_DirectoryString *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDirectoryString(
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString *f);
size_t pgpasn_PackDirectoryStringInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DirectoryString *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDirectoryString (
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDirectoryStringInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDssParmsInternal(
    PGPASN_DssParms *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDssParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms *f);
size_t pgpasn_PackDssParmsInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DssParms *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDssParms (
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDssParmsInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDssSigValueInternal(
    PGPASN_DssSigValue *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDssSigValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue *f);
size_t pgpasn_PackDssSigValueInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DssSigValue *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDssSigValue (
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDssSigValueInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofELGParmsInternal(
    PGPASN_ELGParms *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceELGParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms *f);
size_t pgpasn_PackELGParmsInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_ELGParms *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceELGParms (
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackELGParmsInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofExtensionInternal(
    PGPASN_Extension *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension *f);
size_t pgpasn_PackExtensionInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Extension *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceExtension (
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackExtensionInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofOtherNameInternal(
    PGPASN_OtherName *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceOtherName(
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName *f);
size_t pgpasn_PackOtherNameInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_OtherName *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceOtherName (
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackOtherNameInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofRSAKeyInternal(
    PGPASN_RSAKey *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceRSAKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey *f);
size_t pgpasn_PackRSAKeyInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RSAKey *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceRSAKey (
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackRSAKeyInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofRSAPrivateKeyInternal(
    PGPASN_RSAPrivateKey *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceRSAPrivateKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey *f);
size_t pgpasn_PackRSAPrivateKeyInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RSAPrivateKey *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceRSAPrivateKey (
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackRSAPrivateKeyInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofXIssuerAndSerialNumberInternal(
    PGPASN_XIssuerAndSerialNumber *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceXIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber *f);
size_t pgpasn_PackXIssuerAndSerialNumberInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XIssuerAndSerialNumber *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceXIssuerAndSerialNumber (
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackXIssuerAndSerialNumberInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofXXCertificateInternal(
    PGPASN_XXCertificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceXXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate *f);
size_t pgpasn_PackXXCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XXCertificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceXXCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackXXCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofAttributeInternal(
    PGPASN_Attribute *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceAttribute(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute *f);
size_t pgpasn_PackAttributeInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Attribute *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceAttribute (
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackAttributeInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

#define pgpasn_SizeofContentEncryptionAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlaceContentEncryptionAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackContentEncryptionAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlaceContentEncryptionAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackContentEncryptionAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

#define pgpasn_SizeofDigestAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlaceDigestAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackDigestAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlaceDigestAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackDigestAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

#define pgpasn_SizeofDigestEncryptionAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlaceDigestEncryptionAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackDigestEncryptionAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlaceDigestEncryptionAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackDigestEncryptionAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

size_t pgpasn_SizeofExtensionsInternal(
    PGPASN_Extensions *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceExtensions(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions *f);
size_t pgpasn_PackExtensionsInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Extensions *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceExtensions (
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackExtensionsInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

#define pgpasn_SizeofKeyEncryptionAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlaceKeyEncryptionAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackKeyEncryptionAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlaceKeyEncryptionAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackKeyEncryptionAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

#define pgpasn_SizeofPrivateKeyAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlacePrivateKeyAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackPrivateKeyAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlacePrivateKeyAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackPrivateKeyAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

size_t pgpasn_SizeofRelativeDistinguishedNameInternal(
    PGPASN_RelativeDistinguishedName *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceRelativeDistinguishedName(
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName *f);
size_t pgpasn_PackRelativeDistinguishedNameInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RelativeDistinguishedName *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceRelativeDistinguishedName (
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackRelativeDistinguishedNameInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

#define pgpasn_SizeofSignatureAlgorithmIdentifierInternal pgpasn_SizeofAlgorithmIdentifierInternal
#define pgpasn_DropInPlaceSignatureAlgorithmIdentifier pgpasn_DropInPlaceAlgorithmIdentifier
#define pgpasn_PackSignatureAlgorithmIdentifierInternal pgpasn_PackAlgorithmIdentifierInternal
#define pgpasn_UnpkInPlaceSignatureAlgorithmIdentifier pgpasn_UnpkInPlaceAlgorithmIdentifier
#define pgpasn_UnpackSignatureAlgorithmIdentifierInternal pgpasn_UnpackAlgorithmIdentifierInternal

size_t pgpasn_SizeofSubjectPublicKeyInfoInternal(
    PGPASN_SubjectPublicKeyInfo *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceSubjectPublicKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo *f);
size_t pgpasn_PackSubjectPublicKeyInfoInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SubjectPublicKeyInfo *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceSubjectPublicKeyInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackSubjectPublicKeyInfoInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

#define pgpasn_SizeofTimeInternal pgpasn_SizeofCertificateValidityDateInternal
#define pgpasn_DropInPlaceTime pgpasn_DropInPlaceCertificateValidityDate
#define pgpasn_PackTimeInternal pgpasn_PackCertificateValidityDateInternal
#define pgpasn_UnpkInPlaceTime pgpasn_UnpkInPlaceCertificateValidityDate
#define pgpasn_UnpackTimeInternal pgpasn_UnpackCertificateValidityDateInternal

size_t pgpasn_SizeofValidityInternal(
    PGPASN_Validity *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceValidity(
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity *f);
size_t pgpasn_PackValidityInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Validity *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceValidity (
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackValidityInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofXCertificateInternal(
    PGPASN_XCertificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate *f);
size_t pgpasn_PackXCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XCertificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceXCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackXCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofAttributesInternal(
    PGPASN_Attributes *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceAttributes(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes *f);
size_t pgpasn_PackAttributesInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Attributes *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceAttributes (
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackAttributesInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDigestAlgorithmIdentifiersInternal(
    PGPASN_DigestAlgorithmIdentifiers *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDigestAlgorithmIdentifiers(
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers *f);
size_t pgpasn_PackDigestAlgorithmIdentifiersInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DigestAlgorithmIdentifiers *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDigestAlgorithmIdentifiers (
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDigestAlgorithmIdentifiersInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofPGPExtensionInternal(
    PGPASN_PGPExtension *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlacePGPExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension *f);
size_t pgpasn_PackPGPExtensionInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_PGPExtension *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlacePGPExtension (
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackPGPExtensionInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofRDNSequenceInternal(
    PGPASN_RDNSequence *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceRDNSequence(
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence *f);
size_t pgpasn_PackRDNSequenceInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RDNSequence *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceRDNSequence (
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackRDNSequenceInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofRevokedCertificateInternal(
    PGPASN_RevokedCertificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceRevokedCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate *f);
size_t pgpasn_PackRevokedCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RevokedCertificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceRevokedCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackRevokedCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofXTBSCertificateInternal(
    PGPASN_XTBSCertificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceXTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate *f);
size_t pgpasn_PackXTBSCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XTBSCertificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceXTBSCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackXTBSCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofNameInternal(
    PGPASN_Name *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceName(
    PGPASN_CONTEXT *ctx,
    PGPASN_Name *f);
size_t pgpasn_PackNameInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Name *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceName (
    PGPASN_CONTEXT *ctx,
    PGPASN_Name *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackNameInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Name **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofPrivateKeyInfoInternal(
    PGPASN_PrivateKeyInfo *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlacePrivateKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo *f);
size_t pgpasn_PackPrivateKeyInfoInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_PrivateKeyInfo *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlacePrivateKeyInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackPrivateKeyInfoInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofrevokedCertificates_SEQ_OFInternal(
    PGPASN_revokedCertificates_SEQ_OF *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlacerevokedCertificates_SEQ_OF(
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF *f);
size_t pgpasn_PackrevokedCertificates_SEQ_OFInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_revokedCertificates_SEQ_OF *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlacerevokedCertificates_SEQ_OF (
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackrevokedCertificates_SEQ_OFInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificationRequestInfoInternal(
    PGPASN_CertificationRequestInfo *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificationRequestInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo *f);
size_t pgpasn_PackCertificationRequestInfoInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificationRequestInfo *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificationRequestInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificationRequestInfoInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofGeneralNameInternal(
    PGPASN_GeneralName *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceGeneralName(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName *f);
size_t pgpasn_PackGeneralNameInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_GeneralName *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceGeneralName (
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackGeneralNameInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofIssuerAndSerialNumberInternal(
    PGPASN_IssuerAndSerialNumber *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber *f);
size_t pgpasn_PackIssuerAndSerialNumberInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_IssuerAndSerialNumber *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceIssuerAndSerialNumber (
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackIssuerAndSerialNumberInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofTBSCertListInternal(
    PGPASN_TBSCertList *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceTBSCertList(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList *f);
size_t pgpasn_PackTBSCertListInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_TBSCertList *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceTBSCertList (
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackTBSCertListInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofTBSCertificateInternal(
    PGPASN_TBSCertificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate *f);
size_t pgpasn_PackTBSCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_TBSCertificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceTBSCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackTBSCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificateInternal(
    PGPASN_Certificate *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate *f);
size_t pgpasn_PackCertificateInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Certificate *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificateInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificateRevocationListInternal(
    PGPASN_CertificateRevocationList *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificateRevocationList(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList *f);
size_t pgpasn_PackCertificateRevocationListInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateRevocationList *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificateRevocationList (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificateRevocationListInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificationRequestInternal(
    PGPASN_CertificationRequest *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificationRequest(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest *f);
size_t pgpasn_PackCertificationRequestInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificationRequest *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificationRequest (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificationRequestInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofGeneralNamesInternal(
    PGPASN_GeneralNames *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceGeneralNames(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames *f);
size_t pgpasn_PackGeneralNamesInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_GeneralNames *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceGeneralNames (
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackGeneralNamesInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofSignerInfoInternal(
    PGPASN_SignerInfo *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceSignerInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo *f);
size_t pgpasn_PackSignerInfoInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignerInfo *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceSignerInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackSignerInfoInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificateRevocationListsInternal(
    PGPASN_CertificateRevocationLists *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificateRevocationLists(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists *f);
size_t pgpasn_PackCertificateRevocationListsInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateRevocationLists *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificateRevocationLists (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificateRevocationListsInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCertificatesInternal(
    PGPASN_Certificates *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCertificates(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates *f);
size_t pgpasn_PackCertificatesInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Certificates *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCertificates (
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCertificatesInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDistributionPointNameInternal(
    PGPASN_DistributionPointName *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDistributionPointName(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName *f);
size_t pgpasn_PackDistributionPointNameInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DistributionPointName *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDistributionPointName (
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDistributionPointNameInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofSignerInfosInternal(
    PGPASN_SignerInfos *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceSignerInfos(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos *f);
size_t pgpasn_PackSignerInfosInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignerInfos *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceSignerInfos (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackSignerInfosInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofDistributionPointInternal(
    PGPASN_DistributionPoint *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint *f);
size_t pgpasn_PackDistributionPointInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DistributionPoint *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceDistributionPoint (
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackDistributionPointInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofIssuingDistributionPointInternal(
    PGPASN_IssuingDistributionPoint *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceIssuingDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint *f);
size_t pgpasn_PackIssuingDistributionPointInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_IssuingDistributionPoint *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceIssuingDistributionPoint (
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackIssuingDistributionPointInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofSignedDataInternal(
    PGPASN_SignedData *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceSignedData(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData *f);
size_t pgpasn_PackSignedDataInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignedData *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceSignedData (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackSignedDataInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);

size_t pgpasn_SizeofCRLDistPointsSyntaxInternal(
    PGPASN_CRLDistPointsSyntax *asnstruct,
    int outerSizeFlag,
    int expTaggedFlag);
void pgpasn_DropInPlaceCRLDistPointsSyntax(
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax *f);
size_t pgpasn_PackCRLDistPointsSyntaxInternal(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CRLDistPointsSyntax *asnstruct,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpkInPlaceCRLDistPointsSyntax (
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax *asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);
size_t pgpasn_UnpackCRLDistPointsSyntaxInternal(
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    unsigned char tag,
    int *erret);


#endif /* pgpX509Cert_H_ */
