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

#ifndef __gnu_java_security_util_Prime__
#define __gnu_java_security_util_Prime__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        namespace util
        {
            class Prime;
        }
      }
    }
  }
  namespace java
  {
    namespace math
    {
        class BigInteger;
    }
  }
}

class gnu::java::security::util::Prime : public ::java::lang::Object
{

public:
  Prime();
  static ::java::math::BigInteger * generateRandomPrime(jint, jint, ::java::math::BigInteger *);
  static ::java::math::BigInteger * generateRandomPrime(::java::math::BigInteger *, ::java::math::BigInteger *, jint, jint, ::java::math::BigInteger *);
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_util_Prime__
