#
# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# ##########################################################
# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
# ##########################################################
#
module name java.security.jgss
header exports javax/security/auth/kerberos,org/ietf/jgss requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.naming\u0020;flags\u0020;0 provides interface\u0020;sun/security/ssl/ClientKeyExchangeService\u0020;impls\u0020;sun/security/krb5/internal/ssl/Krb5KeyExchangeService,interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/jgss/SunProvider flags 8000

class name javax/security/auth/kerberos/DelegationPermission
header extends java/security/BasicPermission implements java/io/Serializable flags 31
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/security/auth/kerberos/EncryptionKey
header extends java/lang/Object implements javax/crypto/SecretKey flags 31
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
method name <init> descriptor ([BI)V flags 1
method name getKeyType descriptor ()I flags 1
method name getAlgorithm descriptor ()Ljava/lang/String; flags 1
method name getFormat descriptor ()Ljava/lang/String; flags 1
method name getEncoded descriptor ()[B flags 1
method name destroy descriptor ()V thrownTypes javax/security/auth/DestroyFailedException flags 1
method name isDestroyed descriptor ()Z flags 1
method name toString descriptor ()Ljava/lang/String; flags 1
method name hashCode descriptor ()I flags 1
method name equals descriptor (Ljava/lang/Object;)Z flags 1

class name javax/security/auth/kerberos/KerberosCredMessage
header extends java/lang/Object implements javax/security/auth/Destroyable flags 31
innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
method name <init> descriptor (Ljavax/security/auth/kerberos/KerberosPrincipal;Ljavax/security/auth/kerberos/KerberosPrincipal;[B)V flags 1
method name getEncoded descriptor ()[B flags 1
method name getSender descriptor ()Ljavax/security/auth/kerberos/KerberosPrincipal; flags 1
method name getRecipient descriptor ()Ljavax/security/auth/kerberos/KerberosPrincipal; flags 1
method name destroy descriptor ()V flags 1
method name isDestroyed descriptor ()Z flags 1
method name toString descriptor ()Ljava/lang/String; flags 1
method name hashCode descriptor ()I flags 1
method name equals descriptor (Ljava/lang/Object;)Z flags 1

class name javax/security/auth/kerberos/KerberosKey
header extends java/lang/Object implements javax/crypto/SecretKey flags 21
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/security/auth/kerberos/KerberosPrincipal
header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 31
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/security/auth/kerberos/KerberosTicket
header extends java/lang/Object implements javax/security/auth/Destroyable,javax/security/auth/Refreshable,java/io/Serializable flags 21
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/security/auth/kerberos/KeyTab
header extends java/lang/Object flags 31
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/security/auth/kerberos/ServicePermission
header extends java/security/Permission implements java/io/Serializable flags 31
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name org/ietf/jgss/GSSException
header extends java/lang/Exception flags 21
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name org/ietf/jgss/Oid
header extends java/lang/Object flags 21
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

