/**
 * This file was generated by the Objective Systems ASN1C Compiler
 * (http://www.obj-sys.com).  Version: 5.63.
 */
#ifndef PKCS_9TABLE_H
#define PKCS_9TABLE_H

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "PKCS-9.h"
#include "PKIX1Explicit88Class.h"
#include "CryptographicMessageSyntaxClass.h"
#include "PKIX1Explicit88BaseTypesClass.h"
#include "Cryptographic-Gost-Useful-DefinitionsClass.h"
#include "CertificateExtensionsClass.h"
#include "PKIXOCSPClass.h"
#include "PKIXCMPClass.h"
#include "ETS-ElectronicSignatureFormats-97SyntaxClass.h"
namespace asn1data {

/* Object definitions */

/**************************************************************/
/*                                                            */
/*  pKCS7PDU                                                  */
/*                                                            */
/**************************************************************/

class EXTERN pKCS7PDU : public ATTRIBUTE {
 public:
   pKCS7PDU();

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data);

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~pKCS7PDU() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject);
   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object);
} ;

/**************************************************************/
/*                                                            */
/*  encryptedPrivateKeyInfo                                   */
/*                                                            */
/**************************************************************/

class EXTERN encryptedPrivateKeyInfo : public ATTRIBUTE {
 public:
   encryptedPrivateKeyInfo();

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data);

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~encryptedPrivateKeyInfo() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject);
   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object);
} ;

/**************************************************************/
/*                                                            */
/*  friendlyName                                              */
/*                                                            */
/**************************************************************/

class EXTERN friendlyName : public ATTRIBUTE {
 public:
   friendlyName();

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data);

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~friendlyName() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject);
   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object);
} ;

/**************************************************************/
/*                                                            */
/*  localKeyId                                                */
/*                                                            */
/**************************************************************/

class EXTERN localKeyId : public ATTRIBUTE {
 public:
   localKeyId();

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data);

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~localKeyId() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object);

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject);
   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object);
} ;


}
#endif
