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

#ifndef __gnu_java_security_x509_ext_SubjectKeyIdentifier__
#define __gnu_java_security_x509_ext_SubjectKeyIdentifier__

#pragma interface

#include <gnu/java/security/x509/ext/Extension$Value.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
          class OID;
        namespace x509
        {
          namespace ext
          {
              class SubjectKeyIdentifier;
          }
        }
      }
    }
  }
}

class gnu::java::security::x509::ext::SubjectKeyIdentifier : public ::gnu::java::security::x509::ext::Extension$Value
{

public:
  SubjectKeyIdentifier(JArray< jbyte > *);
  virtual JArray< jbyte > * getKeyIdentifier();
  virtual ::java::lang::String * toString();
  static ::gnu::java::security::OID * ID;
private:
  JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) keyIdentifier;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_x509_ext_SubjectKeyIdentifier__
