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

#ifndef __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__
#define __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__

#pragma interface

#include <gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace jce
        {
          namespace cipher
          {
              class AESKeyWrapSpi;
          }
        }
      }
    }
  }
}

class gnu::javax::crypto::jce::cipher::AESKeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::KeyWrappingAlgorithmAdapter
{

public: // actually protected
  AESKeyWrapSpi(::java::lang::String *, jint, ::java::lang::String *);
  virtual jint getOutputSizeForWrap(jint);
  virtual jint getOutputSizeForUnwrap(jint);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__
