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

#ifndef __java_security_AlgorithmParameterGeneratorSpi__
#define __java_security_AlgorithmParameterGeneratorSpi__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
        class AlgorithmParameterGeneratorSpi;
        class AlgorithmParameters;
        class SecureRandom;
      namespace spec
      {
          class AlgorithmParameterSpec;
      }
    }
  }
}

class java::security::AlgorithmParameterGeneratorSpi : public ::java::lang::Object
{

public:
  AlgorithmParameterGeneratorSpi();
public: // actually protected
  virtual void engineInit(jint, ::java::security::SecureRandom *) = 0;
  virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0;
  virtual ::java::security::AlgorithmParameters * engineGenerateParameters() = 0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_security_AlgorithmParameterGeneratorSpi__
