class io.vertx.ext.mail.impl.sasl.AuthDigest extends io.vertx.ext.mail.impl.sasl.AuthBaseClass
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.vertx.ext.mail.impl.sasl.AuthDigest
super_class: io.vertx.ext.mail.impl.sasl.AuthBaseClass
{
private static final java.util.Map<java.lang.String, java.lang.String> NAME_MD_MAP;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private int counter;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.security.MessageDigest digest;
descriptor: Ljava/security/MessageDigest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.ext.auth.PRNG random;
descriptor: Lio/vertx/ext/auth/PRNG;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String serverResponse;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new io.vertx.ext.mail.impl.sasl.AuthDigest$1
dup
invokespecial io.vertx.ext.mail.impl.sasl.AuthDigest$1.<init>:()V
putstatic io.vertx.ext.mail.impl.sasl.AuthDigest.NAME_MD_MAP:Ljava/util/Map;
1: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.lang.String, io.vertx.ext.auth.PRNG, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Lio/vertx/ext/auth/PRNG;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 3
aload 4
invokespecial io.vertx.ext.mail.impl.sasl.AuthBaseClass.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: aload 0
iconst_0
putfield io.vertx.ext.mail.impl.sasl.AuthDigest.counter:I
2: aload 0
aload 2
putfield io.vertx.ext.mail.impl.sasl.AuthDigest.random:Lio/vertx/ext/auth/PRNG;
3: aload 0
getstatic io.vertx.ext.mail.impl.sasl.AuthDigest.NAME_MD_MAP:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield io.vertx.ext.mail.impl.sasl.AuthDigest.digest:Ljava/security/MessageDigest;
4: goto 7
StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest java.lang.String io.vertx.ext.auth.PRNG java.lang.String java.lang.String
StackMap stack: java.security.NoSuchAlgorithmException
5: astore 5
start local 5 6: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "hash "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic io.vertx.ext.mail.impl.sasl.AuthDigest.NAME_MD_MAP:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 8 1 name Ljava/lang/String;
0 8 2 random Lio/vertx/ext/auth/PRNG;
0 8 3 username Ljava/lang/String;
0 8 4 password Ljava/lang/String;
6 7 5 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
3 4 5 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
name
random
username
password
public java.lang.String nextStep(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.counter:I
dup_x1
iconst_1
iadd
putfield io.vertx.ext.mail.impl.sasl.AuthDigest.counter:I
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 6
}
1: StackMap locals:
StackMap stack:
ldc ""
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.calcStep1:(Ljava/lang/String;)Ljava/lang/String;
areturn
3: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "rspauth="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.serverResponse:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: ldc ""
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 7 1 data Ljava/lang/String;
MethodParameters:
Name Flags
data
private java.lang.String calcStep1(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.vertx.ext.mail.impl.sasl.AuthDigest.parseToMap:(Ljava/lang/String;)Ljava/util/Map;
astore 2
start local 2 1: aload 2
ldc "qop"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 2: aload 2
ldc "nonce"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 3: aload 2
ldc "realm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 4: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 6
start local 6 5: aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.username:Ljava/lang/String;
ldc "@"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 10
6: aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.username:Ljava/lang/String;
bipush 64
invokevirtual java.lang.String.indexOf:(I)I
istore 8
start local 8 7: aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.username:Ljava/lang/String;
iconst_0
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
start local 7 8: aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.username:Ljava/lang/String;
iload 8
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 5
end local 8 9: goto 11
end local 7 10: StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest java.lang.String java.util.Map java.lang.String java.lang.String java.lang.String java.util.Map
StackMap stack:
aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.username:Ljava/lang/String;
astore 7
start local 7 11: StackMap locals: java.lang.String
StackMap stack:
aload 6
ldc "nonce"
aload 0
aload 4
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.addQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 6
ldc "realm"
aload 0
aload 5
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.addQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 6
ldc "username"
aload 0
aload 7
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.addQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 0
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.getCnonce:()Ljava/lang/String;
astore 8
start local 8 15: aload 6
ldc "cnonce"
aload 0
aload 8
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.addQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 6
ldc "nc"
ldc "00000001"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 0
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.getDigestUri:()Ljava/lang/String;
astore 9
start local 9 18: aload 6
ldc "digest-uri"
aload 0
aload 9
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.addQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: aload 6
ldc "qop"
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 6
ldc "charset"
ldc "utf-8"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 6
ldc "response"
aload 0
aload 7
aload 5
aload 4
aload 8
aload 3
ldc "00000001"
aload 9
ldc "AUTHENTICATE"
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.response:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
aload 0
aload 7
aload 5
aload 4
aload 8
aload 3
ldc "00000001"
aload 9
ldc ""
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.response:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.mail.impl.sasl.AuthDigest.serverResponse:Ljava/lang/String;
23: aload 0
aload 6
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.encodeMap:(Ljava/util/Map;)Ljava/lang/String;
areturn
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 24 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 24 1 data Ljava/lang/String;
1 24 2 digestChallenge Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
2 24 3 qop Ljava/lang/String;
3 24 4 nonce Ljava/lang/String;
4 24 5 realm Ljava/lang/String;
5 24 6 digestResponse Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
8 10 7 user Ljava/lang/String;
11 24 7 user Ljava/lang/String;
7 9 8 index I
15 24 8 cnonce Ljava/lang/String;
18 24 9 digestUri Ljava/lang/String;
MethodParameters:
Name Flags
data
private java.lang.String response(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=12, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
ldc ":"
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
astore 9
start local 9 1: aload 0
iconst_5
anewarray byte[]
dup
iconst_0
aload 0
aload 0
iconst_5
anewarray byte[]
dup
iconst_0
aload 0
aload 1
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_1
aload 9
aastore
dup
iconst_2
aload 0
aload 2
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_3
aload 9
aastore
dup
iconst_4
aload 0
aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.password:Ljava/lang/String;
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.concatBytes:([[B)[B
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hash:([B)[B
aastore
dup
iconst_1
aload 9
aastore
dup
iconst_2
aload 0
aload 3
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_3
aload 9
aastore
dup
iconst_4
2: aload 0
aload 4
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
3: invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.concatBytes:([[B)[B
astore 10
start local 10 4: aload 0
iconst_3
anewarray byte[]
dup
iconst_0
aload 0
aload 8
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_1
aload 9
aastore
dup
iconst_2
aload 0
aload 7
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.concatBytes:([[B)[B
astore 11
start local 11 5: aload 0
aload 0
aload 10
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hexHash:([B)Ljava/lang/String;
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 11
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hexHash:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hexKd:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
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 6 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 6 1 user Ljava/lang/String;
0 6 2 realm Ljava/lang/String;
0 6 3 nonce Ljava/lang/String;
0 6 4 cnonce Ljava/lang/String;
0 6 5 qop Ljava/lang/String;
0 6 6 nc Ljava/lang/String;
0 6 7 digestUri Ljava/lang/String;
0 6 8 operation Ljava/lang/String;
1 6 9 colon [B
4 6 10 A1 [B
5 6 11 A2 [B
MethodParameters:
Name Flags
user final
realm final
nonce final
cnonce final
qop
nc final
digestUri final
operation final
private byte[] b(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 1 1 str Ljava/lang/String;
MethodParameters:
Name Flags
str
private byte[] concatBytes(byte[][]);
descriptor: ([[B)[B
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest byte[][] int top int int byte[][]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: iload 2
aload 3
arraylength
iadd
istore 2
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: iload 2
newarray 8
astore 3
start local 3 7: iconst_0
istore 4
start local 4 8: aload 1
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 13
StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest byte[][] int byte[] int top int int byte[][]
StackMap stack:
9: aload 8
iload 6
aaload
astore 5
start local 5 10: aload 5
iconst_0
aload 3
iload 4
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: iload 4
aload 5
arraylength
iadd
istore 4
end local 5 12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
iload 7
if_icmplt 9
14: aload 3
areturn
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 Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 15 1 bytes [[B
1 15 2 length I
3 4 3 b [B
7 15 3 newArray [B
8 15 4 index I
10 12 5 b [B
MethodParameters:
Name Flags
bytes
private byte[] hash(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 io.vertx.ext.mail.impl.sasl.AuthDigest.digest:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.digest:([B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 1 1 data [B
MethodParameters:
Name Flags
data
private java.lang.String hexKd(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
iconst_3
anewarray byte[]
dup
iconst_0
aload 0
aload 1
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_1
aload 0
ldc ":"
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
dup
iconst_2
aload 0
aload 2
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.b:(Ljava/lang/String;)[B
aastore
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.concatBytes:([[B)[B
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hexHash:([B)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 1 1 string Ljava/lang/String;
0 1 2 string2 Ljava/lang/String;
MethodParameters:
Name Flags
string
string2
private java.lang.String hexHash(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.vertx.ext.mail.impl.sasl.AuthDigest.hash:([B)[B
invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.encodeHex:([B)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 1 1 data [B
MethodParameters:
Name Flags
data
private java.lang.String encodeMap(java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/util/Map;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: iconst_1
istore 3
start local 3 2: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest java.util.Map java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 4: iload 3
ifeq 7
5: iconst_0
istore 3
6: goto 8
7: StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest java.util.Map java.lang.StringBuilder int java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 2
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 2
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 9: StackMap locals: io.vertx.ext.mail.impl.sasl.AuthDigest java.util.Map java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
10: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 11 1 digestResponse Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 11 2 sb Ljava/lang/StringBuilder;
2 11 3 first Z
4 9 4 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
digestResponse
private java.lang.String addQuotes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "\""
ldc "\\\""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
0 1 1 string Ljava/lang/String;
MethodParameters:
Name Flags
string
static java.util.Map<java.lang.String, java.lang.String> parseToMap(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Map;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 20
5: StackMap locals: java.lang.String java.util.List int int int
StackMap stack:
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: iload 5
bipush 92
if_icmpne 9
7: iinc 4 1
8: goto 19
9: StackMap locals: int
StackMap stack:
iload 2
ifeq 13
10: iload 5
bipush 34
if_icmpne 19
11: iconst_0
istore 2
12: goto 19
13: StackMap locals:
StackMap stack:
iload 5
bipush 34
if_icmpne 16
14: iconst_1
istore 2
15: goto 19
StackMap locals:
StackMap stack:
16: iload 5
bipush 44
if_icmpne 19
17: aload 1
aload 0
iload 3
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: iload 4
iconst_1
iadd
istore 3
end local 5 19: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
20: iload 4
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 5
end local 4 21: aload 1
aload 0
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 23: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 30
StackMap locals: java.lang.String java.util.List int int java.util.Map top java.util.Iterator
StackMap stack:
24: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 25: aload 5
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
istore 7
start local 7 26: iload 7
iflt 30
27: aload 5
iconst_0
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 8
start local 8 28: aload 5
iload 7
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 9
start local 9 29: aload 4
aload 8
aload 9
invokestatic io.vertx.ext.mail.impl.sasl.AuthDigest.removeQuotes:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 8 end local 7 end local 5 30: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
31: 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 32 0 data Ljava/lang/String;
1 32 1 fields Ljava/util/List<Ljava/lang/String;>;
2 32 2 inQuote Z
3 32 3 startIndex I
4 21 4 i I
6 19 5 ch C
23 32 4 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
25 30 5 f Ljava/lang/String;
26 30 7 equalsIndex I
28 30 8 key Ljava/lang/String;
29 30 9 val Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
data
private static java.lang.String removeQuotes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.String.length:()I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 15
4: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 0
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 5: iload 2
ifeq 9
6: aload 1
iload 4
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: iconst_0
istore 2
8: goto 14
9: StackMap locals: int
StackMap stack:
iload 4
bipush 92
if_icmpne 12
10: iconst_1
istore 2
11: goto 14
StackMap locals:
StackMap stack:
12: iload 4
bipush 34
if_icmpeq 14
13: aload 1
iload 4
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 4 14: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
15: iload 3
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 4
end local 3 16: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 string Ljava/lang/String;
1 17 1 sb Ljava/lang/StringBuilder;
2 17 2 backslash Z
3 16 3 i I
5 14 4 ch C
MethodParameters:
Name Flags
string
protected java.lang.String getCnonce();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: bipush 16
newarray 8
astore 1
start local 1 1: aload 0
getfield io.vertx.ext.mail.impl.sasl.AuthDigest.random:Lio/vertx/ext/auth/PRNG;
aload 1
invokevirtual io.vertx.ext.auth.PRNG.nextBytes:([B)V
2: aload 1
invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.base64:([B)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
1 3 1 randomBytes [B
protected java.lang.String getDigestUri();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "smtp/"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/mail/impl/sasl/AuthDigest;
}
SourceFile: "AuthDigest.java"
NestMembers:
io.vertx.ext.mail.impl.sasl.AuthDigest$1
InnerClasses:
io.vertx.ext.mail.impl.sasl.AuthDigest$1
public abstract Entry = java.util.Map$Entry of java.util.Map