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

#ifndef __javax_crypto_spec_DHPrivateKeySpec__
#define __javax_crypto_spec_DHPrivateKeySpec__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace math
    {
        class BigInteger;
    }
  }
  namespace javax
  {
    namespace crypto
    {
      namespace spec
      {
          class DHPrivateKeySpec;
      }
    }
  }
}

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

public:
  DHPrivateKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
  virtual ::java::math::BigInteger * getG();
  virtual ::java::math::BigInteger * getP();
  virtual ::java::math::BigInteger * getX();
private:
  ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) g;
  ::java::math::BigInteger * p;
  ::java::math::BigInteger * x;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_crypto_spec_DHPrivateKeySpec__
