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

#ifndef __gnu_javax_crypto_sasl_srp_PasswordFile__
#define __gnu_javax_crypto_sasl_srp_PasswordFile__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace sasl
        {
          namespace srp
          {
              class PasswordFile;
          }
        }
      }
    }
  }
  namespace java
  {
    namespace math
    {
        class BigInteger;
    }
  }
}

class gnu::javax::crypto::sasl::srp::PasswordFile : public ::java::lang::Object
{

public:
  PasswordFile();
  PasswordFile(::java::io::File *);
  PasswordFile(::java::lang::String *);
  PasswordFile(::java::lang::String *, ::java::lang::String *);
  PasswordFile(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
private:
  static ::java::lang::String * nameToID(::java::lang::String *);
public:
  virtual jboolean containsConfig(::java::lang::String *);
  virtual JArray< ::java::lang::String * > * lookupConfig(::java::lang::String *);
  virtual jboolean contains(::java::lang::String *);
  virtual void add(::java::lang::String *, ::java::lang::String *, JArray< jbyte > *, ::java::lang::String *);
  virtual void changePasswd(::java::lang::String *, ::java::lang::String *);
  virtual void savePasswd();
  virtual JArray< ::java::lang::String * > * lookup(::java::lang::String *, ::java::lang::String *);
private:
  void readOrCreateConf();
  void readConf(::java::io::InputStream *);
  void writeConf(::java::io::PrintWriter *);
  ::java::util::HashMap * newVerifiers(::java::lang::String *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *);
  void update();
  void checkCurrent();
  void readPasswd(::java::io::InputStream *);
  void readPasswd2(::java::io::InputStream *);
  void writePasswd(::java::io::PrintWriter *, ::java::io::PrintWriter *);
  static ::java::lang::String * USER_FIELD;
  static ::java::lang::String * VERIFIERS_FIELD;
  static ::java::lang::String * SALT_FIELD;
  static ::java::lang::String * CONFIG_FIELD;
  static ::java::lang::String * DEFAULT_FILE;
  static ::java::util::HashMap * srps;
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) confName;
  ::java::lang::String * pwName;
  ::java::lang::String * pw2Name;
  ::java::io::File * configFile;
  ::java::io::File * passwdFile;
  ::java::io::File * passwd2File;
  jlong lastmodPasswdFile;
  jlong lastmodPasswd2File;
  ::java::util::HashMap * entries;
  ::java::util::HashMap * configurations;
  static JArray< ::java::math::BigInteger * > * Nsrp;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_sasl_srp_PasswordFile__
