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

#ifndef __java_security_KeyStore__
#define __java_security_KeyStore__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace security
    {
      namespace cert
      {
        class Certificate;
      }
      class Key;
      class KeyStore;
      class Provider;
      class KeyStoreSpi;
    }
  }
}

class java::security::KeyStore : public ::java::lang::Object
{
public:  // actually protected
  KeyStore (::java::security::KeyStoreSpi *, ::java::security::Provider *, ::java::lang::String *);
public:
  static ::java::security::KeyStore *getInstance (::java::lang::String *);
  static ::java::security::KeyStore *getInstance (::java::lang::String *, ::java::lang::String *);
  static ::java::security::KeyStore *getInstance (::java::lang::String *, ::java::security::Provider *);
  static ::java::lang::String *getDefaultType ();
  ::java::security::Provider *getProvider () { return provider; }
  ::java::lang::String *getType () { return type; }
  ::java::security::Key *getKey (::java::lang::String *, jcharArray);
  JArray< ::java::security::cert::Certificate *> *getCertificateChain (::java::lang::String *);
  ::java::security::cert::Certificate *getCertificate (::java::lang::String *);
  ::java::util::Date *getCreationDate (::java::lang::String *);
  void setKeyEntry (::java::lang::String *, ::java::security::Key *, jcharArray, JArray< ::java::security::cert::Certificate *> *);
  void setKeyEntry (::java::lang::String *, jbyteArray, JArray< ::java::security::cert::Certificate *> *);
  void setCertificateEntry (::java::lang::String *, ::java::security::cert::Certificate *);
  void deleteEntry (::java::lang::String *);
  ::java::util::Enumeration *aliases ();
  jboolean containsAlias (::java::lang::String *);
  jint size ();
  jboolean isKeyEntry (::java::lang::String *);
  jboolean isCertificateEntry (::java::lang::String *);
  ::java::lang::String *getCertificateAlias (::java::security::cert::Certificate *);
  void store (::java::io::OutputStream *, jcharArray);
  void load (::java::io::InputStream *, jcharArray);
private:
  static ::java::lang::String *KEY_STORE;
  ::java::security::KeyStoreSpi * __attribute__((aligned(__alignof__( ::java::lang::Object )))) keyStoreSpi;
  ::java::security::Provider *provider;
  ::java::lang::String *type;
public:

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

#endif /* __java_security_KeyStore__ */
