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

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "ASN1CBitStr.h"
#include "ASN1CGeneralizedTime.h"
#include "ASN1CSeqOfList.h"
#include "CertificateExtensions.h"
#include "UsefulDefinitions.h"
#include "PKIXOCSP.h"
#include "PKIX1Explicit88.h"
#include "Gost-Qualified-Certificate.h"
namespace asn1data {


/* Class definitions */


/**************************************************************/
/*                                                            */
/*  OTHER_NAME                                                */
/*                                                            */
/**************************************************************/

class EXTERN OTHER_NAME {
 protected:
   struct {
      unsigned TypePresent : 1;
   } m;
   ASN1TObjId id;

   OTHER_NAME () {
            m.TypePresent = 0;
   }

 public:
   ASN1BOOL isTypePresent() {
       if(m.TypePresent) {return TRUE;} else {return FALSE;}
   }
   virtual void* constructASN1TType
       (ASN1CTXT* pctxt) { return NULL; };

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data) { return NULL; };

   virtual void destructASN1CType
       (ASN1CType* obj) {}

   virtual ~OTHER_NAME() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) {}

   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object) {}

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


/**************************************************************/
/*                                                            */
/*  MATCHING_RULE                                             */
/*                                                            */
/**************************************************************/

class EXTERN MATCHING_RULE {
 protected:
   struct {
      unsigned ParentMatchingRulesPresent : 1;
      unsigned AssertionTypePresent : 1;
      unsigned uniqueMatchIndicatorPresent : 1;
   } m;
   ASN1TObjId uniqueMatchIndicator;
   ASN1TObjId id;

   MATCHING_RULE () {
            m.ParentMatchingRulesPresent = 0;
            m.AssertionTypePresent = 0;
            m.uniqueMatchIndicatorPresent = 0;
   }

 public:
   ASN1BOOL isParentMatchingRulesPresent() {
       if(m.ParentMatchingRulesPresent) {return TRUE;} else {return FALSE;}
   }
   ASN1BOOL isAssertionTypePresent() {
       if(m.AssertionTypePresent) {return TRUE;} else {return FALSE;}
   }
   virtual void* constructASN1TAssertionType
       (ASN1CTXT* pctxt) { return NULL; };

   virtual ASN1CType* constructASN1CAssertionType
       (ASN1MessageBufferIF& msgBuf, void* data) { return NULL; };

   virtual void destructASN1CAssertionType
       (ASN1CType* obj) {}

   virtual ~MATCHING_RULE() {}

   virtual int encodeBERAssertionType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual int decodeBERAssertionType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual void copyAssertionType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) {}

   virtual void freeAssertionType
      (ASN1CTXT* pctxt, ASN1TObject& object) {}

   ASN1BOOL isuniqueMatchIndicatorPresent() {
       if(m.uniqueMatchIndicatorPresent) {return TRUE;} else {return FALSE;}
   }
   inline ASN1BOOL uniqueMatchIndicatorEquals (ASN1TObjId value) {
      return (uniqueMatchIndicator == value);
   }
   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


/**************************************************************/
/*                                                            */
/*  CERT_POLICY_QUALIFIER                                     */
/*                                                            */
/**************************************************************/

class EXTERN CERT_POLICY_QUALIFIER {
 protected:
   struct {
      unsigned QualifierPresent : 1;
   } m;
   ASN1TObjId id;

   CERT_POLICY_QUALIFIER () {
            m.QualifierPresent = 0;
   }

 public:
   ASN1BOOL isQualifierPresent() {
       if(m.QualifierPresent) {return TRUE;} else {return FALSE;}
   }
   virtual void* constructASN1TQualifier
       (ASN1CTXT* pctxt) { return NULL; };

   virtual ASN1CType* constructASN1CQualifier
       (ASN1MessageBufferIF& msgBuf, void* data) { return NULL; };

   virtual void destructASN1CQualifier
       (ASN1CType* obj) {}

   virtual ~CERT_POLICY_QUALIFIER() {}

   virtual int encodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual int decodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual void copyQualifier
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) {}

   virtual void freeQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) {}

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


}
#endif
