public final class sun.security.jgss.krb5.Krb5MechFactory implements sun.security.jgss.spi.MechanismFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.jgss.krb5.Krb5MechFactory
  super_class: java.lang.Object
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.security.Provider PROVIDER;
    descriptor: Ljava/security/Provider;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.ietf.jgss.Oid GSS_KRB5_MECH_OID;
    descriptor: Lorg/ietf/jgss/Oid;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.ietf.jgss.Oid NT_GSS_KRB5_PRINCIPAL;
    descriptor: Lorg/ietf/jgss/Oid;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static org.ietf.jgss.Oid[] nameTypes;
    descriptor: [Lorg/ietf/jgss/Oid;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final sun.security.jgss.GSSCaller caller;
    descriptor: Lsun/security/jgss/GSSCaller;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 46
            getstatic sun.security.jgss.krb5.Krb5Util.DEBUG:Z
            putstatic sun.security.jgss.krb5.Krb5MechFactory.DEBUG:Z
         1: .line 49
            new sun.security.jgss.SunProvider
            dup
            invokespecial sun.security.jgss.SunProvider.<init>:()V
         2: .line 48
            putstatic sun.security.jgss.krb5.Krb5MechFactory.PROVIDER:Ljava/security/Provider;
         3: .line 52
            ldc "1.2.840.113554.1.2.2"
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.createOid:(Ljava/lang/String;)Lorg/ietf/jgss/Oid;
         4: .line 51
            putstatic sun.security.jgss.krb5.Krb5MechFactory.GSS_KRB5_MECH_OID:Lorg/ietf/jgss/Oid;
         5: .line 55
            ldc "1.2.840.113554.1.2.2.1"
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.createOid:(Ljava/lang/String;)Lorg/ietf/jgss/Oid;
         6: .line 54
            putstatic sun.security.jgss.krb5.Krb5MechFactory.NT_GSS_KRB5_PRINCIPAL:Lorg/ietf/jgss/Oid;
         7: .line 58
            iconst_4
            anewarray org.ietf.jgss.Oid
            dup
            iconst_0
            getstatic org.ietf.jgss.GSSName.NT_USER_NAME:Lorg/ietf/jgss/Oid;
            aastore
            dup
            iconst_1
         8: .line 59
            getstatic org.ietf.jgss.GSSName.NT_HOSTBASED_SERVICE:Lorg/ietf/jgss/Oid;
            aastore
            dup
            iconst_2
         9: .line 60
            getstatic org.ietf.jgss.GSSName.NT_EXPORT_NAME:Lorg/ietf/jgss/Oid;
            aastore
            dup
            iconst_3
        10: .line 61
            getstatic sun.security.jgss.krb5.Krb5MechFactory.NT_GSS_KRB5_PRINCIPAL:Lorg/ietf/jgss/Oid;
            aastore
        11: .line 57
            putstatic sun.security.jgss.krb5.Krb5MechFactory.nameTypes:[Lorg/ietf/jgss/Oid;
        12: .line 61
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static sun.security.jgss.krb5.Krb5CredElement getCredFromSubject(sun.security.jgss.spi.GSSNameSpi, boolean);
    descriptor: (Lsun/security/jgss/spi/GSSNameSpi;Z)Lsun/security/jgss/krb5/Krb5CredElement;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.jgss.spi.GSSNameSpi name
        start local 1 // boolean initiate
         0: .line 69
            aload 0 /* name */
            getstatic sun.security.jgss.krb5.Krb5MechFactory.GSS_KRB5_MECH_OID:Lorg/ietf/jgss/Oid;
            iload 1 /* initiate */
         1: .line 70
            iload 1 /* initiate */
            ifeq 3
         2: .line 71
            ldc Lsun/security/jgss/krb5/Krb5InitCredential;
            goto 4
         3: .line 72
      StackMap locals: sun.security.jgss.spi.GSSNameSpi int
      StackMap stack: sun.security.jgss.spi.GSSNameSpi org.ietf.jgss.Oid int
            ldc Lsun/security/jgss/krb5/Krb5AcceptCredential;
         4: .line 69
      StackMap locals: sun.security.jgss.spi.GSSNameSpi int
      StackMap stack: sun.security.jgss.spi.GSSNameSpi org.ietf.jgss.Oid int java.lang.Class
            invokestatic sun.security.jgss.GSSUtil.searchSubject:(Lsun/security/jgss/spi/GSSNameSpi;Lorg/ietf/jgss/Oid;ZLjava/lang/Class;)Ljava/util/Vector;
         5: .line 68
            astore 2 /* creds */
        start local 2 // java.util.Vector creds
         6: .line 74
            aload 2 /* creds */
            ifnull 7
            aload 2 /* creds */
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 8
         7: .line 75
      StackMap locals: java.util.Vector
      StackMap stack:
            aconst_null
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 2 /* creds */
            invokevirtual java.util.Vector.firstElement:()Ljava/lang/Object;
            checkcast sun.security.jgss.krb5.Krb5CredElement
         9: .line 74
      StackMap locals:
      StackMap stack: sun.security.jgss.krb5.Krb5CredElement
            astore 3 /* result */
        start local 3 // sun.security.jgss.krb5.Krb5CredElement result
        10: .line 78
            aload 3 /* result */
            ifnull 16
        11: .line 79
            iload 1 /* initiate */
            ifeq 14
        12: .line 80
            aload 3 /* result */
            invokeinterface sun.security.jgss.krb5.Krb5CredElement.getName:()Lsun/security/jgss/spi/GSSNameSpi;
            checkcast sun.security.jgss.krb5.Krb5NameElement
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.checkInitCredPermission:(Lsun/security/jgss/krb5/Krb5NameElement;)V
        13: .line 81
            goto 16
        14: .line 83
      StackMap locals: sun.security.jgss.krb5.Krb5CredElement
      StackMap stack:
            aload 3 /* result */
            invokeinterface sun.security.jgss.krb5.Krb5CredElement.getName:()Lsun/security/jgss/spi/GSSNameSpi;
            checkcast sun.security.jgss.krb5.Krb5NameElement
            aload 0 /* name */
        15: .line 82
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.checkAcceptCredPermission:(Lsun/security/jgss/krb5/Krb5NameElement;Lsun/security/jgss/spi/GSSNameSpi;)V
        16: .line 86
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // sun.security.jgss.krb5.Krb5CredElement result
        end local 2 // java.util.Vector creds
        end local 1 // boolean initiate
        end local 0 // sun.security.jgss.spi.GSSNameSpi name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      name  Lsun/security/jgss/spi/GSSNameSpi;
            0   17     1  initiate  Z
            6   17     2     creds  Ljava/util/Vector<Lsun/security/jgss/krb5/Krb5CredElement;>;
           10   17     3    result  Lsun/security/jgss/krb5/Krb5CredElement;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
          Name  Flags
      name      
      initiate  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
         0: .line 90
            aload 0 /* this */
            getstatic sun.security.jgss.GSSCaller.CALLER_UNKNOWN:Lsun/security/jgss/GSSCaller;
            invokespecial sun.security.jgss.krb5.Krb5MechFactory.<init>:(Lsun/security/jgss/GSSCaller;)V
         1: .line 91
            return
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/jgss/krb5/Krb5MechFactory;

  public void <init>(sun.security.jgss.GSSCaller);
    descriptor: (Lsun/security/jgss/GSSCaller;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // sun.security.jgss.GSSCaller caller
         0: .line 93
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 94
            aload 0 /* this */
            aload 1 /* caller */
            putfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
         2: .line 95
            return
        end local 1 // sun.security.jgss.GSSCaller caller
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0    3     1  caller  Lsun/security/jgss/GSSCaller;
    MethodParameters:
        Name  Flags
      caller  

  public sun.security.jgss.spi.GSSNameSpi getNameElement(java.lang.String, org.ietf.jgss.Oid);
    descriptor: (Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lsun/security/jgss/spi/GSSNameSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // java.lang.String nameStr
        start local 2 // org.ietf.jgss.Oid nameType
         0: .line 99
            aload 1 /* nameStr */
            aload 2 /* nameType */
            invokestatic sun.security.jgss.krb5.Krb5NameElement.getInstance:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lsun/security/jgss/krb5/Krb5NameElement;
            areturn
        end local 2 // org.ietf.jgss.Oid nameType
        end local 1 // java.lang.String nameStr
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0    1     1   nameStr  Ljava/lang/String;
            0    1     2  nameType  Lorg/ietf/jgss/Oid;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
          Name  Flags
      nameStr   
      nameType  

  public sun.security.jgss.spi.GSSNameSpi getNameElement(byte[], org.ietf.jgss.Oid);
    descriptor: ([BLorg/ietf/jgss/Oid;)Lsun/security/jgss/spi/GSSNameSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // byte[] name
        start local 2 // org.ietf.jgss.Oid nameType
         0: .line 107
            new java.lang.String
            dup
            aload 1 /* name */
            invokespecial java.lang.String.<init>:([B)V
            aload 2 /* nameType */
            invokestatic sun.security.jgss.krb5.Krb5NameElement.getInstance:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lsun/security/jgss/krb5/Krb5NameElement;
            areturn
        end local 2 // org.ietf.jgss.Oid nameType
        end local 1 // byte[] name
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0    1     1      name  [B
            0    1     2  nameType  Lorg/ietf/jgss/Oid;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
          Name  Flags
      name      
      nameType  

  public sun.security.jgss.spi.GSSCredentialSpi getCredentialElement(sun.security.jgss.spi.GSSNameSpi, int, int, int);
    descriptor: (Lsun/security/jgss/spi/GSSNameSpi;III)Lsun/security/jgss/spi/GSSCredentialSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // sun.security.jgss.spi.GSSNameSpi name
        start local 2 // int initLifetime
        start local 3 // int acceptLifetime
        start local 4 // int usage
         0: .line 114
            aload 1 /* name */
            ifnull 4
            aload 1 /* name */
            instanceof sun.security.jgss.krb5.Krb5NameElement
            ifne 4
         1: .line 115
            aload 1 /* name */
            invokeinterface sun.security.jgss.spi.GSSNameSpi.toString:()Ljava/lang/String;
         2: .line 116
            aload 1 /* name */
            invokeinterface sun.security.jgss.spi.GSSNameSpi.getStringNameType:()Lorg/ietf/jgss/Oid;
         3: .line 115
            invokestatic sun.security.jgss.krb5.Krb5NameElement.getInstance:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lsun/security/jgss/krb5/Krb5NameElement;
            astore 1 /* name */
         4: .line 120
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iload 4 /* usage */
            iconst_2
            if_icmpeq 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: sun.security.jgss.spi.GSSNameSpi
         5: iconst_0
         6: .line 119
      StackMap locals: sun.security.jgss.krb5.Krb5MechFactory sun.security.jgss.spi.GSSNameSpi int int int
      StackMap stack: sun.security.jgss.spi.GSSNameSpi int
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.getCredFromSubject:(Lsun/security/jgss/spi/GSSNameSpi;Z)Lsun/security/jgss/krb5/Krb5CredElement;
            astore 5 /* credElement */
        start local 5 // sun.security.jgss.krb5.Krb5CredElement credElement
         7: .line 122
            aload 5 /* credElement */
            ifnonnull 28
         8: .line 123
            iload 4 /* usage */
            iconst_1
            if_icmpeq 10
         9: .line 124
            iload 4 /* usage */
            ifne 17
        10: .line 126
      StackMap locals: sun.security.jgss.krb5.Krb5CredElement
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
            aload 1 /* name */
            checkcast sun.security.jgss.krb5.Krb5NameElement
            iload 2 /* initLifetime */
        11: .line 125
            invokestatic sun.security.jgss.krb5.Krb5InitCredential.getInstance:(Lsun/security/jgss/GSSCaller;Lsun/security/jgss/krb5/Krb5NameElement;I)Lsun/security/jgss/krb5/Krb5InitCredential;
            astore 5 /* credElement */
        12: .line 128
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
            aload 5 /* credElement */
            checkcast sun.security.jgss.krb5.Krb5InitCredential
        13: .line 127
            invokestatic sun.security.jgss.krb5.Krb5ProxyCredential.tryImpersonation:(Lsun/security/jgss/GSSCaller;Lsun/security/jgss/krb5/Krb5InitCredential;)Lsun/security/jgss/krb5/Krb5CredElement;
            astore 5 /* credElement */
        14: .line 130
            aload 5 /* credElement */
            invokeinterface sun.security.jgss.krb5.Krb5CredElement.getName:()Lsun/security/jgss/spi/GSSNameSpi;
            checkcast sun.security.jgss.krb5.Krb5NameElement
        15: .line 129
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.checkInitCredPermission:(Lsun/security/jgss/krb5/Krb5NameElement;)V
        16: .line 131
            goto 28
      StackMap locals:
      StackMap stack:
        17: iload 4 /* usage */
            iconst_2
            if_icmpne 25
        18: .line 133
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
        19: .line 134
            aload 1 /* name */
            checkcast sun.security.jgss.krb5.Krb5NameElement
        20: .line 133
            invokestatic sun.security.jgss.krb5.Krb5AcceptCredential.getInstance:(Lsun/security/jgss/GSSCaller;Lsun/security/jgss/krb5/Krb5NameElement;)Lsun/security/jgss/krb5/Krb5AcceptCredential;
        21: .line 132
            astore 5 /* credElement */
        22: .line 136
            aload 5 /* credElement */
            invokeinterface sun.security.jgss.krb5.Krb5CredElement.getName:()Lsun/security/jgss/spi/GSSNameSpi;
            checkcast sun.security.jgss.krb5.Krb5NameElement
            aload 1 /* name */
        23: .line 135
            invokestatic sun.security.jgss.krb5.Krb5MechFactory.checkAcceptCredPermission:(Lsun/security/jgss/krb5/Krb5NameElement;Lsun/security/jgss/spi/GSSNameSpi;)V
        24: .line 137
            goto 28
        25: .line 138
      StackMap locals:
      StackMap stack:
            new org.ietf.jgss.GSSException
            dup
            bipush 11
            iconst_m1
        26: .line 139
            ldc "Unknown usage mode requested"
        27: .line 138
            invokespecial org.ietf.jgss.GSSException.<init>:(IILjava/lang/String;)V
            athrow
        28: .line 141
      StackMap locals:
      StackMap stack:
            aload 5 /* credElement */
            areturn
        end local 5 // sun.security.jgss.krb5.Krb5CredElement credElement
        end local 4 // int usage
        end local 3 // int acceptLifetime
        end local 2 // int initLifetime
        end local 1 // sun.security.jgss.spi.GSSNameSpi name
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0   29     1            name  Lsun/security/jgss/spi/GSSNameSpi;
            0   29     2    initLifetime  I
            0   29     3  acceptLifetime  I
            0   29     4           usage  I
            7   29     5     credElement  Lsun/security/jgss/krb5/Krb5CredElement;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
                Name  Flags
      name            
      initLifetime    
      acceptLifetime  
      usage           

  public static void checkInitCredPermission(sun.security.jgss.krb5.Krb5NameElement);
    descriptor: (Lsun/security/jgss/krb5/Krb5NameElement;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // sun.security.jgss.krb5.Krb5NameElement name
         0: .line 145
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 146
            aload 1 /* sm */
            ifnull 15
         2: .line 147
            aload 0 /* name */
            invokevirtual sun.security.jgss.krb5.Krb5NameElement.getKrb5PrincipalName:()Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getRealmAsString:()Ljava/lang/String;
            astore 2 /* realm */
        start local 2 // java.lang.String realm
         3: .line 149
            new java.lang.String
            dup
            new java.lang.StringBuilder
            dup
            ldc "krbtgt/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* realm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 64
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* realm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
         4: .line 148
            astore 3 /* tgsPrincipal */
        start local 3 // java.lang.String tgsPrincipal
         5: .line 151
            new javax.security.auth.kerberos.ServicePermission
            dup
            aload 3 /* tgsPrincipal */
            ldc "initiate"
            invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 150
            astore 4 /* perm */
        start local 4 // javax.security.auth.kerberos.ServicePermission perm
         7: .line 153
            aload 1 /* sm */
            aload 4 /* perm */
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         8: .line 154
            goto 15
      StackMap locals: sun.security.jgss.krb5.Krb5NameElement java.lang.SecurityManager java.lang.String java.lang.String javax.security.auth.kerberos.ServicePermission
      StackMap stack: java.lang.SecurityException
         9: astore 5 /* e */
        start local 5 // java.lang.SecurityException e
        10: .line 155
            getstatic sun.security.jgss.krb5.Krb5MechFactory.DEBUG:Z
            ifeq 14
        11: .line 156
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Permission to initiatekerberos init credential"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 157
            aload 5 /* e */
            invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 156
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 159
      StackMap locals: java.lang.SecurityException
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // java.lang.SecurityException e
        end local 4 // javax.security.auth.kerberos.ServicePermission perm
        end local 3 // java.lang.String tgsPrincipal
        end local 2 // java.lang.String realm
        15: .line 162
      StackMap locals: sun.security.jgss.krb5.Krb5NameElement java.lang.SecurityManager
      StackMap stack:
            return
        end local 1 // java.lang.SecurityManager sm
        end local 0 // sun.security.jgss.krb5.Krb5NameElement name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          name  Lsun/security/jgss/krb5/Krb5NameElement;
            1   16     1            sm  Ljava/lang/SecurityManager;
            3   15     2         realm  Ljava/lang/String;
            5   15     3  tgsPrincipal  Ljava/lang/String;
            7   15     4          perm  Ljavax/security/auth/kerberos/ServicePermission;
           10   15     5             e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.SecurityException
    MethodParameters:
      Name  Flags
      name  

  public static void checkAcceptCredPermission(sun.security.jgss.krb5.Krb5NameElement, sun.security.jgss.spi.GSSNameSpi);
    descriptor: (Lsun/security/jgss/krb5/Krb5NameElement;Lsun/security/jgss/spi/GSSNameSpi;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.jgss.krb5.Krb5NameElement name
        start local 1 // sun.security.jgss.spi.GSSNameSpi originalName
         0: .line 166
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         1: .line 167
            aload 2 /* sm */
            ifnull 11
            aload 0 /* name */
            ifnull 11
         2: .line 168
            new javax.security.auth.kerberos.ServicePermission
            dup
         3: .line 169
            aload 0 /* name */
            invokevirtual sun.security.jgss.krb5.Krb5NameElement.getKrb5PrincipalName:()Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getName:()Ljava/lang/String;
            ldc "accept"
         4: .line 168
            invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* perm */
        start local 3 // javax.security.auth.kerberos.ServicePermission perm
         5: .line 171
            aload 2 /* sm */
            aload 3 /* perm */
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         6: .line 172
            goto 11
      StackMap locals: sun.security.jgss.krb5.Krb5NameElement sun.security.jgss.spi.GSSNameSpi java.lang.SecurityManager javax.security.auth.kerberos.ServicePermission
      StackMap stack: java.lang.SecurityException
         7: astore 4 /* e */
        start local 4 // java.lang.SecurityException e
         8: .line 173
            aload 1 /* originalName */
            ifnonnull 10
         9: .line 175
            new java.lang.SecurityException
            dup
            ldc "No permission to acquire Kerberos accept credential"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            astore 4 /* e */
        10: .line 179
      StackMap locals: java.lang.SecurityException
      StackMap stack:
            aload 4 /* e */
            athrow
        end local 4 // java.lang.SecurityException e
        end local 3 // javax.security.auth.kerberos.ServicePermission perm
        11: .line 182
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.SecurityManager sm
        end local 1 // sun.security.jgss.spi.GSSNameSpi originalName
        end local 0 // sun.security.jgss.krb5.Krb5NameElement name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          name  Lsun/security/jgss/krb5/Krb5NameElement;
            0   12     1  originalName  Lsun/security/jgss/spi/GSSNameSpi;
            1   12     2            sm  Ljava/lang/SecurityManager;
            5   11     3          perm  Ljavax/security/auth/kerberos/ServicePermission;
            8   11     4             e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.SecurityException
    MethodParameters:
              Name  Flags
      name          
      originalName  

  public sun.security.jgss.spi.GSSContextSpi getMechanismContext(sun.security.jgss.spi.GSSNameSpi, sun.security.jgss.spi.GSSCredentialSpi, int);
    descriptor: (Lsun/security/jgss/spi/GSSNameSpi;Lsun/security/jgss/spi/GSSCredentialSpi;I)Lsun/security/jgss/spi/GSSContextSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // sun.security.jgss.spi.GSSNameSpi peer
        start local 2 // sun.security.jgss.spi.GSSCredentialSpi myInitiatorCred
        start local 3 // int lifetime
         0: .line 187
            aload 1 /* peer */
            ifnull 4
            aload 1 /* peer */
            instanceof sun.security.jgss.krb5.Krb5NameElement
            ifne 4
         1: .line 188
            aload 1 /* peer */
            invokeinterface sun.security.jgss.spi.GSSNameSpi.toString:()Ljava/lang/String;
         2: .line 189
            aload 1 /* peer */
            invokeinterface sun.security.jgss.spi.GSSNameSpi.getStringNameType:()Lorg/ietf/jgss/Oid;
         3: .line 188
            invokestatic sun.security.jgss.krb5.Krb5NameElement.getInstance:(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lsun/security/jgss/krb5/Krb5NameElement;
            astore 1 /* peer */
         4: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* myInitiatorCred */
            ifnonnull 8
         5: .line 193
            aload 0 /* this */
            aconst_null
            iload 3 /* lifetime */
            iconst_0
         6: .line 194
            iconst_1
         7: .line 193
            invokevirtual sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement:(Lsun/security/jgss/spi/GSSNameSpi;III)Lsun/security/jgss/spi/GSSCredentialSpi;
            astore 2 /* myInitiatorCred */
         8: .line 196
      StackMap locals:
      StackMap stack:
            new sun.security.jgss.krb5.Krb5Context
            dup
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
            aload 1 /* peer */
            checkcast sun.security.jgss.krb5.Krb5NameElement
         9: .line 197
            aload 2 /* myInitiatorCred */
            checkcast sun.security.jgss.krb5.Krb5CredElement
            iload 3 /* lifetime */
        10: .line 196
            invokespecial sun.security.jgss.krb5.Krb5Context.<init>:(Lsun/security/jgss/GSSCaller;Lsun/security/jgss/krb5/Krb5NameElement;Lsun/security/jgss/krb5/Krb5CredElement;I)V
            areturn
        end local 3 // int lifetime
        end local 2 // sun.security.jgss.spi.GSSCredentialSpi myInitiatorCred
        end local 1 // sun.security.jgss.spi.GSSNameSpi peer
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0   11     1             peer  Lsun/security/jgss/spi/GSSNameSpi;
            0   11     2  myInitiatorCred  Lsun/security/jgss/spi/GSSCredentialSpi;
            0   11     3         lifetime  I
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
                 Name  Flags
      peer             
      myInitiatorCred  
      lifetime         

  public sun.security.jgss.spi.GSSContextSpi getMechanismContext(sun.security.jgss.spi.GSSCredentialSpi);
    descriptor: (Lsun/security/jgss/spi/GSSCredentialSpi;)Lsun/security/jgss/spi/GSSContextSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // sun.security.jgss.spi.GSSCredentialSpi myAcceptorCred
         0: .line 203
            aload 1 /* myAcceptorCred */
            ifnonnull 4
         1: .line 204
            aload 0 /* this */
            aconst_null
            iconst_0
         2: .line 205
            ldc 2147483647
            iconst_2
         3: .line 204
            invokevirtual sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement:(Lsun/security/jgss/spi/GSSNameSpi;III)Lsun/security/jgss/spi/GSSCredentialSpi;
            astore 1 /* myAcceptorCred */
         4: .line 207
      StackMap locals:
      StackMap stack:
            new sun.security.jgss.krb5.Krb5Context
            dup
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
            aload 1 /* myAcceptorCred */
            checkcast sun.security.jgss.krb5.Krb5CredElement
            invokespecial sun.security.jgss.krb5.Krb5Context.<init>:(Lsun/security/jgss/GSSCaller;Lsun/security/jgss/krb5/Krb5CredElement;)V
            areturn
        end local 1 // sun.security.jgss.spi.GSSCredentialSpi myAcceptorCred
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0    5     1  myAcceptorCred  Lsun/security/jgss/spi/GSSCredentialSpi;
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
                Name  Flags
      myAcceptorCred  

  public sun.security.jgss.spi.GSSContextSpi getMechanismContext(byte[]);
    descriptor: ([B)Lsun/security/jgss/spi/GSSContextSpi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
        start local 1 // byte[] exportedContext
         0: .line 212
            new sun.security.jgss.krb5.Krb5Context
            dup
            aload 0 /* this */
            getfield sun.security.jgss.krb5.Krb5MechFactory.caller:Lsun/security/jgss/GSSCaller;
            aload 1 /* exportedContext */
            invokespecial sun.security.jgss.krb5.Krb5Context.<init>:(Lsun/security/jgss/GSSCaller;[B)V
            areturn
        end local 1 // byte[] exportedContext
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lsun/security/jgss/krb5/Krb5MechFactory;
            0    1     1  exportedContext  [B
    Exceptions:
      throws org.ietf.jgss.GSSException
    MethodParameters:
                 Name  Flags
      exportedContext  

  public final org.ietf.jgss.Oid getMechanismOid();
    descriptor: ()Lorg/ietf/jgss/Oid;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
         0: .line 217
            getstatic sun.security.jgss.krb5.Krb5MechFactory.GSS_KRB5_MECH_OID:Lorg/ietf/jgss/Oid;
            areturn
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/jgss/krb5/Krb5MechFactory;

  public java.security.Provider getProvider();
    descriptor: ()Ljava/security/Provider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
         0: .line 221
            getstatic sun.security.jgss.krb5.Krb5MechFactory.PROVIDER:Ljava/security/Provider;
            areturn
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/jgss/krb5/Krb5MechFactory;

  public org.ietf.jgss.Oid[] getNameTypes();
    descriptor: ()[Lorg/ietf/jgss/Oid;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.jgss.krb5.Krb5MechFactory this
         0: .line 226
            getstatic sun.security.jgss.krb5.Krb5MechFactory.nameTypes:[Lorg/ietf/jgss/Oid;
            areturn
        end local 0 // sun.security.jgss.krb5.Krb5MechFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/jgss/krb5/Krb5MechFactory;

  private static org.ietf.jgss.Oid createOid(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/ietf/jgss/Oid;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String oidStr
         0: .line 230
            aconst_null
            astore 1 /* retVal */
        start local 1 // org.ietf.jgss.Oid retVal
         1: .line 232
            new org.ietf.jgss.Oid
            dup
            aload 0 /* oidStr */
            invokespecial org.ietf.jgss.Oid.<init>:(Ljava/lang/String;)V
            astore 1 /* retVal */
         2: .line 233
            goto 4
      StackMap locals: java.lang.String org.ietf.jgss.Oid
      StackMap stack: org.ietf.jgss.GSSException
         3: pop
         4: .line 236
      StackMap locals:
      StackMap stack:
            aload 1 /* retVal */
            areturn
        end local 1 // org.ietf.jgss.Oid retVal
        end local 0 // java.lang.String oidStr
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  oidStr  Ljava/lang/String;
            1    5     1  retVal  Lorg/ietf/jgss/Oid;
      Exception table:
        from    to  target  type
           1     2       3  Class org.ietf.jgss.GSSException
    MethodParameters:
        Name  Flags
      oidStr  
}
SourceFile: "Krb5MechFactory.java"