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

#ifndef __javax_crypto_spec_PBEParameterSpec__
#define __javax_crypto_spec_PBEParameterSpec__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace crypto
    {
      namespace spec
      {
          class PBEParameterSpec;
      }
    }
  }
}

class javax::crypto::spec::PBEParameterSpec : public ::java::lang::Object
{

public:
  PBEParameterSpec(JArray< jbyte > *, jint);
  virtual jint getIterationCount();
  virtual JArray< jbyte > * getSalt();
private:
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterationCount;
  JArray< jbyte > * salt;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_crypto_spec_PBEParameterSpec__
