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

#ifndef __java_security_spec_RSAPrivateKeySpec__
#define __java_security_spec_RSAPrivateKeySpec__

#pragma interface

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

class java::security::spec::RSAPrivateKeySpec : public ::java::lang::Object
{

public:
  RSAPrivateKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *);
  virtual ::java::math::BigInteger * getModulus();
  virtual ::java::math::BigInteger * getPrivateExponent();
private:
  ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) modulus;
  ::java::math::BigInteger * privateExponent;
public:
  static ::java::lang::Class class$;
};

#endif // __java_security_spec_RSAPrivateKeySpec__
