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

#ifndef __javax_crypto_SecretKeyFactorySpi__
#define __javax_crypto_SecretKeyFactorySpi__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
      namespace spec
      {
          class KeySpec;
      }
    }
  }
  namespace javax
  {
    namespace crypto
    {
        class SecretKey;
        class SecretKeyFactorySpi;
    }
  }
}

class javax::crypto::SecretKeyFactorySpi : public ::java::lang::Object
{

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

#endif // __javax_crypto_SecretKeyFactorySpi__
