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

#ifndef __java_security_interfaces_RSAPrivateCrtKey__
#define __java_security_interfaces_RSAPrivateCrtKey__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace math
    {
        class BigInteger;
    }
    namespace security
    {
      namespace interfaces
      {
          class RSAPrivateCrtKey;
      }
    }
  }
}

class java::security::interfaces::RSAPrivateCrtKey : public ::java::lang::Object
{

public:
  virtual ::java::math::BigInteger * getPublicExponent() = 0;
  virtual ::java::math::BigInteger * getPrimeP() = 0;
  virtual ::java::math::BigInteger * getPrimeQ() = 0;
  virtual ::java::math::BigInteger * getPrimeExponentP() = 0;
  virtual ::java::math::BigInteger * getPrimeExponentQ() = 0;
  virtual ::java::math::BigInteger * getCrtCoefficient() = 0;
  virtual ::java::math::BigInteger * getPrivateExponent() = 0;
  virtual ::java::lang::String * getAlgorithm() = 0;
  virtual ::java::lang::String * getFormat() = 0;
  virtual JArray< jbyte > * getEncoded() = 0;
  virtual ::java::math::BigInteger * getModulus() = 0;
  static const jlong serialVersionUID = -5682214253527700368LL;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_security_interfaces_RSAPrivateCrtKey__
