final class com.google.common.hash.MacHashFunction extends com.google.common.hash.AbstractHashFunction
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.hash.MacHashFunction
super_class: com.google.common.hash.AbstractHashFunction
{
private final javax.crypto.Mac prototype;
descriptor: Ljavax/crypto/Mac;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.Key key;
descriptor: Ljava/security/Key;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String toString;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bits;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean supportsClone;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(java.lang.String, java.security.Key, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/security/Key;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.google.common.hash.AbstractHashFunction.<init>:()V
1: aload 0
aload 1
aload 2
invokestatic com.google.common.hash.MacHashFunction.getMac:(Ljava/lang/String;Ljava/security/Key;)Ljavax/crypto/Mac;
putfield com.google.common.hash.MacHashFunction.prototype:Ljavax/crypto/Mac;
2: aload 0
aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.Key
putfield com.google.common.hash.MacHashFunction.key:Ljava/security/Key;
3: aload 0
aload 3
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.google.common.hash.MacHashFunction.toString:Ljava/lang/String;
4: aload 0
aload 0
getfield com.google.common.hash.MacHashFunction.prototype:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.getMacLength:()I
bipush 8
imul
putfield com.google.common.hash.MacHashFunction.bits:I
5: aload 0
aload 0
getfield com.google.common.hash.MacHashFunction.prototype:Ljavax/crypto/Mac;
invokestatic com.google.common.hash.MacHashFunction.supportsClone:(Ljavax/crypto/Mac;)Z
putfield com.google.common.hash.MacHashFunction.supportsClone:Z
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/hash/MacHashFunction;
0 7 1 algorithmName Ljava/lang/String;
0 7 2 key Ljava/security/Key;
0 7 3 toString Ljava/lang/String;
MethodParameters:
Name Flags
algorithmName
key
toString
public int bits();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.hash.MacHashFunction.bits:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/hash/MacHashFunction;
private static boolean supportsClone(javax.crypto.Mac);
descriptor: (Ljavax/crypto/Mac;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual javax.crypto.Mac.clone:()Ljava/lang/Object;
pop
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack: java.lang.CloneNotSupportedException
pop
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 mac Ljavax/crypto/Mac;
Exception table:
from to target type
0 1 2 Class java.lang.CloneNotSupportedException
MethodParameters:
Name Flags
mac
private static javax.crypto.Mac getMac(java.lang.String, java.security.Key);
descriptor: (Ljava/lang/String;Ljava/security/Key;)Ljavax/crypto/Mac;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
2: aload 2
3: areturn
end local 2 4: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 2
start local 2 5: new java.lang.IllegalStateException
dup
aload 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 6: StackMap locals:
StackMap stack: java.security.InvalidKeyException
astore 2
start local 2 7: new java.lang.IllegalArgumentException
dup
aload 2
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 algorithmName Ljava/lang/String;
0 8 1 key Ljava/security/Key;
1 4 2 mac Ljavax/crypto/Mac;
5 6 2 e Ljava/security/NoSuchAlgorithmException;
7 8 2 e Ljava/security/InvalidKeyException;
Exception table:
from to target type
0 3 4 Class java.security.NoSuchAlgorithmException
0 3 6 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
algorithmName
key
public com.google.common.hash.Hasher newHasher();
descriptor: ()Lcom/google/common/hash/Hasher;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.hash.MacHashFunction.supportsClone:Z
ifeq 4
1: new com.google.common.hash.MacHashFunction$MacHasher
dup
aload 0
getfield com.google.common.hash.MacHashFunction.prototype:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.clone:()Ljava/lang/Object;
checkcast javax.crypto.Mac
invokespecial com.google.common.hash.MacHashFunction$MacHasher.<init>:(Ljavax/crypto/Mac;)V
2: areturn
3: StackMap locals:
StackMap stack: java.lang.CloneNotSupportedException
pop
4: StackMap locals:
StackMap stack:
new com.google.common.hash.MacHashFunction$MacHasher
dup
aload 0
getfield com.google.common.hash.MacHashFunction.prototype:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.getAlgorithm:()Ljava/lang/String;
aload 0
getfield com.google.common.hash.MacHashFunction.key:Ljava/security/Key;
invokestatic com.google.common.hash.MacHashFunction.getMac:(Ljava/lang/String;Ljava/security/Key;)Ljavax/crypto/Mac;
invokespecial com.google.common.hash.MacHashFunction$MacHasher.<init>:(Ljavax/crypto/Mac;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/hash/MacHashFunction;
Exception table:
from to target type
1 2 3 Class java.lang.CloneNotSupportedException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.hash.MacHashFunction.toString:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/hash/MacHashFunction;
}
SourceFile: "MacHashFunction.java"
NestMembers:
com.google.common.hash.MacHashFunction$MacHasher
InnerClasses:
private final MacHasher = com.google.common.hash.MacHashFunction$MacHasher of com.google.common.hash.MacHashFunction
RuntimeVisibleAnnotations:
com.google.errorprone.annotations.Immutable()