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

#ifndef __gnu_javax_crypto_cipher_IBlockCipherSpi__
#define __gnu_javax_crypto_cipher_IBlockCipherSpi__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace cipher
        {
            class IBlockCipherSpi;
        }
      }
    }
  }
}

class gnu::javax::crypto::cipher::IBlockCipherSpi : public ::java::lang::Object
{

public:
  virtual ::java::util::Iterator * blockSizes() = 0;
  virtual ::java::util::Iterator * keySizes() = 0;
  virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint) = 0;
  virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0;
  virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0;
  virtual jboolean selfTest() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __gnu_javax_crypto_cipher_IBlockCipherSpi__
