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

#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5Client__
#define __gnu_javax_crypto_sasl_crammd5_CramMD5Client__

#pragma interface

#include <gnu/javax/crypto/sasl/ClientMechanism.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace sasl
        {
          namespace crammd5
          {
              class CramMD5Client;
          }
        }
      }
    }
  }
}

class gnu::javax::crypto::sasl::crammd5::CramMD5Client : public ::gnu::javax::crypto::sasl::ClientMechanism
{

public:
  CramMD5Client();
public: // actually protected
  virtual void initMechanism();
  virtual void resetMechanism();
public:
  virtual jboolean hasInitialResponse();
  virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *);
public: // actually protected
  virtual ::java::lang::String * getNegotiatedQOP();
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5Client__
