// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_security_cert_X509CertSelector__
#define __java_security_cert_X509CertSelector__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        class OID;
      }
    }
  }
  namespace javax
  {
    namespace security
    {
      namespace auth
      {
        namespace x500
        {
          class X500Principal;
        }
      }
    }
  }
  namespace java
  {
    namespace math
    {
      class BigInteger;
    }
    namespace security
    {
      namespace spec
      {
        class X509EncodedKeySpec;
      }
      class PublicKey;
      namespace cert
      {
        class X509CertSelector;
        class Certificate;
        class X509Certificate;
      }
    }
  }
}

class java::security::cert::X509CertSelector : public ::java::lang::Object
{
public:
  X509CertSelector ();
  virtual ::java::security::cert::X509Certificate *getCertificate () { return cert; }
  virtual void setCertificate (::java::security::cert::X509Certificate *);
  virtual ::java::math::BigInteger *getSerialNumber () { return serialNo; }
  virtual void setSerialNumber (::java::math::BigInteger *);
  virtual ::java::lang::String *getIssuerAsString ();
  virtual jbyteArray getIssuerAsBytes ();
  virtual void setIssuer (::java::lang::String *);
  virtual void setIssuer (jbyteArray);
  virtual ::java::lang::String *getSubjectAsString ();
  virtual jbyteArray getSubjectAsBytes ();
  virtual void setSubject (::java::lang::String *);
  virtual void setSubject (jbyteArray);
  virtual jbyteArray getSubjectKeyIdentifier ();
  virtual void setSubjectKeyIdentifier (jbyteArray);
  virtual jbyteArray getAuthorityKeyIdentifier ();
  virtual void setAuthorityKeyIdentifier (jbyteArray);
  virtual ::java::util::Date *getCertificateValid ();
  virtual void setCertificateValid (::java::util::Date *);
  virtual ::java::util::Date *getPrivateKeyValid () { return 0; }
  virtual void setPrivateKeyValid (::java::util::Date *) { }
  virtual ::java::lang::String *getSubjectPublicKeyAlgID ();
  virtual void setSubjectPublicKeyAlgID (::java::lang::String *);
  virtual ::java::security::PublicKey *getSubjectPublicKey () { return subjectKey; }
  virtual void setSubjectPublicKey (::java::security::PublicKey *);
  virtual void setSubjectPublicKey (jbyteArray);
  virtual jbooleanArray getKeyUsage ();
  virtual void setKeyUsage (jbooleanArray);
  virtual ::java::util::Set *getExtendedKeyUsage ();
  virtual void setExtendedKeyUsage (::java::util::Set *);
  virtual jboolean getMatchAllSubjectAltNames () { return matchAllNames; }
  virtual void setMatchAllSubjectAltNames (jboolean);
  virtual void setSubjectAlternativeNames (::java::util::Collection *);
  virtual void addSubjectAlternativeName (jint, ::java::lang::String *);
  virtual void addSubjectAlternativeName (jint, jbyteArray);
  virtual jbyteArray getNameConstraints ();
  virtual void setNameConstraints (jbyteArray);
  virtual jint getBasicConstraints () { return basicConstraints; }
  virtual void setBasicConstraints (jint);
  virtual jboolean match (::java::security::cert::Certificate *);
  virtual ::java::lang::String *toString ();
  virtual ::java::lang::Object *clone ();
private:
  static jboolean checkOid (jintArray);
  static ::java::lang::String *AUTH_KEY_ID;
  static ::java::lang::String *SUBJECT_KEY_ID;
  static ::java::lang::String *NAME_CONSTRAINTS_ID;
  jint __attribute__((aligned(__alignof__( ::java::lang::Object ))))  basicConstraints;
  ::java::security::cert::X509Certificate *cert;
  ::java::math::BigInteger *serialNo;
  ::javax::security::auth::x500::X500Principal *issuer;
  ::javax::security::auth::x500::X500Principal *subject;
  jbyteArray subjectKeyId;
  jbyteArray authKeyId;
  jbooleanArray keyUsage;
  ::java::util::Date *certValid;
  ::gnu::java::security::OID *sigId;
  ::java::security::PublicKey *subjectKey;
  ::java::security::spec::X509EncodedKeySpec *subjectKeySpec;
  ::java::util::Set *keyPurposeSet;
  ::java::util::List *altNames;
  jboolean matchAllNames;
  jbyteArray nameConstraints;
  ::java::util::Set *policy;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_security_cert_X509CertSelector__ */
