public class org.bouncycastle.crypto.util.PBKDF2Config extends org.bouncycastle.crypto.util.PBKDFConfig
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.util.PBKDF2Config
super_class: org.bouncycastle.crypto.util.PBKDFConfig
{
public static final org.bouncycastle.asn1.x509.AlgorithmIdentifier PRF_SHA1;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.bouncycastle.asn1.x509.AlgorithmIdentifier PRF_SHA256;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.bouncycastle.asn1.x509.AlgorithmIdentifier PRF_SHA512;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.bouncycastle.asn1.x509.AlgorithmIdentifier PRF_SHA3_256;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.bouncycastle.asn1.x509.AlgorithmIdentifier PRF_SHA3_512;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.util.Map PRFS_SALT;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int iterationCount;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int saltLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.asn1.x509.AlgorithmIdentifier prf;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRF_SHA1:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
1: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRF_SHA256:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
2: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRF_SHA512:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
3: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRF_SHA3_256:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
4: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRF_SHA3_512:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
5: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
6: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 20
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 64
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 28
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_hmacWithSHA384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 48
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 28
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 48
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_hmacWithSHA3_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 64
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3411Hmac:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_hmac_gost_3411_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_hmac_gost_3411_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 64
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
getstatic org.bouncycastle.asn1.gm.GMObjectIdentifiers.hmac_sm3:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 32
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: return
LocalVariableTable:
Start End Slot Name Signature
static int getSaltSize(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "no salt size for algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.crypto.util.PBKDF2Config.PRFS_SALT:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 algorithm Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
MethodParameters:
Name Flags
algorithm
private void <init>(org.bouncycastle.crypto.util.PBKDF2Config$Builder);
descriptor: (Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBKDF2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.crypto.util.PBKDFConfig.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
1: aload 0
aload 1
getfield org.bouncycastle.crypto.util.PBKDF2Config$Builder.iterationCount:I
putfield org.bouncycastle.crypto.util.PBKDF2Config.iterationCount:I
2: aload 0
aload 1
getfield org.bouncycastle.crypto.util.PBKDF2Config$Builder.prf:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.crypto.util.PBKDF2Config.prf:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
3: aload 1
getfield org.bouncycastle.crypto.util.PBKDF2Config$Builder.saltLength:I
ifge 6
4: aload 0
aload 0
getfield org.bouncycastle.crypto.util.PBKDF2Config.prf:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.crypto.util.PBKDF2Config.getSaltSize:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)I
putfield org.bouncycastle.crypto.util.PBKDF2Config.saltLength:I
5: goto 7
6: StackMap locals: org.bouncycastle.crypto.util.PBKDF2Config org.bouncycastle.crypto.util.PBKDF2Config$Builder
StackMap stack:
aload 0
aload 1
getfield org.bouncycastle.crypto.util.PBKDF2Config$Builder.saltLength:I
putfield org.bouncycastle.crypto.util.PBKDF2Config.saltLength:I
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/util/PBKDF2Config;
0 8 1 builder Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
MethodParameters:
Name Flags
builder
public int getIterationCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.util.PBKDF2Config.iterationCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/util/PBKDF2Config;
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getPRF();
descriptor: ()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.util.PBKDF2Config.prf:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/util/PBKDF2Config;
public int getSaltLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.util.PBKDF2Config.saltLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/util/PBKDF2Config;
}
SourceFile: "PBKDF2Config.java"
NestMembers:
org.bouncycastle.crypto.util.PBKDF2Config$Builder
InnerClasses:
public Builder = org.bouncycastle.crypto.util.PBKDF2Config$Builder of org.bouncycastle.crypto.util.PBKDF2Config