/*******************************************************************
 *
 * 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
 *
 ******************************************************************/

/*******************************************************************
 *
 *  .h file to declare ASN.1 functions
 *
 ******************************************************************/

#ifndef pgpX509Cert_ASN_H_
#define pgpX509Cert_ASN_H_

#include <stdio.h>

#include "pgpX509Cert.h"

/*******************************************************************
 *
 * Function declarations
 *
 ******************************************************************/

#define pgpasn_NewAttributeType  (PGPASN_AttributeType *)pgpasn_NewOBJECT_ID
#define pgpasn_FreeAttributeType pgpasn_FreeOBJECT_ID
#define pgpasn_SizeofAttributeType pgpasn_SizeofOBJECT_ID
#define pgpasn_PackAttributeType pgpasn_PackOBJECT_ID
#define pgpasn_UnpackAttributeType pgpasn_UnpackOBJECT_ID

#define pgpasn_NewAttributeValue  (PGPASN_AttributeValue *)pgpasn_NewANY
#define pgpasn_FreeAttributeValue pgpasn_FreeANY
#define pgpasn_SizeofAttributeValue pgpasn_SizeofANY
#define pgpasn_PackAttributeValue pgpasn_PackANY
#define pgpasn_UnpackAttributeValue pgpasn_UnpackANY

#define pgpasn_NewBMPString  (PGPASN_BMPString *)pgpasn_NewOCTET_STRING
#define pgpasn_FreeBMPString pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofBMPString pgpasn_SizeofOCTET_STRING
size_t pgpasn_PackBMPString(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_BMPString *asnstruct,
    int *erret);
