final class com.sun.security.sasl.ntlm.NTLMServer implements javax.security.sasl.SaslServer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.security.sasl.ntlm.NTLMServer
  super_class: java.lang.Object
{
  private static final java.lang.String NTLM_VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.security.sasl.ntlm.version"

  private static final java.lang.String NTLM_DOMAIN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.security.sasl.ntlm.domain"

  private static final java.lang.String NTLM_HOSTNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.security.sasl.ntlm.hostname"

  private static final java.lang.String NTLM_RANDOM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.security.sasl.ntlm.random"

  private final java.util.Random random;
    descriptor: Ljava/util/Random;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.security.ntlm.Server server;
    descriptor: Lcom/sun/security/ntlm/Server;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private byte[] nonce;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int step;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String authzId;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.String mech;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
        start local 1 // java.lang.String mech
        start local 2 // java.lang.String protocol
        start local 3 // java.lang.String serverName
        start local 4 // java.util.Map props
        start local 5 // javax.security.auth.callback.CallbackHandler cbh
         0: .line 112
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.sasl.ntlm.NTLMServer.step:I
         2: .line 116
            aload 0 /* this */
            aload 1 /* mech */
            putfield com.sun.security.sasl.ntlm.NTLMServer.mech:Ljava/lang/String;
         3: .line 117
            aconst_null
            astore 6 /* version */
        start local 6 // java.lang.String version
         4: .line 118
            aconst_null
            astore 7 /* domain */
        start local 7 // java.lang.String domain
         5: .line 119
            aconst_null
            astore 8 /* rtmp */
        start local 8 // java.util.Random rtmp
         6: .line 121
            aload 4 /* props */
            ifnull 10
         7: .line 122
            aload 4 /* props */
            ldc "com.sun.security.sasl.ntlm.domain"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* domain */
         8: .line 123
            aload 4 /* props */
            ldc "com.sun.security.sasl.ntlm.version"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* version */
         9: .line 124
            aload 4 /* props */
            ldc "com.sun.security.sasl.ntlm.random"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Random
            astore 8 /* rtmp */
        10: .line 126
      StackMap locals: com.sun.security.sasl.ntlm.NTLMServer java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String java.util.Random
      StackMap stack:
            aload 0 /* this */
            aload 8 /* rtmp */
            ifnull 11
            aload 8 /* rtmp */
            goto 12
      StackMap locals:
      StackMap stack: com.sun.security.sasl.ntlm.NTLMServer
        11: new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
      StackMap locals: com.sun.security.sasl.ntlm.NTLMServer java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.lang.String java.util.Random
      StackMap stack: com.sun.security.sasl.ntlm.NTLMServer java.util.Random
        12: putfield com.sun.security.sasl.ntlm.NTLMServer.random:Ljava/util/Random;
        13: .line 128
            aload 6 /* version */
            ifnonnull 15
        14: .line 129
            ldc "ntlm.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* version */
        15: .line 131
      StackMap locals:
      StackMap stack:
            aload 7 /* domain */
            ifnonnull 17
        16: .line 132
            aload 3 /* serverName */
            astore 7 /* domain */
        17: .line 134
      StackMap locals:
      StackMap stack:
            aload 7 /* domain */
            ifnonnull 19
        18: .line 135
            new javax.security.sasl.SaslException
            dup
            ldc "Domain must be provided as the serverName argument or in props"
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.security.sasl.ntlm.NTLMServer$1
            dup
            aload 0 /* this */
            aload 6 /* version */
            aload 7 /* domain */
            aload 5 /* cbh */
            invokespecial com.sun.security.sasl.ntlm.NTLMServer$1.<init>:(Lcom/sun/security/sasl/ntlm/NTLMServer;Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;)V
            putfield com.sun.security.sasl.ntlm.NTLMServer.server:Lcom/sun/security/ntlm/Server;
        20: .line 162
            goto 25
      StackMap locals:
      StackMap stack: com.sun.security.ntlm.NTLMException
        21: astore 9 /* ne */
        start local 9 // com.sun.security.ntlm.NTLMException ne
        22: .line 163
            new javax.security.sasl.SaslException
            dup
        23: .line 164
            ldc "NTLM: server creation failure"
            aload 9 /* ne */
        24: .line 163
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // com.sun.security.ntlm.NTLMException ne
        25: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield com.sun.security.sasl.ntlm.NTLMServer.nonce:[B
        26: .line 167
            return
        end local 8 // java.util.Random rtmp
        end local 7 // java.lang.String domain
        end local 6 // java.lang.String version
        end local 5 // javax.security.auth.callback.CallbackHandler cbh
        end local 4 // java.util.Map props
        end local 3 // java.lang.String serverName
        end local 2 // java.lang.String protocol
        end local 1 // java.lang.String mech
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Lcom/sun/security/sasl/ntlm/NTLMServer;
            0   27     1        mech  Ljava/lang/String;
            0   27     2    protocol  Ljava/lang/String;
            0   27     3  serverName  Ljava/lang/String;
            0   27     4       props  Ljava/util/Map<Ljava/lang/String;*>;
            0   27     5         cbh  Ljavax/security/auth/callback/CallbackHandler;
            4   27     6     version  Ljava/lang/String;
            5   27     7      domain  Ljava/lang/String;
            6   27     8        rtmp  Ljava/util/Random;
           22   25     9          ne  Lcom/sun/security/ntlm/NTLMException;
      Exception table:
        from    to  target  type
          19    20      21  Class com.sun.security.ntlm.NTLMException
    Exceptions:
      throws javax.security.sasl.SaslException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/security/auth/callback/CallbackHandler;)V
    MethodParameters:
            Name  Flags
      mech        
      protocol    
      serverName  
      props       
      cbh         final

  public java.lang.String getMechanismName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
         0: .line 171
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.mech:Ljava/lang/String;
            areturn
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/security/sasl/ntlm/NTLMServer;

  public byte[] evaluateResponse(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
        start local 1 // byte[] response
         0: .line 177
            aload 0 /* this */
            dup
            getfield com.sun.security.sasl.ntlm.NTLMServer.step:I
            iconst_1
            iadd
            putfield com.sun.security.sasl.ntlm.NTLMServer.step:I
         1: .line 178
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.step:I
            iconst_1
            if_icmpne 5
         2: .line 179
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.random:Ljava/util/Random;
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.nonce:[B
            invokevirtual java.util.Random.nextBytes:([B)V
         3: .line 180
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.server:Lcom/sun/security/ntlm/Server;
            aload 1 /* response */
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.nonce:[B
            invokevirtual com.sun.security.ntlm.Server.type2:([B[B)[B
         4: areturn
         5: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.server:Lcom/sun/security/ntlm/Server;
            aload 1 /* response */
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.nonce:[B
            invokevirtual com.sun.security.ntlm.Server.verify:([B[B)[Ljava/lang/String;
            astore 2 /* out */
        start local 2 // java.lang.String[] out
         6: .line 183
            aload 0 /* this */
            aload 2 /* out */
            iconst_0
            aaload
            putfield com.sun.security.sasl.ntlm.NTLMServer.authzId:Ljava/lang/String;
         7: .line 184
            aload 0 /* this */
            aload 2 /* out */
            iconst_1
            aaload
            putfield com.sun.security.sasl.ntlm.NTLMServer.hostname:Ljava/lang/String;
         8: .line 185
            aconst_null
            areturn
        end local 2 // java.lang.String[] out
         9: .line 187
      StackMap locals:
      StackMap stack: com.sun.security.ntlm.NTLMException
            astore 2 /* ex */
        start local 2 // com.sun.security.ntlm.NTLMException ex
        10: .line 188
            new javax.security.sasl.SaslException
            dup
            ldc "NTLM: generate response failure"
            aload 2 /* ex */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // com.sun.security.ntlm.NTLMException ex
        end local 1 // byte[] response
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/sun/security/sasl/ntlm/NTLMServer;
            0   11     1  response  [B
            6    9     2       out  [Ljava/lang/String;
           10   11     2        ex  Lcom/sun/security/ntlm/NTLMException;
      Exception table:
        from    to  target  type
           0     4       9  Class com.sun.security.ntlm.NTLMException
           5     8       9  Class com.sun.security.ntlm.NTLMException
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
          Name  Flags
      response  

  public boolean isComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
         0: .line 194
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.step:I
            iconst_2
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/security/sasl/ntlm/NTLMServer;

  public java.lang.String getAuthorizationID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
         0: .line 199
            aload 0 /* this */
            invokevirtual com.sun.security.sasl.ntlm.NTLMServer.isComplete:()Z
            ifne 2
         1: .line 200
            new java.lang.IllegalStateException
            dup
            ldc "authentication not complete"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.authzId:Ljava/lang/String;
            areturn
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/security/sasl/ntlm/NTLMServer;

  public byte[] unwrap(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
        start local 1 // byte[] incoming
        start local 2 // int offset
        start local 3 // int len
         0: .line 208
            new java.lang.IllegalStateException
            dup
            ldc "Not supported yet."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] incoming
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/sun/security/sasl/ntlm/NTLMServer;
            0    1     1  incoming  [B
            0    1     2    offset  I
            0    1     3       len  I
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
          Name  Flags
      incoming  
      offset    
      len       

  public byte[] wrap(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
        start local 1 // byte[] outgoing
        start local 2 // int offset
        start local 3 // int len
         0: .line 214
            new java.lang.IllegalStateException
            dup
            ldc "Not supported yet."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] outgoing
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/sun/security/sasl/ntlm/NTLMServer;
            0    1     1  outgoing  [B
            0    1     2    offset  I
            0    1     3       len  I
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
          Name  Flags
      outgoing  
      offset    
      len       

  public java.lang.Object getNegotiatedProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
        start local 1 // java.lang.String propName
         0: .line 219
            aload 0 /* this */
            invokevirtual com.sun.security.sasl.ntlm.NTLMServer.isComplete:()Z
            ifne 2
         1: .line 220
            new java.lang.IllegalStateException
            dup
            ldc "authentication not complete"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
          -1548608927: 3
           1060567122: 4
              default: 7
          }
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 2
            ldc "javax.security.sasl.qop"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 7
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "com.sun.security.sasl.ntlm.hostname"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 7
         5: .line 224
      StackMap locals:
      StackMap stack:
            ldc "auth"
            areturn
         6: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.sasl.ntlm.NTLMServer.hostname:Ljava/lang/String;
            areturn
         7: .line 228
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String propName
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/sun/security/sasl/ntlm/NTLMServer;
            0    8     1  propName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      propName  

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.security.sasl.ntlm.NTLMServer this
         0: .line 234
            return
        end local 0 // com.sun.security.sasl.ntlm.NTLMServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/security/sasl/ntlm/NTLMServer;
    Exceptions:
      throws javax.security.sasl.SaslException
}
SourceFile: "NTLMServer.java"
NestMembers:
  com.sun.security.sasl.ntlm.NTLMServer$1
InnerClasses:
  com.sun.security.sasl.ntlm.NTLMServer$1