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

#ifndef __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__
#define __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__

#pragma interface

#include <gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace jce
        {
          namespace key
          {
              class DESSecretKeyFactoryImpl;
          }
        }
      }
    }
  }
  namespace java
  {
    namespace security
    {
      namespace spec
      {
          class KeySpec;
      }
    }
  }
  namespace javax
  {
    namespace crypto
    {
        class SecretKey;
    }
  }
}

class gnu::javax::crypto::jce::key::DESSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl
{

public:
  DESSecretKeyFactoryImpl();
public: // actually protected
  virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *);
  virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__
