final class com.sun.security.sasl.ntlm.NTLMClient implements javax.security.sasl.SaslClient
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.security.sasl.ntlm.NTLMClient
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_RANDOM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.sun.security.sasl.ntlm.random"
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 final com.sun.security.ntlm.Client client;
descriptor: Lcom/sun/security/ntlm/Client;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String mech;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int step;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String, 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/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)V
flags: (0x0000)
Code:
stack=8, locals=15, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.sun.security.sasl.ntlm.NTLMClient.step:I
2: aload 0
aload 1
putfield com.sun.security.sasl.ntlm.NTLMClient.mech:Ljava/lang/String;
3: aconst_null
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aconst_null
astore 9
start local 9 6: aload 5
ifnull 13
7: aload 5
ldc "javax.security.sasl.qop"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 8: aload 10
ifnull 10
aload 10
ldc "auth"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
9: new javax.security.sasl.SaslException
dup
ldc "NTLM only support auth"
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: com.sun.security.sasl.ntlm.NTLMClient java.lang.String java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.util.Random java.lang.String java.lang.String
StackMap stack:
aload 5
ldc "com.sun.security.sasl.ntlm.version"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
11: aload 5
ldc "com.sun.security.sasl.ntlm.random"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Random
astore 8
12: aload 5
ldc "com.sun.security.sasl.ntlm.hostname"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
end local 10 13: StackMap locals:
StackMap stack:
aload 0
aload 8
ifnull 14
aload 8
goto 15
StackMap locals:
StackMap stack: com.sun.security.sasl.ntlm.NTLMClient
14: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
StackMap locals: com.sun.security.sasl.ntlm.NTLMClient java.lang.String java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.util.Random java.lang.String
StackMap stack: com.sun.security.sasl.ntlm.NTLMClient java.util.Random
15: putfield com.sun.security.sasl.ntlm.NTLMClient.random:Ljava/util/Random;
16: aload 7
ifnonnull 18
17: ldc "ntlm.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 7
18: StackMap locals:
StackMap stack:
aload 4
ifnull 20
aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 20
19: new javax.security.sasl.RealmCallback
dup
ldc "Realm: "
aload 4
invokespecial javax.security.sasl.RealmCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
goto 21
20: StackMap locals:
StackMap stack:
new javax.security.sasl.RealmCallback
dup
ldc "Realm: "
invokespecial javax.security.sasl.RealmCallback.<init>:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack: javax.security.sasl.RealmCallback
astore 10
start local 10 22: aload 2
ifnull 24
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifne 24
23: new javax.security.auth.callback.NameCallback
dup
ldc "User name: "
aload 2
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
goto 25
24: StackMap locals: javax.security.sasl.RealmCallback
StackMap stack:
new javax.security.auth.callback.NameCallback
dup
ldc "User name: "
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
25: StackMap locals:
StackMap stack: javax.security.auth.callback.NameCallback
astore 11
start local 11 26: new javax.security.auth.callback.PasswordCallback
dup
ldc "Password: "
iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
27: astore 12
start local 12 28: aload 6
iconst_3
anewarray javax.security.auth.callback.Callback
dup
iconst_0
aload 10
aastore
dup
iconst_1
aload 11
aastore
dup
iconst_2
aload 12
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
29: goto 38
StackMap locals: com.sun.security.sasl.ntlm.NTLMClient java.lang.String java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.util.Random java.lang.String javax.security.sasl.RealmCallback javax.security.auth.callback.NameCallback javax.security.auth.callback.PasswordCallback
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
30: astore 13
start local 13 31: new javax.security.sasl.SaslException
dup
ldc "NTLM: Cannot perform callback to acquire realm, username or password"
32: aload 13
33: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 13 34: StackMap locals:
StackMap stack: java.io.IOException
astore 13
start local 13 35: new javax.security.sasl.SaslException
dup
36: ldc "NTLM: Error acquiring realm, username or password"
aload 13
37: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 13 38: StackMap locals:
StackMap stack:
aload 9
ifnonnull 43
39: invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
astore 9
40: goto 43
StackMap locals:
StackMap stack: java.net.UnknownHostException
41: pop
42: ldc "localhost"
astore 9
43: StackMap locals:
StackMap stack:
aload 11
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
astore 13
start local 13 44: aload 13
ifnonnull 46
45: aload 2
astore 13
46: StackMap locals: java.lang.String
StackMap stack:
aload 10
invokevirtual javax.security.sasl.RealmCallback.getText:()Ljava/lang/String;
astore 14
start local 14 47: aload 14
ifnonnull 49
48: aload 4
astore 14
49: StackMap locals: java.lang.String
StackMap stack:
aload 0
new com.sun.security.ntlm.Client
dup
aload 7
aload 9
50: aload 13
51: aload 14
52: aload 12
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
invokespecial com.sun.security.ntlm.Client.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[C)V
53: putfield com.sun.security.sasl.ntlm.NTLMClient.client:Lcom/sun/security/ntlm/Client;
end local 14 end local 13 54: goto 59
StackMap locals: com.sun.security.sasl.ntlm.NTLMClient java.lang.String java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler java.lang.String java.util.Random java.lang.String javax.security.sasl.RealmCallback javax.security.auth.callback.NameCallback javax.security.auth.callback.PasswordCallback
StackMap stack: com.sun.security.ntlm.NTLMException
55: astore 13
start local 13 56: new javax.security.sasl.SaslException
dup
57: ldc "NTLM: client creation failure"
aload 13
58: invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 13 59: StackMap locals:
StackMap stack:
return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
0 60 1 mech Ljava/lang/String;
0 60 2 authzid Ljava/lang/String;
0 60 3 protocol Ljava/lang/String;
0 60 4 serverName Ljava/lang/String;
0 60 5 props Ljava/util/Map<Ljava/lang/String;*>;
0 60 6 cbh Ljavax/security/auth/callback/CallbackHandler;
4 60 7 version Ljava/lang/String;
5 60 8 rtmp Ljava/util/Random;
6 60 9 hostname Ljava/lang/String;
8 13 10 qop Ljava/lang/String;
22 60 10 dcb Ljavax/security/sasl/RealmCallback;
26 60 11 ncb Ljavax/security/auth/callback/NameCallback;
28 60 12 pcb Ljavax/security/auth/callback/PasswordCallback;
31 34 13 e Ljavax/security/auth/callback/UnsupportedCallbackException;
35 38 13 e Ljava/io/IOException;
44 54 13 name Ljava/lang/String;
47 54 14 domain Ljava/lang/String;
56 59 13 ne Lcom/sun/security/ntlm/NTLMException;
Exception table:
from to target type
28 29 30 Class javax.security.auth.callback.UnsupportedCallbackException
28 29 34 Class java.io.IOException
39 40 41 Class java.net.UnknownHostException
43 54 55 Class com.sun.security.ntlm.NTLMException
Exceptions:
throws javax.security.sasl.SaslException
Signature: (Ljava/lang/String;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
authzid
protocol
serverName
props
cbh
public java.lang.String getMechanismName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.mech:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
public boolean isComplete();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.step:I
iconst_2
if_icmplt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
public byte[] unwrap(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.IllegalStateException
dup
ldc "Not supported."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
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 start local 1 start local 2 start local 3 0: new java.lang.IllegalStateException
dup
ldc "Not supported."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
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 start local 1 0: aload 0
invokevirtual com.sun.security.sasl.ntlm.NTLMClient.isComplete:()Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "authentication not complete"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-1548608927: 3
11529379: 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.domain"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
5: StackMap locals:
StackMap stack:
ldc "auth"
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.client:Lcom/sun/security/ntlm/Client;
invokevirtual com.sun.security.ntlm.Client.getDomain:()Ljava/lang/String;
areturn
7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
0 8 1 propName Ljava/lang/String;
MethodParameters:
Name Flags
propName
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.client:Lcom/sun/security/ntlm/Client;
invokevirtual com.sun.security.ntlm.Client.dispose:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
Exceptions:
throws javax.security.sasl.SaslException
public boolean hasInitialResponse();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
public byte[] evaluateChallenge(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield com.sun.security.sasl.ntlm.NTLMClient.step:I
iconst_1
iadd
putfield com.sun.security.sasl.ntlm.NTLMClient.step:I
1: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.step:I
iconst_1
if_icmpne 3
2: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.client:Lcom/sun/security/ntlm/Client;
invokevirtual com.sun.security.ntlm.Client.type1:()[B
areturn
3: StackMap locals:
StackMap stack:
bipush 8
newarray 8
astore 2
start local 2 4: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.random:Ljava/util/Random;
aload 2
invokevirtual java.util.Random.nextBytes:([B)V
5: aload 0
getfield com.sun.security.sasl.ntlm.NTLMClient.client:Lcom/sun/security/ntlm/Client;
aload 1
aload 2
invokevirtual com.sun.security.ntlm.Client.type3:([B[B)[B
6: areturn
end local 2 7: StackMap locals:
StackMap stack: com.sun.security.ntlm.NTLMException
astore 2
start local 2 8: new javax.security.sasl.SaslException
dup
ldc "Type3 creation failed"
aload 2
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/security/sasl/ntlm/NTLMClient;
0 9 1 challenge [B
4 7 2 nonce [B
8 9 2 ex Lcom/sun/security/ntlm/NTLMException;
Exception table:
from to target type
3 6 7 Class com.sun.security.ntlm.NTLMException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
challenge
}
SourceFile: "NTLMClient.java"