class org.apache.http.impl.auth.NTLMEngineImpl$Handle
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.http.impl.auth.NTLMEngineImpl$Handle
super_class: java.lang.Object
{
private final byte[] exportedSessionKey;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private byte[] signingKey;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] sealingKey;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private final javax.crypto.Cipher rc4;
descriptor: Ljavax/crypto/Cipher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.apache.http.impl.auth.NTLMEngineImpl$Mode mode;
descriptor: Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
flags: (0x0010) ACC_FINAL
private final boolean isConnection;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
int sequenceNumber;
descriptor: I
flags: (0x0000)
void <init>(byte[], org.apache.http.impl.auth.NTLMEngineImpl$Mode, boolean);
descriptor: ([BLorg/apache/http/impl/auth/NTLMEngineImpl$Mode;Z)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
2: aload 0
aload 1
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.exportedSessionKey:[B
3: aload 0
iload 3
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.isConnection:Z
4: aload 0
aload 2
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.mode:Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
5: invokestatic org.apache.http.impl.auth.NTLMEngineImpl.getMD5:()Ljava/security/MessageDigest;
astore 4
start local 4 6: invokestatic org.apache.http.impl.auth.NTLMEngineImpl.getMD5:()Ljava/security/MessageDigest;
astore 5
start local 5 7: aload 4
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
8: aload 5
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
9: aload 2
getstatic org.apache.http.impl.auth.NTLMEngineImpl$Mode.CLIENT:Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
if_acmpne 13
10: aload 4
getstatic org.apache.http.impl.auth.NTLMEngineImpl.SIGN_MAGIC_CLIENT:[B
invokevirtual java.security.MessageDigest.update:([B)V
11: aload 5
getstatic org.apache.http.impl.auth.NTLMEngineImpl.SEAL_MAGIC_CLIENT:[B
invokevirtual java.security.MessageDigest.update:([B)V
12: goto 15
13: StackMap locals: org.apache.http.impl.auth.NTLMEngineImpl$Handle byte[] org.apache.http.impl.auth.NTLMEngineImpl$Mode int java.security.MessageDigest java.security.MessageDigest
StackMap stack:
aload 4
getstatic org.apache.http.impl.auth.NTLMEngineImpl.SIGN_MAGIC_SERVER:[B
invokevirtual java.security.MessageDigest.update:([B)V
14: aload 5
getstatic org.apache.http.impl.auth.NTLMEngineImpl.SEAL_MAGIC_SERVER:[B
invokevirtual java.security.MessageDigest.update:([B)V
15: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual java.security.MessageDigest.digest:()[B
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.signingKey:[B
16: aload 0
aload 5
invokevirtual java.security.MessageDigest.digest:()[B
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
end local 5 end local 4 17: goto 20
18: StackMap locals: org.apache.http.impl.auth.NTLMEngineImpl$Handle byte[] org.apache.http.impl.auth.NTLMEngineImpl$Mode int
StackMap stack: java.lang.Exception
astore 4
start local 4 19: new org.apache.http.impl.auth.NTLMEngineException
dup
aload 4
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 4
invokespecial org.apache.http.impl.auth.NTLMEngineException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 20: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.initCipher:()Ljavax/crypto/Cipher;
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.rc4:Ljavax/crypto/Cipher;
21: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 22 1 exportedSessionKey [B
0 22 2 mode Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
0 22 3 isConnection Z
6 17 4 signMd5 Ljava/security/MessageDigest;
7 17 5 sealMd5 Ljava/security/MessageDigest;
19 20 4 e Ljava/lang/Exception;
Exception table:
from to target type
5 17 18 Class java.lang.Exception
Exceptions:
throws org.apache.http.impl.auth.NTLMEngineException
MethodParameters:
Name Flags
exportedSessionKey final
mode final
isConnection final
public byte[] getSigningKey();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.signingKey:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
public byte[] getSealingKey();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
private javax.crypto.Cipher initCipher();
descriptor: ()Ljavax/crypto/Cipher;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: ldc "RC4"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 1
start local 1 1: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.mode:Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
getstatic org.apache.http.impl.auth.NTLMEngineImpl$Mode.CLIENT:Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;
if_acmpne 4
2: aload 1
iconst_1
new javax.crypto.spec.SecretKeySpec
dup
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
ldc "RC4"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
3: goto 8
4: StackMap locals: javax.crypto.Cipher
StackMap stack:
aload 1
iconst_2
new javax.crypto.spec.SecretKeySpec
dup
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
ldc "RC4"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
5: goto 8
end local 1 6: StackMap locals: org.apache.http.impl.auth.NTLMEngineImpl$Handle
StackMap stack: java.lang.Exception
astore 2
start local 2 7: new org.apache.http.impl.auth.NTLMEngineException
dup
aload 2
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 2
invokespecial org.apache.http.impl.auth.NTLMEngineException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 start local 1 8: StackMap locals: javax.crypto.Cipher
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
1 6 1 cipher Ljavax/crypto/Cipher;
8 9 1 cipher Ljavax/crypto/Cipher;
7 8 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 5 6 Class java.lang.Exception
Exceptions:
throws org.apache.http.impl.auth.NTLMEngineException
private void advanceMessageSequence();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.isConnection:Z
ifne 8
1: invokestatic org.apache.http.impl.auth.NTLMEngineImpl.getMD5:()Ljava/security/MessageDigest;
astore 1
start local 1 2: aload 1
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
invokevirtual java.security.MessageDigest.update:([B)V
3: iconst_4
newarray 8
astore 2
start local 2 4: aload 2
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
iconst_0
invokestatic org.apache.http.impl.auth.NTLMEngineImpl.writeULong:([BII)V
5: aload 1
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
6: aload 0
aload 1
invokevirtual java.security.MessageDigest.digest:()[B
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sealingKey:[B
7: aload 0
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.initCipher:()Ljavax/crypto/Cipher;
pop
end local 2 end local 1 8: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
iconst_1
iadd
putfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
2 8 1 sealMd5 Ljava/security/MessageDigest;
4 8 2 seqNumBytes [B
Exceptions:
throws org.apache.http.impl.auth.NTLMEngineException
private byte[] encrypt(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.rc4:Ljavax/crypto/Cipher;
aload 1
invokevirtual javax.crypto.Cipher.update:([B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 1 1 data [B
MethodParameters:
Name Flags
data final
private byte[] decrypt(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.rc4:Ljavax/crypto/Cipher;
aload 1
invokevirtual javax.crypto.Cipher.update:([B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 1 1 data [B
MethodParameters:
Name Flags
data final
private byte[] computeSignature(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: bipush 16
newarray 8
astore 2
start local 2 1: aload 2
iconst_0
iconst_1
bastore
2: aload 2
iconst_1
iconst_0
bastore
3: aload 2
iconst_2
iconst_0
bastore
4: aload 2
iconst_3
iconst_0
bastore
5: new org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5
dup
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.signingKey:[B
invokespecial org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5.<init>:([B)V
astore 3
start local 3 6: aload 3
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
invokestatic org.apache.http.impl.auth.NTLMEngineImpl.encodeLong:(I)[B
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5.update:([B)V
7: aload 3
aload 1
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5.update:([B)V
8: aload 3
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5.getOutput:()[B
astore 4
start local 4 9: bipush 8
newarray 8
astore 5
start local 5 10: aload 4
iconst_0
aload 5
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 0
aload 5
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.encrypt:([B)[B
astore 6
start local 6 12: aload 6
iconst_0
aload 2
iconst_4
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 2
bipush 12
aload 0
getfield org.apache.http.impl.auth.NTLMEngineImpl$Handle.sequenceNumber:I
invokestatic org.apache.http.impl.auth.NTLMEngineImpl.encodeLong:([BII)V
14: aload 2
areturn
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 15 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 15 1 message [B
1 15 2 sig [B
6 15 3 hmacMD5 Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;
9 15 4 hmac [B
10 15 5 trimmedHmac [B
12 15 6 encryptedHmac [B
MethodParameters:
Name Flags
message final
private boolean validateSignature(byte[], byte[]);
descriptor: ([B[B)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.computeSignature:([B)[B
astore 3
start local 3 1: aload 1
aload 3
invokestatic java.util.Arrays.equals:([B[B)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 2 1 signature [B
0 2 2 message [B
1 2 3 computedSignature [B
MethodParameters:
Name Flags
signature final
message final
public byte[] signAndEncryptMessage(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.encrypt:([B)[B
astore 2
start local 2 1: aload 0
aload 1
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.computeSignature:([B)[B
astore 3
start local 3 2: aload 3
arraylength
aload 2
arraylength
iadd
newarray 8
astore 4
start local 4 3: aload 3
iconst_0
aload 4
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 2
iconst_0
aload 4
aload 3
arraylength
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.advanceMessageSequence:()V
6: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 7 1 cleartextMessage [B
1 7 2 encryptedMessage [B
2 7 3 signature [B
3 7 4 outMessage [B
Exceptions:
throws org.apache.http.impl.auth.NTLMEngineException
MethodParameters:
Name Flags
cleartextMessage final
public byte[] decryptAndVerifySignedMessage(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: bipush 16
newarray 8
astore 2
start local 2 1: aload 1
iconst_0
aload 2
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 1
arraylength
bipush 16
isub
newarray 8
astore 3
start local 3 3: aload 1
bipush 16
aload 3
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 0
aload 3
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.decrypt:([B)[B
astore 4
start local 4 5: aload 0
aload 2
aload 4
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.validateSignature:([B[B)Z
ifne 7
6: new org.apache.http.impl.auth.NTLMEngineException
dup
ldc "Wrong signature"
invokespecial org.apache.http.impl.auth.NTLMEngineException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: byte[] byte[] byte[]
StackMap stack:
aload 0
invokevirtual org.apache.http.impl.auth.NTLMEngineImpl$Handle.advanceMessageSequence:()V
8: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;
0 9 1 inMessage [B
1 9 2 signature [B
3 9 3 encryptedMessage [B
5 9 4 cleartextMessage [B
Exceptions:
throws org.apache.http.impl.auth.NTLMEngineException
MethodParameters:
Name Flags
inMessage final
}
SourceFile: "NTLMEngineImpl.java"
NestHost: org.apache.http.impl.auth.NTLMEngineImpl
InnerClasses:
HMACMD5 = org.apache.http.impl.auth.NTLMEngineImpl$HMACMD5 of org.apache.http.impl.auth.NTLMEngineImpl
Handle = org.apache.http.impl.auth.NTLMEngineImpl$Handle of org.apache.http.impl.auth.NTLMEngineImpl
final Mode = org.apache.http.impl.auth.NTLMEngineImpl$Mode of org.apache.http.impl.auth.NTLMEngineImpl