final class sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator implements sun.security.ssl.SSLPossessionGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator this
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/KrbKeyExchange$KrbPossessionGenerator;

  public sun.security.ssl.SSLPossession createPossession(sun.security.ssl.HandshakeContext);
    descriptor: (Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
         0: .line 56
            aconst_null
            astore 2 /* serviceCreds */
        start local 2 // java.lang.Object serviceCreds
         1: .line 58
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.acc:Ljava/security/AccessControlContext;
            astore 3 /* acc */
        start local 3 // java.security.AccessControlContext acc
         2: .line 61
            new sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator$1
            dup
            aload 0 /* this */
            aload 3 /* acc */
            invokespecial sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator$1.<init>:(Lsun/security/ssl/KrbKeyExchange$KrbPossessionGenerator;Ljava/security/AccessControlContext;)V
         3: .line 59
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            astore 2 /* serviceCreds */
         4: .line 70
            aload 2 /* serviceCreds */
            ifnull 29
         5: .line 71
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 7
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 72
            ldc "Using Kerberos creds"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 75
      StackMap locals: java.lang.Object java.security.AccessControlContext
      StackMap stack:
            aload 2 /* serviceCreds */
            invokestatic sun.security.ssl.Krb5Helper.getServerPrincipalName:(Ljava/lang/Object;)Ljava/lang/String;
         8: .line 74
            astore 4 /* serverPrincipal */
        start local 4 // java.lang.String serverPrincipal
         9: .line 76
            aload 4 /* serverPrincipal */
            ifnull 22
        10: .line 80
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 5 /* sm */
        start local 5 // java.lang.SecurityManager sm
        11: .line 82
            aload 5 /* sm */
            ifnull 22
        12: .line 84
            aload 5 /* sm */
        13: .line 85
            aload 4 /* serverPrincipal */
            ldc "accept"
        14: .line 84
            invokestatic sun.security.ssl.Krb5Helper.getServicePermission:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
        15: .line 85
            aload 3 /* acc */
        16: .line 84
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
        17: .line 87
            goto 22
      StackMap locals: sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator sun.security.ssl.HandshakeContext java.lang.Object java.security.AccessControlContext java.lang.String java.lang.SecurityManager
      StackMap stack: java.lang.SecurityException
        18: pop
        19: .line 89
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 21
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 21
        20: .line 90
            ldc "Permission to access Kerberos secret key denied"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        21: .line 93
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.lang.SecurityManager sm
        22: .line 96
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.KrbKeyExchange$KrbServiceCreds
            dup
            aload 2 /* serviceCreds */
            invokespecial sun.security.ssl.KrbKeyExchange$KrbServiceCreds.<init>:(Ljava/lang/Object;)V
        23: areturn
        end local 4 // java.lang.String serverPrincipal
        end local 3 // java.security.AccessControlContext acc
        24: .line 98
      StackMap locals: sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator sun.security.ssl.HandshakeContext java.lang.Object
      StackMap stack: java.security.PrivilegedActionException
            astore 3 /* e */
        start local 3 // java.security.PrivilegedActionException e
        25: .line 100
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 29
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 29
        26: .line 101
            new java.lang.StringBuilder
            dup
            ldc "Attempt to obtain Kerberos key failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 102
            aload 3 /* e */
            invokevirtual java.security.PrivilegedActionException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 101
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 3 // java.security.PrivilegedActionException e
        29: .line 105
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object serviceCreds
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   30     0              this  Lsun/security/ssl/KrbKeyExchange$KrbPossessionGenerator;
            0   30     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            1   30     2      serviceCreds  Ljava/lang/Object;
            2   24     3               acc  Ljava/security/AccessControlContext;
            9   24     4   serverPrincipal  Ljava/lang/String;
           11   22     5                sm  Ljava/lang/SecurityManager;
           25   29     3                 e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          11    17      18  Class java.lang.SecurityException
           1    21      24  Class java.security.PrivilegedActionException
          22    23      24  Class java.security.PrivilegedActionException
    MethodParameters:
                  Name  Flags
      handshakeContext  
}
SourceFile: "KrbKeyExchange.java"
NestHost: sun.security.ssl.KrbKeyExchange
InnerClasses:
  final KrbPossessionGenerator = sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator of sun.security.ssl.KrbKeyExchange
  sun.security.ssl.KrbKeyExchange$KrbPossessionGenerator$1
  final KrbServiceCreds = sun.security.ssl.KrbKeyExchange$KrbServiceCreds of sun.security.ssl.KrbKeyExchange