public class io.vertx.ext.mail.impl.sasl.CryptUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.mail.impl.sasl.CryptUtils
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/mail/impl/sasl/CryptUtils;
protected static java.lang.String hmacHex(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aload 2
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 3
start local 3 1: aload 3
invokeinterface javax.crypto.SecretKey.getAlgorithm:()Ljava/lang/String;
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 4
start local 4 2: aload 4
aload 3
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
3: aload 4
aload 1
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual javax.crypto.Mac.doFinal:([B)[B
invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.encodeHex:([B)Ljava/lang/String;
4: areturn
end local 4 end local 3 5: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
pop
6: ldc ""
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 keyString Ljava/lang/String;
0 7 1 message Ljava/lang/String;
0 7 2 hmac Ljava/lang/String;
1 5 3 key Ljavax/crypto/SecretKey;
2 5 4 mac Ljavax/crypto/Mac;
Exception table:
from to target type
0 4 5 Class java.security.NoSuchAlgorithmException
0 4 5 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
keyString
message
hmac
protected static java.lang.String encodeHex(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
arraylength
iconst_2
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
StackMap stack:
2: aload 5
iload 3
baload
istore 2
start local 2 3: iload 2
sipush 255
iand
istore 6
start local 6 4: iload 6
bipush 16
if_icmpge 6
5: aload 1
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: StackMap locals: byte[] java.lang.StringBuilder int int int byte[] int
StackMap stack:
aload 1
iload 6
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 6 end local 2 7: iinc 3 1
StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
StackMap stack:
8: iload 3
iload 4
if_icmplt 2
9: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 bytes [B
1 10 1 sb Ljava/lang/StringBuilder;
3 7 2 b B
4 7 6 v I
MethodParameters:
Name Flags
bytes
public static java.lang.String base64(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
aload 0
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 string Ljava/lang/String;
MethodParameters:
Name Flags
string
public static java.lang.String base64(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
aload 0
invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 data [B
MethodParameters:
Name Flags
data
public static java.lang.String decodeb64(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.lang.String
dup
invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
aload 0
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 string Ljava/lang/String;
MethodParameters:
Name Flags
string
}
SourceFile: "CryptUtils.java"
InnerClasses:
public Decoder = java.util.Base64$Decoder of java.util.Base64
public Encoder = java.util.Base64$Encoder of java.util.Base64