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

#ifndef __java_security_MessageDigestSpi__
#define __java_security_MessageDigestSpi__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace nio
    {
        class ByteBuffer;
    }
    namespace security
    {
        class MessageDigestSpi;
    }
  }
}

class java::security::MessageDigestSpi : public ::java::lang::Object
{

public:
  MessageDigestSpi();
public: // actually protected
  virtual jint engineGetDigestLength();
  virtual void engineUpdate(jbyte) = 0;
  virtual void engineUpdate(JArray< jbyte > *, jint, jint) = 0;
  virtual void engineUpdate(::java::nio::ByteBuffer *);
  virtual JArray< jbyte > * engineDigest() = 0;
  virtual jint engineDigest(JArray< jbyte > *, jint, jint);
  virtual void engineReset() = 0;
public:
  virtual ::java::lang::Object * clone();
  static ::java::lang::Class class$;
};

#endif // __java_security_MessageDigestSpi__
