public class org.bouncycastle.jce.provider.JCEMac extends javax.crypto.MacSpi implements org.bouncycastle.jce.provider.PBE
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JCEMac
super_class: javax.crypto.MacSpi
{
private org.bouncycastle.crypto.Mac macEngine;
descriptor: Lorg/bouncycastle/crypto/Mac;
flags: (0x0002) ACC_PRIVATE
private int pbeType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int pbeHash;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int keySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
protected void <init>(org.bouncycastle.crypto.Mac);
descriptor: (Lorg/bouncycastle/crypto/Mac;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial javax.crypto.MacSpi.<init>:()V
1: aload 0
iconst_2
putfield org.bouncycastle.jce.provider.JCEMac.pbeType:I
2: aload 0
iconst_1
putfield org.bouncycastle.jce.provider.JCEMac.pbeHash:I
3: aload 0
sipush 160
putfield org.bouncycastle.jce.provider.JCEMac.keySize:I
4: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/jce/provider/JCEMac;
0 6 1 macEngine Lorg/bouncycastle/crypto/Mac;
MethodParameters:
Name Flags
macEngine
protected void <init>(org.bouncycastle.crypto.Mac, int, int, int);
descriptor: (Lorg/bouncycastle/crypto/Mac;III)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial javax.crypto.MacSpi.<init>:()V
1: aload 0
iconst_2
putfield org.bouncycastle.jce.provider.JCEMac.pbeType:I
2: aload 0
iconst_1
putfield org.bouncycastle.jce.provider.JCEMac.pbeHash:I
3: aload 0
sipush 160
putfield org.bouncycastle.jce.provider.JCEMac.keySize:I
4: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
5: aload 0
iload 2
putfield org.bouncycastle.jce.provider.JCEMac.pbeType:I
6: aload 0
iload 3
putfield org.bouncycastle.jce.provider.JCEMac.pbeHash:I
7: aload 0
iload 4
putfield org.bouncycastle.jce.provider.JCEMac.keySize:I
8: return
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/bouncycastle/jce/provider/JCEMac;
0 9 1 macEngine Lorg/bouncycastle/crypto/Mac;
0 9 2 pbeType I
0 9 3 pbeHash I
0 9 4 keySize I
MethodParameters:
Name Flags
macEngine
pbeType
pbeHash
keySize
protected void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.security.InvalidKeyException
dup
ldc "key is null"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.jce.provider.JCEPBEKey
ifeq 11
3: aload 1
checkcast org.bouncycastle.jce.provider.JCEPBEKey
astore 4
start local 4 4: aload 4
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
ifnull 7
5: aload 4
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
astore 3
start local 3 6: goto 18
end local 3 7: StackMap locals: org.bouncycastle.jce.provider.JCEMac java.security.Key java.security.spec.AlgorithmParameterSpec top org.bouncycastle.jce.provider.JCEPBEKey
StackMap stack:
aload 2
instanceof javax.crypto.spec.PBEParameterSpec
ifeq 10
8: aload 4
aload 2
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEMacParameters:(Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;)Lorg/bouncycastle/crypto/CipherParameters;
astore 3
start local 3 9: goto 18
end local 3 10: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "PBE requires PBE parameters to be set."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 4 11: StackMap locals: org.bouncycastle.jce.provider.JCEMac java.security.Key java.security.spec.AlgorithmParameterSpec
StackMap stack:
aload 2
instanceof javax.crypto.spec.IvParameterSpec
ifeq 14
12: new org.bouncycastle.crypto.params.ParametersWithIV
dup
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
aload 2
checkcast javax.crypto.spec.IvParameterSpec
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 3
start local 3 13: goto 18
end local 3 14: StackMap locals:
StackMap stack:
aload 2
ifnonnull 17
15: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
astore 3
start local 3 16: goto 18
end local 3 17: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "unknown parameter type."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
start local 3 18: StackMap locals: org.bouncycastle.crypto.CipherParameters
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
aload 3
invokeinterface org.bouncycastle.crypto.Mac.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
19: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/bouncycastle/jce/provider/JCEMac;
0 20 1 key Ljava/security/Key;
0 20 2 params Ljava/security/spec/AlgorithmParameterSpec;
6 7 3 param Lorg/bouncycastle/crypto/CipherParameters;
9 10 3 param Lorg/bouncycastle/crypto/CipherParameters;
13 14 3 param Lorg/bouncycastle/crypto/CipherParameters;
16 17 3 param Lorg/bouncycastle/crypto/CipherParameters;
18 20 3 param Lorg/bouncycastle/crypto/CipherParameters;
4 11 4 k Lorg/bouncycastle/jce/provider/JCEPBEKey;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
key
params
protected int engineGetMacLength();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEMac;
protected void engineReset();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
invokeinterface org.bouncycastle.crypto.Mac.reset:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JCEMac;
protected void engineUpdate(byte);
descriptor: (B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
iload 1
invokeinterface org.bouncycastle.crypto.Mac.update:(B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JCEMac;
0 2 1 input B
MethodParameters:
Name Flags
input
protected void engineUpdate(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
aload 1
iload 2
iload 3
invokeinterface org.bouncycastle.crypto.Mac.update:([BII)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JCEMac;
0 2 1 input [B
0 2 2 offset I
0 2 3 len I
MethodParameters:
Name Flags
input
offset
len
protected byte[] engineDoFinal();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEMac.engineGetMacLength:()I
newarray 8
astore 1
start local 1 1: aload 0
getfield org.bouncycastle.jce.provider.JCEMac.macEngine:Lorg/bouncycastle/crypto/Mac;
aload 1
iconst_0
invokeinterface org.bouncycastle.crypto.Mac.doFinal:([BI)I
pop
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/jce/provider/JCEMac;
1 3 1 out [B
}
SourceFile: "JCEMac.java"
NestMembers:
org.bouncycastle.jce.provider.JCEMac$DES org.bouncycastle.jce.provider.JCEMac$DES9797Alg3 org.bouncycastle.jce.provider.JCEMac$DES9797Alg3with7816d4 org.bouncycastle.jce.provider.JCEMac$DESCFB8 org.bouncycastle.jce.provider.JCEMac$GOST28147 org.bouncycastle.jce.provider.JCEMac$MD2 org.bouncycastle.jce.provider.JCEMac$MD4 org.bouncycastle.jce.provider.JCEMac$MD5 org.bouncycastle.jce.provider.JCEMac$OldSHA384 org.bouncycastle.jce.provider.JCEMac$OldSHA512 org.bouncycastle.jce.provider.JCEMac$PBEWithRIPEMD160 org.bouncycastle.jce.provider.JCEMac$PBEWithSHA org.bouncycastle.jce.provider.JCEMac$PBEWithTiger org.bouncycastle.jce.provider.JCEMac$RC2 org.bouncycastle.jce.provider.JCEMac$RC2CFB8 org.bouncycastle.jce.provider.JCEMac$RIPEMD128 org.bouncycastle.jce.provider.JCEMac$RIPEMD160 org.bouncycastle.jce.provider.JCEMac$SHA1 org.bouncycastle.jce.provider.JCEMac$SHA224 org.bouncycastle.jce.provider.JCEMac$SHA256 org.bouncycastle.jce.provider.JCEMac$SHA384 org.bouncycastle.jce.provider.JCEMac$SHA512 org.bouncycastle.jce.provider.JCEMac$Tiger
InnerClasses:
public DES = org.bouncycastle.jce.provider.JCEMac$DES of org.bouncycastle.jce.provider.JCEMac
public DES9797Alg3 = org.bouncycastle.jce.provider.JCEMac$DES9797Alg3 of org.bouncycastle.jce.provider.JCEMac
public DES9797Alg3with7816d4 = org.bouncycastle.jce.provider.JCEMac$DES9797Alg3with7816d4 of org.bouncycastle.jce.provider.JCEMac
public DESCFB8 = org.bouncycastle.jce.provider.JCEMac$DESCFB8 of org.bouncycastle.jce.provider.JCEMac
public GOST28147 = org.bouncycastle.jce.provider.JCEMac$GOST28147 of org.bouncycastle.jce.provider.JCEMac
public MD2 = org.bouncycastle.jce.provider.JCEMac$MD2 of org.bouncycastle.jce.provider.JCEMac
public MD4 = org.bouncycastle.jce.provider.JCEMac$MD4 of org.bouncycastle.jce.provider.JCEMac
public MD5 = org.bouncycastle.jce.provider.JCEMac$MD5 of org.bouncycastle.jce.provider.JCEMac
public OldSHA384 = org.bouncycastle.jce.provider.JCEMac$OldSHA384 of org.bouncycastle.jce.provider.JCEMac
public OldSHA512 = org.bouncycastle.jce.provider.JCEMac$OldSHA512 of org.bouncycastle.jce.provider.JCEMac
public PBEWithRIPEMD160 = org.bouncycastle.jce.provider.JCEMac$PBEWithRIPEMD160 of org.bouncycastle.jce.provider.JCEMac
public PBEWithSHA = org.bouncycastle.jce.provider.JCEMac$PBEWithSHA of org.bouncycastle.jce.provider.JCEMac
public PBEWithTiger = org.bouncycastle.jce.provider.JCEMac$PBEWithTiger of org.bouncycastle.jce.provider.JCEMac
public RC2 = org.bouncycastle.jce.provider.JCEMac$RC2 of org.bouncycastle.jce.provider.JCEMac
public RC2CFB8 = org.bouncycastle.jce.provider.JCEMac$RC2CFB8 of org.bouncycastle.jce.provider.JCEMac
public RIPEMD128 = org.bouncycastle.jce.provider.JCEMac$RIPEMD128 of org.bouncycastle.jce.provider.JCEMac
public RIPEMD160 = org.bouncycastle.jce.provider.JCEMac$RIPEMD160 of org.bouncycastle.jce.provider.JCEMac
public SHA1 = org.bouncycastle.jce.provider.JCEMac$SHA1 of org.bouncycastle.jce.provider.JCEMac
public SHA224 = org.bouncycastle.jce.provider.JCEMac$SHA224 of org.bouncycastle.jce.provider.JCEMac
public SHA256 = org.bouncycastle.jce.provider.JCEMac$SHA256 of org.bouncycastle.jce.provider.JCEMac
public SHA384 = org.bouncycastle.jce.provider.JCEMac$SHA384 of org.bouncycastle.jce.provider.JCEMac
public SHA512 = org.bouncycastle.jce.provider.JCEMac$SHA512 of org.bouncycastle.jce.provider.JCEMac
public Tiger = org.bouncycastle.jce.provider.JCEMac$Tiger of org.bouncycastle.jce.provider.JCEMac
public Util = org.bouncycastle.jce.provider.PBE$Util of org.bouncycastle.jce.provider.PBE