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

#ifndef __gnu_javax_crypto_jce_mac_OMacImpl__
#define __gnu_javax_crypto_jce_mac_OMacImpl__

#pragma interface

#include <gnu/javax/crypto/jce/mac/MacAdapter.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace jce
        {
          namespace mac
          {
              class OMacImpl;
          }
        }
      }
    }
  }
}

class gnu::javax::crypto::jce::mac::OMacImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter
{

public: // actually protected
  OMacImpl(::java::lang::String *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_jce_mac_OMacImpl__
