abstract class com.sun.crypto.provider.HmacPKCS12PBECore extends com.sun.crypto.provider.HmacCore
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.crypto.provider.HmacPKCS12PBECore
super_class: com.sun.crypto.provider.HmacCore
{
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bl;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial com.sun.crypto.provider.HmacCore.<init>:(Ljava/lang/String;I)V
1: aload 0
aload 1
putfield com.sun.crypto.provider.HmacPKCS12PBECore.algorithm:Ljava/lang/String;
2: aload 0
iload 2
putfield com.sun.crypto.provider.HmacPKCS12PBECore.bl:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/crypto/provider/HmacPKCS12PBECore;
0 4 1 algorithm Ljava/lang/String;
0 4 2 bl I
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
algorithm
bl
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=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aload 1
instanceof javax.crypto.interfaces.PBEKey
ifeq 9
3: aload 1
checkcast javax.crypto.interfaces.PBEKey
4: astore 6
start local 6 5: aload 6
invokeinterface javax.crypto.interfaces.PBEKey.getPassword:()[C
astore 3
start local 3 6: aload 6
invokeinterface javax.crypto.interfaces.PBEKey.getSalt:()[B
astore 4
7: aload 6
invokeinterface javax.crypto.interfaces.PBEKey.getIterationCount:()I
istore 5
end local 6 8: goto 23
end local 3 StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec top byte[] int
StackMap stack:
9: aload 1
instanceof javax.crypto.SecretKey
ifeq 22
10: aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
iconst_1
iconst_0
ldc "PBE"
iconst_0
iconst_3
invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
ifeq 13
11: aload 1
invokeinterface java.security.Key.getEncoded:()[B
dup
astore 6
start local 6 12: ifnonnull 14
end local 6 13: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Missing password"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 6 14: StackMap locals: byte[]
StackMap stack:
aload 6
arraylength
newarray 5
astore 3
start local 3 15: iconst_0
istore 7
start local 7 16: goto 19
17: StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec char[] byte[] int byte[] int
StackMap stack:
aload 3
iload 7
aload 6
iload 7
baload
bipush 127
iand
i2c
castore
18: iinc 7 1
StackMap locals:
StackMap stack:
19: iload 7
aload 3
arraylength
if_icmplt 17
end local 7 20: aload 6
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
end local 6 21: goto 23
end local 3 22: StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec top byte[] int
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "SecretKey of PBE type required"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 3 23: StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec char[] byte[] int
StackMap stack:
aload 2
ifnonnull 28
24: aload 4
ifnull 25
iload 5
ifne 45
25: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
26: ldc "PBEParameterSpec required for salt and iteration count"
27: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 2
instanceof javax.crypto.spec.PBEParameterSpec
ifne 32
29: new java.security.InvalidAlgorithmParameterException
dup
30: ldc "PBEParameterSpec type required"
31: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 2
checkcast javax.crypto.spec.PBEParameterSpec
astore 7
start local 7 33: aload 4
ifnull 38
34: aload 4
aload 7
invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 39
35: new java.security.InvalidAlgorithmParameterException
dup
36: ldc "Inconsistent value of salt between key and params"
37: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec char[] byte[] int top javax.crypto.spec.PBEParameterSpec
StackMap stack:
aload 7
invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
astore 4
39: StackMap locals:
StackMap stack:
iload 5
ifeq 44
40: iload 5
aload 7
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
if_icmpeq 45
41: new java.security.InvalidAlgorithmParameterException
dup
42: ldc "Different iteration count between key and params"
43: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
aload 7
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
istore 5
end local 7 45: StackMap locals: com.sun.crypto.provider.HmacPKCS12PBECore java.security.Key java.security.spec.AlgorithmParameterSpec char[] byte[] int
StackMap stack:
aload 4
arraylength
bipush 8
if_icmpge 49
46: new java.security.InvalidAlgorithmParameterException
dup
47: ldc "Salt must be at least 8 bytes long"
48: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
49: StackMap locals:
StackMap stack:
iload 5
ifgt 53
50: new java.security.InvalidAlgorithmParameterException
dup
51: ldc "IterationCount must be a positive number"
52: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals:
StackMap stack:
aload 3
aload 4
54: iload 5
aload 0
invokevirtual com.sun.crypto.provider.HmacPKCS12PBECore.engineGetMacLength:()I
iconst_3
55: aload 0
getfield com.sun.crypto.provider.HmacPKCS12PBECore.algorithm:Ljava/lang/String;
aload 0
getfield com.sun.crypto.provider.HmacPKCS12PBECore.bl:I
56: invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.derive:([C[BIIILjava/lang/String;I)[B
astore 6
start local 6 57: goto 61
end local 6 StackMap locals:
StackMap stack: java.lang.Throwable
58: astore 8
59: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
60: aload 8
athrow
start local 6 61: StackMap locals: byte[]
StackMap stack:
aload 3
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
62: new javax.crypto.spec.SecretKeySpec
dup
aload 6
ldc "HmacSHA1"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
start local 7 63: aload 0
aload 7
aconst_null
invokespecial com.sun.crypto.provider.HmacCore.engineInit:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
64: return
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 65 0 this Lcom/sun/crypto/provider/HmacPKCS12PBECore;
0 65 1 key Ljava/security/Key;
0 65 2 params Ljava/security/spec/AlgorithmParameterSpec;
6 9 3 passwdChars [C
15 22 3 passwdChars [C
23 65 3 passwdChars [C
1 65 4 salt [B
2 65 5 iCount I
5 8 6 pbeKey Ljavax/crypto/interfaces/PBEKey;
12 13 6 passwdBytes [B
14 21 6 passwdBytes [B
16 20 7 i I
57 58 6 derivedKey [B
61 65 6 derivedKey [B
33 45 7 pbeParams Ljavax/crypto/spec/PBEParameterSpec;
63 65 7 cipherKey Ljavax/crypto/SecretKey;
Exception table:
from to target type
23 58 58 any
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
key
params
}
SourceFile: "HmacPKCS12PBECore.java"
NestMembers:
com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA1 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA224 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA256 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA384 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512_224 com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512_256
InnerClasses:
public final HmacPKCS12PBE_SHA1 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA1 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA224 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA224 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA256 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA256 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA384 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA384 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA512 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA512_224 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512_224 of com.sun.crypto.provider.HmacPKCS12PBECore
public final HmacPKCS12PBE_SHA512_256 = com.sun.crypto.provider.HmacPKCS12PBECore$HmacPKCS12PBE_SHA512_256 of com.sun.crypto.provider.HmacPKCS12PBECore