size_t pgpasn_UnpackBMPString(
    PGPASN_CONTEXT *ctx,
    PGPASN_BMPString **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewCertificateSerialNumber  (PGPASN_CertificateSerialNumber *)pgpasn_NewINTEGER
#define pgpasn_FreeCertificateSerialNumber pgpasn_FreeINTEGER
#define pgpasn_SizeofCertificateSerialNumber pgpasn_SizeofINTEGER
#define pgpasn_PackCertificateSerialNumber pgpasn_PackINTEGER
#define pgpasn_UnpackCertificateSerialNumber pgpasn_UnpackINTEGER

#define pgpasn_NewContentType  (PGPASN_ContentType *)pgpasn_NewOBJECT_ID
#define pgpasn_FreeContentType pgpasn_FreeOBJECT_ID
#define pgpasn_SizeofContentType pgpasn_SizeofOBJECT_ID
#define pgpasn_PackContentType pgpasn_PackOBJECT_ID
#define pgpasn_UnpackContentType pgpasn_UnpackOBJECT_ID

#define pgpasn_NewDSAPublicKey  (PGPASN_DSAPublicKey *)pgpasn_NewINTEGER
#define pgpasn_FreeDSAPublicKey pgpasn_FreeINTEGER
#define pgpasn_SizeofDSAPublicKey pgpasn_SizeofINTEGER
#define pgpasn_PackDSAPublicKey pgpasn_PackINTEGER
#define pgpasn_UnpackDSAPublicKey pgpasn_UnpackINTEGER

#define pgpasn_NewData  (PGPASN_Data *)pgpasn_NewOCTET_STRING
#define pgpasn_FreeData pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofData pgpasn_SizeofOCTET_STRING
#define pgpasn_PackData pgpasn_PackOCTET_STRING
#define pgpasn_UnpackData pgpasn_UnpackOCTET_STRING

#define pgpasn_NewELGPublicKey  (PGPASN_ELGPublicKey *)pgpasn_NewINTEGER
#define pgpasn_FreeELGPublicKey pgpasn_FreeINTEGER
#define pgpasn_SizeofELGPublicKey pgpasn_SizeofINTEGER
#define pgpasn_PackELGPublicKey pgpasn_PackINTEGER
#define pgpasn_UnpackELGPublicKey pgpasn_UnpackINTEGER

#define pgpasn_NewEncryptedDigest  (PGPASN_EncryptedDigest *)pgpasn_NewOCTET_STRING
#define pgpasn_FreeEncryptedDigest pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofEncryptedDigest pgpasn_SizeofOCTET_STRING
#define pgpasn_PackEncryptedDigest pgpasn_PackOCTET_STRING
#define pgpasn_UnpackEncryptedDigest pgpasn_UnpackOCTET_STRING

#define pgpasn_NewKeyUsage  (PGPASN_KeyUsage *)pgpasn_NewBIT_STRING
#define pgpasn_FreeKeyUsage pgpasn_FreeBIT_STRING
#define pgpasn_SizeofKeyUsage pgpasn_SizeofBIT_STRING
#define pgpasn_PackKeyUsage pgpasn_PackBIT_STRING
#define pgpasn_UnpackKeyUsage pgpasn_UnpackBIT_STRING

#define pgpasn_NewPrivateKey  (PGPASN_PrivateKey *)pgpasn_NewOCTET_STRING
#define pgpasn_FreePrivateKey pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofPrivateKey pgpasn_SizeofOCTET_STRING
#define pgpasn_PackPrivateKey pgpasn_PackOCTET_STRING
#define pgpasn_UnpackPrivateKey pgpasn_UnpackOCTET_STRING

#define pgpasn_NewReasonFlags  (PGPASN_ReasonFlags *)pgpasn_NewBIT_STRING
#define pgpasn_FreeReasonFlags pgpasn_FreeBIT_STRING
#define pgpasn_SizeofReasonFlags pgpasn_SizeofBIT_STRING
#define pgpasn_PackReasonFlags pgpasn_PackBIT_STRING
#define pgpasn_UnpackReasonFlags pgpasn_UnpackBIT_STRING

#define pgpasn_NewSignature  (PGPASN_Signature *)pgpasn_NewBIT_STRING
#define pgpasn_FreeSignature pgpasn_FreeBIT_STRING
#define pgpasn_SizeofSignature pgpasn_SizeofBIT_STRING
#define pgpasn_PackSignature pgpasn_PackBIT_STRING
#define pgpasn_UnpackSignature pgpasn_UnpackBIT_STRING

#define pgpasn_NewUTF8String  (PGPASN_UTF8String *)pgpasn_NewOCTET_STRING
#define pgpasn_FreeUTF8String pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofUTF8String pgpasn_SizeofOCTET_STRING
size_t pgpasn_PackUTF8String(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_UTF8String *asnstruct,
    int *erret);
size_t pgpasn_UnpackUTF8String(
    PGPASN_CONTEXT *ctx,
    PGPASN_UTF8String **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewUniqueIdentifier  (PGPASN_UniqueIdentifier *)pgpasn_NewBIT_STRING
#define pgpasn_FreeUniqueIdentifier pgpasn_FreeBIT_STRING
#define pgpasn_SizeofUniqueIdentifier pgpasn_SizeofBIT_STRING
#define pgpasn_PackUniqueIdentifier pgpasn_PackBIT_STRING
#define pgpasn_UnpackUniqueIdentifier pgpasn_UnpackBIT_STRING

#define pgpasn_NewUniversalString  (PGPASN_UniversalString *)pgpasn_NewOCTET_STRING
#define pgpasn_FreeUniversalString pgpasn_FreeOCTET_STRING
#define pgpasn_SizeofUniversalString pgpasn_SizeofOCTET_STRING
size_t pgpasn_PackUniversalString(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_UniversalString *asnstruct,
    int *erret);
size_t pgpasn_UnpackUniversalString(
    PGPASN_CONTEXT *ctx,
    PGPASN_UniversalString **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewVersion  (PGPASN_Version *)pgpasn_NewINTEGER
#define pgpasn_FreeVersion pgpasn_FreeINTEGER
#define pgpasn_SizeofVersion pgpasn_SizeofINTEGER
#define pgpasn_PackVersion pgpasn_PackINTEGER
#define pgpasn_UnpackVersion pgpasn_UnpackINTEGER

PGPASN_AlgorithmIdentifier *pgpasn_NewAlgorithmIdentifier(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeAlgorithmIdentifier(
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier *f);
size_t pgpasn_SizeofAlgorithmIdentifier (
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackAlgorithmIdentifier(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AlgorithmIdentifier *asnstruct,
    int *erret);
size_t pgpasn_UnpackAlgorithmIdentifier(
    PGPASN_CONTEXT *ctx,
    PGPASN_AlgorithmIdentifier **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_AttributeTypeAndValue *pgpasn_NewAttributeTypeAndValue(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeAttributeTypeAndValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue *f);
size_t pgpasn_SizeofAttributeTypeAndValue (
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackAttributeTypeAndValue(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AttributeTypeAndValue *asnstruct,
    int *erret);
size_t pgpasn_UnpackAttributeTypeAndValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeTypeAndValue **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_AttributeValues *pgpasn_NewAttributeValues(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeAttributeValues(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues *f);
size_t pgpasn_SizeofAttributeValues (
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackAttributeValues(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_AttributeValues *asnstruct,
    int *erret);
size_t pgpasn_UnpackAttributeValues(
    PGPASN_CONTEXT *ctx,
    PGPASN_AttributeValues **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_BasicConstraints *pgpasn_NewBasicConstraints(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeBasicConstraints(
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints *f);
size_t pgpasn_SizeofBasicConstraints (
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackBasicConstraints(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_BasicConstraints *asnstruct,
    int *erret);
size_t pgpasn_UnpackBasicConstraints(
    PGPASN_CONTEXT *ctx,
    PGPASN_BasicConstraints **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CertificateValidityDate *pgpasn_NewCertificateValidityDate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificateValidityDate(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate *f);
size_t pgpasn_SizeofCertificateValidityDate (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificateValidityDate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateValidityDate *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificateValidityDate(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateValidityDate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_ContentInfo *pgpasn_NewContentInfo(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeContentInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo *f);
size_t pgpasn_SizeofContentInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackContentInfo(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_ContentInfo *asnstruct,
    int *erret);
size_t pgpasn_UnpackContentInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_ContentInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DirectoryString *pgpasn_NewDirectoryString(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDirectoryString(
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString *f);
size_t pgpasn_SizeofDirectoryString (
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDirectoryString(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DirectoryString *asnstruct,
    int *erret);
size_t pgpasn_UnpackDirectoryString(
    PGPASN_CONTEXT *ctx,
    PGPASN_DirectoryString **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DssParms *pgpasn_NewDssParms(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDssParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms *f);
size_t pgpasn_SizeofDssParms (
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDssParms(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DssParms *asnstruct,
    int *erret);
size_t pgpasn_UnpackDssParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssParms **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DssSigValue *pgpasn_NewDssSigValue(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDssSigValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue *f);
size_t pgpasn_SizeofDssSigValue (
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDssSigValue(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DssSigValue *asnstruct,
    int *erret);
size_t pgpasn_UnpackDssSigValue(
    PGPASN_CONTEXT *ctx,
    PGPASN_DssSigValue **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_ELGParms *pgpasn_NewELGParms(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeELGParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms *f);
size_t pgpasn_SizeofELGParms (
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackELGParms(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_ELGParms *asnstruct,
    int *erret);
size_t pgpasn_UnpackELGParms(
    PGPASN_CONTEXT *ctx,
    PGPASN_ELGParms **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Extension *pgpasn_NewExtension(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension *f);
size_t pgpasn_SizeofExtension (
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackExtension(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Extension *asnstruct,
    int *erret);
size_t pgpasn_UnpackExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extension **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_OtherName *pgpasn_NewOtherName(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeOtherName(
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName *f);
size_t pgpasn_SizeofOtherName (
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackOtherName(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_OtherName *asnstruct,
    int *erret);
size_t pgpasn_UnpackOtherName(
    PGPASN_CONTEXT *ctx,
    PGPASN_OtherName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_RSAKey *pgpasn_NewRSAKey(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeRSAKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey *f);
size_t pgpasn_SizeofRSAKey (
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackRSAKey(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RSAKey *asnstruct,
    int *erret);
size_t pgpasn_UnpackRSAKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAKey **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_RSAPrivateKey *pgpasn_NewRSAPrivateKey(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeRSAPrivateKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey *f);
size_t pgpasn_SizeofRSAPrivateKey (
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackRSAPrivateKey(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RSAPrivateKey *asnstruct,
    int *erret);
size_t pgpasn_UnpackRSAPrivateKey(
    PGPASN_CONTEXT *ctx,
    PGPASN_RSAPrivateKey **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_XIssuerAndSerialNumber *pgpasn_NewXIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeXIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber *f);
size_t pgpasn_SizeofXIssuerAndSerialNumber (
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackXIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XIssuerAndSerialNumber *asnstruct,
    int *erret);
size_t pgpasn_UnpackXIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_XIssuerAndSerialNumber **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_XXCertificate *pgpasn_NewXXCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeXXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate *f);
size_t pgpasn_SizeofXXCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackXXCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XXCertificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackXXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XXCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Attribute *pgpasn_NewAttribute(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeAttribute(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute *f);
size_t pgpasn_SizeofAttribute (
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackAttribute(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Attribute *asnstruct,
    int *erret);
size_t pgpasn_UnpackAttribute(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attribute **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewContentEncryptionAlgorithmIdentifier  (PGPASN_ContentEncryptionAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreeContentEncryptionAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofContentEncryptionAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackContentEncryptionAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackContentEncryptionAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

#define pgpasn_NewDigestAlgorithmIdentifier  (PGPASN_DigestAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreeDigestAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofDigestAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackDigestAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackDigestAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

#define pgpasn_NewDigestEncryptionAlgorithmIdentifier  (PGPASN_DigestEncryptionAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreeDigestEncryptionAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofDigestEncryptionAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackDigestEncryptionAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackDigestEncryptionAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

PGPASN_Extensions *pgpasn_NewExtensions(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeExtensions(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions *f);
size_t pgpasn_SizeofExtensions (
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackExtensions(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Extensions *asnstruct,
    int *erret);
size_t pgpasn_UnpackExtensions(
    PGPASN_CONTEXT *ctx,
    PGPASN_Extensions **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewKeyEncryptionAlgorithmIdentifier  (PGPASN_KeyEncryptionAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreeKeyEncryptionAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofKeyEncryptionAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackKeyEncryptionAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackKeyEncryptionAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

#define pgpasn_NewPrivateKeyAlgorithmIdentifier  (PGPASN_PrivateKeyAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreePrivateKeyAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofPrivateKeyAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackPrivateKeyAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackPrivateKeyAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

PGPASN_RelativeDistinguishedName *pgpasn_NewRelativeDistinguishedName(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeRelativeDistinguishedName(
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName *f);
size_t pgpasn_SizeofRelativeDistinguishedName (
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackRelativeDistinguishedName(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RelativeDistinguishedName *asnstruct,
    int *erret);
size_t pgpasn_UnpackRelativeDistinguishedName(
    PGPASN_CONTEXT *ctx,
    PGPASN_RelativeDistinguishedName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewSignatureAlgorithmIdentifier  (PGPASN_SignatureAlgorithmIdentifier *)pgpasn_NewAlgorithmIdentifier
#define pgpasn_FreeSignatureAlgorithmIdentifier pgpasn_FreeAlgorithmIdentifier
#define pgpasn_SizeofSignatureAlgorithmIdentifier pgpasn_SizeofAlgorithmIdentifier
#define pgpasn_PackSignatureAlgorithmIdentifier pgpasn_PackAlgorithmIdentifier
#define pgpasn_UnpackSignatureAlgorithmIdentifier pgpasn_UnpackAlgorithmIdentifier

PGPASN_SubjectPublicKeyInfo *pgpasn_NewSubjectPublicKeyInfo(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeSubjectPublicKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo *f);
size_t pgpasn_SizeofSubjectPublicKeyInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackSubjectPublicKeyInfo(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SubjectPublicKeyInfo *asnstruct,
    int *erret);
size_t pgpasn_UnpackSubjectPublicKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SubjectPublicKeyInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#define pgpasn_NewTime  (PGPASN_Time *)pgpasn_NewCertificateValidityDate
#define pgpasn_FreeTime pgpasn_FreeCertificateValidityDate
#define pgpasn_SizeofTime pgpasn_SizeofCertificateValidityDate
#define pgpasn_PackTime pgpasn_PackCertificateValidityDate
#define pgpasn_UnpackTime pgpasn_UnpackCertificateValidityDate

PGPASN_Validity *pgpasn_NewValidity(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeValidity(
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity *f);
size_t pgpasn_SizeofValidity (
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackValidity(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Validity *asnstruct,
    int *erret);
size_t pgpasn_UnpackValidity(
    PGPASN_CONTEXT *ctx,
    PGPASN_Validity **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_XCertificate *pgpasn_NewXCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate *f);
size_t pgpasn_SizeofXCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackXCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XCertificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackXCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Attributes *pgpasn_NewAttributes(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeAttributes(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes *f);
size_t pgpasn_SizeofAttributes (
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackAttributes(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Attributes *asnstruct,
    int *erret);
size_t pgpasn_UnpackAttributes(
    PGPASN_CONTEXT *ctx,
    PGPASN_Attributes **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DigestAlgorithmIdentifiers *pgpasn_NewDigestAlgorithmIdentifiers(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDigestAlgorithmIdentifiers(
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers *f);
size_t pgpasn_SizeofDigestAlgorithmIdentifiers (
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDigestAlgorithmIdentifiers(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DigestAlgorithmIdentifiers *asnstruct,
    int *erret);
size_t pgpasn_UnpackDigestAlgorithmIdentifiers(
    PGPASN_CONTEXT *ctx,
    PGPASN_DigestAlgorithmIdentifiers **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_PGPExtension *pgpasn_NewPGPExtension(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreePGPExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension *f);
size_t pgpasn_SizeofPGPExtension (
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackPGPExtension(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_PGPExtension *asnstruct,
    int *erret);
size_t pgpasn_UnpackPGPExtension(
    PGPASN_CONTEXT *ctx,
    PGPASN_PGPExtension **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_RDNSequence *pgpasn_NewRDNSequence(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeRDNSequence(
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence *f);
size_t pgpasn_SizeofRDNSequence (
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackRDNSequence(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RDNSequence *asnstruct,
    int *erret);
size_t pgpasn_UnpackRDNSequence(
    PGPASN_CONTEXT *ctx,
    PGPASN_RDNSequence **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_RevokedCertificate *pgpasn_NewRevokedCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeRevokedCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate *f);
size_t pgpasn_SizeofRevokedCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackRevokedCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_RevokedCertificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackRevokedCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_RevokedCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_XTBSCertificate *pgpasn_NewXTBSCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeXTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate *f);
size_t pgpasn_SizeofXTBSCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackXTBSCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_XTBSCertificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackXTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_XTBSCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Name *pgpasn_NewName(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeName(
    PGPASN_CONTEXT *ctx,
    PGPASN_Name *f);
size_t pgpasn_SizeofName (
    PGPASN_CONTEXT *ctx,
    PGPASN_Name *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackName(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Name *asnstruct,
    int *erret);
size_t pgpasn_UnpackName(
    PGPASN_CONTEXT *ctx,
    PGPASN_Name **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_PrivateKeyInfo *pgpasn_NewPrivateKeyInfo(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreePrivateKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo *f);
size_t pgpasn_SizeofPrivateKeyInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackPrivateKeyInfo(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_PrivateKeyInfo *asnstruct,
    int *erret);
size_t pgpasn_UnpackPrivateKeyInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_PrivateKeyInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_revokedCertificates_SEQ_OF *pgpasn_NewrevokedCertificates_SEQ_OF(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreerevokedCertificates_SEQ_OF(
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF *f);
size_t pgpasn_SizeofrevokedCertificates_SEQ_OF (
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackrevokedCertificates_SEQ_OF(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_revokedCertificates_SEQ_OF *asnstruct,
    int *erret);
size_t pgpasn_UnpackrevokedCertificates_SEQ_OF(
    PGPASN_CONTEXT *ctx,
    PGPASN_revokedCertificates_SEQ_OF **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CertificationRequestInfo *pgpasn_NewCertificationRequestInfo(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificationRequestInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo *f);
size_t pgpasn_SizeofCertificationRequestInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificationRequestInfo(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificationRequestInfo *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificationRequestInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequestInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_GeneralName *pgpasn_NewGeneralName(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeGeneralName(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName *f);
size_t pgpasn_SizeofGeneralName (
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackGeneralName(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_GeneralName *asnstruct,
    int *erret);
size_t pgpasn_UnpackGeneralName(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_IssuerAndSerialNumber *pgpasn_NewIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber *f);
size_t pgpasn_SizeofIssuerAndSerialNumber (
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_IssuerAndSerialNumber *asnstruct,
    int *erret);
size_t pgpasn_UnpackIssuerAndSerialNumber(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuerAndSerialNumber **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_TBSCertList *pgpasn_NewTBSCertList(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeTBSCertList(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList *f);
size_t pgpasn_SizeofTBSCertList (
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackTBSCertList(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_TBSCertList *asnstruct,
    int *erret);
size_t pgpasn_UnpackTBSCertList(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertList **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_TBSCertificate *pgpasn_NewTBSCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate *f);
size_t pgpasn_SizeofTBSCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackTBSCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_TBSCertificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackTBSCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_TBSCertificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Certificate *pgpasn_NewCertificate(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate *f);
size_t pgpasn_SizeofCertificate (
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificate(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Certificate *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificate(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificate **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CertificateRevocationList *pgpasn_NewCertificateRevocationList(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificateRevocationList(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList *f);
size_t pgpasn_SizeofCertificateRevocationList (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificateRevocationList(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateRevocationList *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificateRevocationList(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationList **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CertificationRequest *pgpasn_NewCertificationRequest(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificationRequest(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest *f);
size_t pgpasn_SizeofCertificationRequest (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificationRequest(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificationRequest *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificationRequest(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificationRequest **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_GeneralNames *pgpasn_NewGeneralNames(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeGeneralNames(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames *f);
size_t pgpasn_SizeofGeneralNames (
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackGeneralNames(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_GeneralNames *asnstruct,
    int *erret);
size_t pgpasn_UnpackGeneralNames(
    PGPASN_CONTEXT *ctx,
    PGPASN_GeneralNames **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_SignerInfo *pgpasn_NewSignerInfo(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeSignerInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo *f);
size_t pgpasn_SizeofSignerInfo (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackSignerInfo(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignerInfo *asnstruct,
    int *erret);
size_t pgpasn_UnpackSignerInfo(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfo **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CertificateRevocationLists *pgpasn_NewCertificateRevocationLists(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificateRevocationLists(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists *f);
size_t pgpasn_SizeofCertificateRevocationLists (
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificateRevocationLists(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CertificateRevocationLists *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificateRevocationLists(
    PGPASN_CONTEXT *ctx,
    PGPASN_CertificateRevocationLists **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_Certificates *pgpasn_NewCertificates(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCertificates(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates *f);
size_t pgpasn_SizeofCertificates (
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCertificates(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_Certificates *asnstruct,
    int *erret);
size_t pgpasn_UnpackCertificates(
    PGPASN_CONTEXT *ctx,
    PGPASN_Certificates **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DistributionPointName *pgpasn_NewDistributionPointName(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDistributionPointName(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName *f);
size_t pgpasn_SizeofDistributionPointName (
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDistributionPointName(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DistributionPointName *asnstruct,
    int *erret);
size_t pgpasn_UnpackDistributionPointName(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPointName **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_SignerInfos *pgpasn_NewSignerInfos(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeSignerInfos(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos *f);
size_t pgpasn_SizeofSignerInfos (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackSignerInfos(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignerInfos *asnstruct,
    int *erret);
size_t pgpasn_UnpackSignerInfos(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignerInfos **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_DistributionPoint *pgpasn_NewDistributionPoint(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint *f);
size_t pgpasn_SizeofDistributionPoint (
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackDistributionPoint(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_DistributionPoint *asnstruct,
    int *erret);
size_t pgpasn_UnpackDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_DistributionPoint **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_IssuingDistributionPoint *pgpasn_NewIssuingDistributionPoint(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeIssuingDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint *f);
size_t pgpasn_SizeofIssuingDistributionPoint (
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackIssuingDistributionPoint(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_IssuingDistributionPoint *asnstruct,
    int *erret);
size_t pgpasn_UnpackIssuingDistributionPoint(
    PGPASN_CONTEXT *ctx,
    PGPASN_IssuingDistributionPoint **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_SignedData *pgpasn_NewSignedData(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeSignedData(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData *f);
size_t pgpasn_SizeofSignedData (
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackSignedData(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_SignedData *asnstruct,
    int *erret);
size_t pgpasn_UnpackSignedData(
    PGPASN_CONTEXT *ctx,
    PGPASN_SignedData **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

PGPASN_CRLDistPointsSyntax *pgpasn_NewCRLDistPointsSyntax(
    PGPASN_CONTEXT *ctx);
void pgpasn_FreeCRLDistPointsSyntax(
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax *f);
size_t pgpasn_SizeofCRLDistPointsSyntax (
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax *asnstruct,
    int outerSizeFlag);
size_t pgpasn_PackCRLDistPointsSyntax(
    PGPASN_CONTEXT *ctx,
    unsigned char *buf,
    size_t buflen,
    PGPASN_CRLDistPointsSyntax *asnstruct,
    int *erret);
size_t pgpasn_UnpackCRLDistPointsSyntax(
    PGPASN_CONTEXT *ctx,
    PGPASN_CRLDistPointsSyntax **asnstruct,
    const unsigned char *buf,
    size_t buflen,
    int *erret);

#endif /* pgpX509Cert_ASN_H_ */
