public abstract class sun.security.provider.AbstractDrbg
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.provider.AbstractDrbg
super_class: java.lang.Object
{
protected static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
private boolean instantiated;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
protected volatile int reseedCounter;
descriptor: I
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected static final int DEFAULT_STRENGTH;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 128
protected java.lang.String mechName;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected int highestSupportedSecurityStrength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected boolean supportPredictionResistance;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected boolean supportReseeding;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected int minLength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int maxLength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int maxPersonalizationStringLength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int maxAdditionalInputLength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int maxNumberOfBytesPerRequest;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int reseedInterval;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected int securityStrength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int requestedInstantiationSecurityStrength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected byte[] personalizationString;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
private boolean predictionResistanceFlag;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
protected boolean usedf;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected byte[] nonce;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
private byte[] requestedNonce;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
protected java.lang.String requestedAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
private sun.security.provider.EntropySource es;
descriptor: Lsun/security/provider/EntropySource;
flags: (0x0002) ACC_PRIVATE
private static final sun.security.provider.EntropySource defaultES;
descriptor: Lsun/security/provider/EntropySource;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "securerandom"
ldc "drbg"
1: invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
2: invokedynamic getEntropy()Lsun/security/provider/EntropySource;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(IIIZ)[B
sun/security/provider/AbstractDrbg.lambda$0(IIIZ)[B (6)
(IIIZ)[B
3: putstatic sun.security.provider.AbstractDrbg.defaultES:Lsun/security/provider/EntropySource;
4: return
LocalVariableTable:
Start End Slot Name Signature
protected abstract void chooseAlgorithmAndStrength();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void initEngine();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void instantiateAlgorithm(byte[]);
descriptor: ([B)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
ei
protected abstract void generateAlgorithm(byte[], byte[]);
descriptor: ([B[B)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
result
additionalInput
protected void reseedAlgorithm(byte[], byte[]);
descriptor: ([B[B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "No reseed function"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/AbstractDrbg;
0 1 1 ei [B
0 1 2 additionalInput [B
MethodParameters:
Name Flags
ei
additionalInput
protected final void engineNextBytes(byte[]);
descriptor: ([B)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
1: iconst_m1
aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
aconst_null
2: invokestatic java.security.DrbgParameters.nextBytes:(IZ[B)Ljava/security/DrbgParameters$NextBytes;
invokevirtual sun.security.provider.AbstractDrbg.engineNextBytes:([BLjava/security/SecureRandomParameters;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/provider/AbstractDrbg;
0 4 1 result [B
MethodParameters:
Name Flags
result
protected final void engineNextBytes(byte[], java.security.SecureRandomParameters);
descriptor: ([BLjava/security/SecureRandomParameters;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 3
2: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
ldc "nextBytes"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 2
instanceof java.security.DrbgParameters$NextBytes
ifeq 31
4: aload 2
checkcast java.security.DrbgParameters$NextBytes
astore 3
start local 3 5: aload 1
arraylength
pop
6: aload 3
invokevirtual java.security.DrbgParameters$NextBytes.getStrength:()I
aload 0
getfield sun.security.provider.AbstractDrbg.securityStrength:I
if_icmple 10
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "strength too high: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 3
invokevirtual java.security.DrbgParameters$NextBytes.getStrength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.security.DrbgParameters$NextBytes
StackMap stack:
aload 3
invokevirtual java.security.DrbgParameters$NextBytes.getAdditionalInput:()[B
astore 4
start local 4 11: aload 4
ifnull 15
aload 4
arraylength
aload 0
getfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
if_icmple 15
12: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "ai too long: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 4
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: byte[]
StackMap stack:
aload 3
invokevirtual java.security.DrbgParameters$NextBytes.getPredictionResistance:()Z
istore 5
start local 5 16: aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
ifne 18
iload 5
ifeq 18
17: new java.lang.IllegalArgumentException
dup
ldc "pr not available"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: int
StackMap stack:
aload 0
aconst_null
invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
19: aload 0
getfield sun.security.provider.AbstractDrbg.reseedCounter:I
iflt 20
aload 0
getfield sun.security.provider.AbstractDrbg.reseedCounter:I
aload 0
getfield sun.security.provider.AbstractDrbg.reseedInterval:I
if_icmpgt 20
iload 5
ifeq 29
20: StackMap locals:
StackMap stack:
aload 0
dup
astore 6
monitorenter
21: aload 0
getfield sun.security.provider.AbstractDrbg.reseedCounter:I
iflt 23
aload 0
getfield sun.security.provider.AbstractDrbg.reseedCounter:I
aload 0
getfield sun.security.provider.AbstractDrbg.reseedInterval:I
if_icmpgt 23
22: iload 5
ifeq 25
23: StackMap locals: sun.security.provider.AbstractDrbg
StackMap stack:
aload 0
aload 0
iload 5
invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
aload 4
invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
24: aconst_null
astore 4
25: StackMap locals:
StackMap stack:
aload 6
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 6
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
invokevirtual sun.security.provider.AbstractDrbg.generateAlgorithm:([B[B)V
end local 5 end local 4 end local 3 30: goto 34
31: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "unknown params type:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/security/provider/AbstractDrbg;
0 35 1 result [B
0 35 2 params Ljava/security/SecureRandomParameters;
5 30 3 dp Ljava/security/DrbgParameters$NextBytes;
11 30 4 ai [B
16 30 5 pr Z
Exception table:
from to target type
21 26 27 any
27 28 27 any
MethodParameters:
Name Flags
result
params
public final void engineReseed(java.security.SecureRandomParameters);
descriptor: (Ljava/security/SecureRandomParameters;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
ldc "reseed with params"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
ifne 4
3: new java.lang.UnsupportedOperationException
dup
ldc "Reseed not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 6
5: aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
aconst_null
invokestatic java.security.DrbgParameters.reseed:(Z[B)Ljava/security/DrbgParameters$Reseed;
astore 1
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.DrbgParameters$Reseed
ifeq 19
7: aload 1
checkcast java.security.DrbgParameters$Reseed
astore 2
start local 2 8: aload 2
invokevirtual java.security.DrbgParameters$Reseed.getPredictionResistance:()Z
istore 3
start local 3 9: aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
ifne 11
iload 3
ifeq 11
10: new java.lang.IllegalArgumentException
dup
ldc "pr not available"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.security.DrbgParameters$Reseed int
StackMap stack:
aload 2
invokevirtual java.security.DrbgParameters$Reseed.getAdditionalInput:()[B
astore 4
start local 4 12: aload 4
ifnull 16
aload 4
arraylength
aload 0
getfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
if_icmple 16
13: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "ai too long: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: aload 4
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: byte[]
StackMap stack:
aload 0
aconst_null
invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
17: aload 0
aload 0
iload 3
invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
aload 4
invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
end local 4 end local 3 end local 2 18: goto 22
19: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "unknown params type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/security/provider/AbstractDrbg;
0 23 1 params Ljava/security/SecureRandomParameters;
8 18 2 dp Ljava/security/DrbgParameters$Reseed;
9 18 3 pr Z
12 18 4 ai [B
MethodParameters:
Name Flags
params
public final byte[] engineGenerateSeed(int);
descriptor: (I)[B
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: iload 1
newarray 8
astore 2
start local 2 1: aload 2
invokestatic sun.security.provider.SeedGenerator.generateSeed:([B)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/AbstractDrbg;
0 3 1 numBytes I
1 3 2 b [B
MethodParameters:
Name Flags
numBytes
public final synchronized void engineSetSeed(byte[]);
descriptor: ([B)V
flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
ldc "setSeed"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
arraylength
aload 0
getfield sun.security.provider.AbstractDrbg.minLength:I
if_icmpge 5
3: aload 1
aload 0
getfield sun.security.provider.AbstractDrbg.minLength:I
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 1
4: goto 7
StackMap locals:
StackMap stack:
5: aload 1
arraylength
aload 0
getfield sun.security.provider.AbstractDrbg.maxLength:I
if_icmple 7
6: aload 1
aload 0
getfield sun.security.provider.AbstractDrbg.maxLength:I
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 1
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.AbstractDrbg.instantiated:Z
ifne 10
8: aload 0
aload 1
invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
aload 1
aconst_null
invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/provider/AbstractDrbg;
0 12 1 input [B
MethodParameters:
Name Flags
input
private byte[] getEntropyInput(boolean);
descriptor: (Z)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.security.provider.AbstractDrbg.minLength:I
aload 0
getfield sun.security.provider.AbstractDrbg.minLength:I
aload 0
getfield sun.security.provider.AbstractDrbg.maxLength:I
iload 1
invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(IIIZ)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/AbstractDrbg;
0 1 1 isPr Z
MethodParameters:
Name Flags
isPr
private byte[] getEntropyInput(int, int, int, boolean);
descriptor: (IIIZ)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 4
1: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
new java.lang.StringBuilder
dup
ldc "getEntropy("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
2: ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.AbstractDrbg.es:Lsun/security/provider/EntropySource;
astore 5
start local 5 5: aload 5
ifnonnull 9
6: iload 4
ifeq 7
getstatic sun.security.provider.AbstractDrbg$SeederHolder.prseeder:Lsun/security/provider/EntropySource;
goto 8
StackMap locals: sun.security.provider.EntropySource
StackMap stack:
7: getstatic sun.security.provider.AbstractDrbg$SeederHolder.seeder:Lsun/security/provider/EntropySource;
StackMap locals:
StackMap stack: sun.security.provider.EntropySource
8: astore 5
9: StackMap locals:
StackMap stack:
aload 5
iload 1
iload 2
iload 3
iload 4
invokeinterface sun.security.provider.EntropySource.getEntropy:(IIIZ)[B
areturn
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 10 0 this Lsun/security/provider/AbstractDrbg;
0 10 1 minEntropy I
0 10 2 minLength I
0 10 3 maxLength I
0 10 4 pr Z
5 10 5 esNow Lsun/security/provider/EntropySource;
MethodParameters:
Name Flags
minEntropy
minLength
maxLength
pr
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.security.provider.AbstractDrbg.instantiated:Z
2: aload 0
iconst_0
putfield sun.security.provider.AbstractDrbg.reseedCounter:I
3: aload 0
ldc "DRBG"
putfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
4: aload 0
sipush 256
putfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
5: aload 0
iconst_1
putfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
6: aload 0
iconst_1
putfield sun.security.provider.AbstractDrbg.supportReseeding:Z
7: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxLength:I
8: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
9: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
10: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxNumberOfBytesPerRequest:I
11: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.reseedInterval:I
12: aload 0
iconst_m1
putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/provider/AbstractDrbg;
protected void <init>(java.security.SecureRandomParameters);
descriptor: (Ljava/security/SecureRandomParameters;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.security.provider.AbstractDrbg.instantiated:Z
2: aload 0
iconst_0
putfield sun.security.provider.AbstractDrbg.reseedCounter:I
3: aload 0
ldc "DRBG"
putfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
4: aload 0
sipush 256
putfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
5: aload 0
iconst_1
putfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
6: aload 0
iconst_1
putfield sun.security.provider.AbstractDrbg.supportReseeding:Z
7: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxLength:I
8: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
9: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
10: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.maxNumberOfBytesPerRequest:I
11: aload 0
ldc 2147483647
putfield sun.security.provider.AbstractDrbg.reseedInterval:I
12: aload 0
iconst_m1
putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/provider/AbstractDrbg;
0 14 1 params Ljava/security/SecureRandomParameters;
MethodParameters:
Name Flags
params
protected java.security.SecureRandomParameters engineGetParameters();
descriptor: ()Ljava/security/SecureRandomParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.AbstractDrbg.securityStrength:I
1: aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
ifeq 2
getstatic java.security.DrbgParameters$Capability.PR_AND_RESEED:Ljava/security/DrbgParameters$Capability;
goto 4
2: StackMap locals:
StackMap stack: int
aload 0
getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
ifeq 3
getstatic java.security.DrbgParameters$Capability.RESEED_ONLY:Ljava/security/DrbgParameters$Capability;
goto 4
StackMap locals:
StackMap stack: int
3: getstatic java.security.DrbgParameters$Capability.NONE:Ljava/security/DrbgParameters$Capability;
4: StackMap locals: sun.security.provider.AbstractDrbg
StackMap stack: int java.security.DrbgParameters$Capability
aload 0
getfield sun.security.provider.AbstractDrbg.personalizationString:[B
5: invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/provider/AbstractDrbg;
protected final void configure(java.security.SecureRandomParameters);
descriptor: (Ljava/security/SecureRandomParameters;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
new java.lang.StringBuilder
dup
ldc "configure "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " with "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: iconst_m1
getstatic java.security.DrbgParameters$Capability.RESEED_ONLY:Ljava/security/DrbgParameters$Capability;
aconst_null
invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
astore 1
4: StackMap locals:
StackMap stack:
aload 1
instanceof sun.security.provider.MoreDrbgParameters
ifeq 13
5: aload 1
checkcast sun.security.provider.MoreDrbgParameters
astore 2
start local 2 6: aload 0
aload 2
getfield sun.security.provider.MoreDrbgParameters.nonce:[B
putfield sun.security.provider.AbstractDrbg.requestedNonce:[B
7: aload 0
aload 2
getfield sun.security.provider.MoreDrbgParameters.es:Lsun/security/provider/EntropySource;
putfield sun.security.provider.AbstractDrbg.es:Lsun/security/provider/EntropySource;
8: aload 0
aload 2
getfield sun.security.provider.MoreDrbgParameters.algorithm:Ljava/lang/String;
putfield sun.security.provider.AbstractDrbg.requestedAlgorithm:Ljava/lang/String;
9: aload 0
aload 2
getfield sun.security.provider.MoreDrbgParameters.usedf:Z
putfield sun.security.provider.AbstractDrbg.usedf:Z
10: aload 2
getfield sun.security.provider.MoreDrbgParameters.strength:I
11: aload 2
getfield sun.security.provider.MoreDrbgParameters.capability:Ljava/security/DrbgParameters$Capability;
aload 2
getfield sun.security.provider.MoreDrbgParameters.personalizationString:[B
12: invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
astore 1
end local 2 13: StackMap locals:
StackMap stack:
aload 1
ifnull 41
14: aload 1
instanceof java.security.DrbgParameters$Instantiation
ifeq 38
15: aload 1
checkcast java.security.DrbgParameters$Instantiation
16: astore 2
start local 2 17: aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
aload 0
getfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
if_icmple 21
18: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "strength too big: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: java.security.DrbgParameters$Instantiation
StackMap stack:
aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
invokevirtual java.security.DrbgParameters$Capability.supportsPredictionResistance:()Z
ifeq 24
22: aload 0
getfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
ifne 24
23: new java.lang.IllegalArgumentException
dup
ldc "pr not supported"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getPersonalizationString:()[B
astore 3
start local 3 25: aload 3
ifnull 29
aload 3
arraylength
aload 0
getfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
if_icmple 29
26: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "ps too long: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
27: aload 3
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals: byte[]
StackMap stack:
aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
invokevirtual java.security.DrbgParameters$Capability.supportsReseeding:()Z
ifeq 32
30: aload 0
getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
ifne 32
31: new java.lang.IllegalArgumentException
dup
ldc "reseed not supported"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.provider.AbstractDrbg.personalizationString:[B
33: aload 0
34: aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
invokevirtual java.security.DrbgParameters$Capability.supportsPredictionResistance:()Z
35: putfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
36: aload 0
aload 2
invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
end local 3 end local 2 37: goto 41
38: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "unknown params: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
39: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.provider.AbstractDrbg.chooseAlgorithmAndStrength:()V
42: aload 0
iconst_0
putfield sun.security.provider.AbstractDrbg.instantiated:Z
43: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
ifnull 45
44: getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
aload 0
new java.lang.StringBuilder
dup
ldc "configured "
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;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lsun/security/provider/AbstractDrbg;
0 46 1 params Ljava/security/SecureRandomParameters;
6 13 2 m Lsun/security/provider/MoreDrbgParameters;
17 37 2 inst Ljava/security/DrbgParameters$Instantiation;
25 37 3 ps [B
MethodParameters:
Name Flags
params
private synchronized void instantiateIfNecessary(byte[]);
descriptor: ([B)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.AbstractDrbg.instantiated:Z
ifne 10
1: aload 1
ifnonnull 3
2: aload 0
aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
astore 1
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.AbstractDrbg.requestedNonce:[B
ifnull 6
4: aload 0
aload 0
getfield sun.security.provider.AbstractDrbg.requestedNonce:[B
putfield sun.security.provider.AbstractDrbg.nonce:[B
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.security.provider.AbstractDrbg$NonceProvider.next:()[B
putfield sun.security.provider.AbstractDrbg.nonce:[B
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.provider.AbstractDrbg.initEngine:()V
8: aload 0
aload 1
invokevirtual sun.security.provider.AbstractDrbg.instantiateAlgorithm:([B)V
9: aload 0
iconst_1
putfield sun.security.provider.AbstractDrbg.instantiated:Z
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/provider/AbstractDrbg;
0 11 1 entropy [B
MethodParameters:
Name Flags
entropy
protected static java.lang.String hex(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
StackMap stack:
2: aload 5
iload 3
baload
istore 2
start local 2 3: aload 1
ldc "%02x"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
sipush 255
iand
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 in [B
1 7 1 sb Ljava/lang/StringBuilder;
3 4 2 b B
MethodParameters:
Name Flags
in
protected static int getStandardStrength(int);
descriptor: (I)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
bipush 112
if_icmpgt 1
bipush 112
ireturn
1: StackMap locals:
StackMap stack:
iload 0
sipush 128
if_icmpgt 2
sipush 128
ireturn
2: StackMap locals:
StackMap stack:
iload 0
sipush 192
if_icmpgt 3
sipush 192
ireturn
3: StackMap locals:
StackMap stack:
iload 0
sipush 256
if_icmpgt 4
sipush 256
ireturn
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "input too big: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 input I
MethodParameters:
Name Flags
input
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.provider.AbstractDrbg.algorithm:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.provider.AbstractDrbg.securityStrength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
ifeq 3
ldc "pr_and_reseed"
goto 5
3: StackMap locals:
StackMap stack: java.lang.StringBuilder
aload 0
getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
ifeq 4
ldc "reseed_only"
goto 5
StackMap locals:
StackMap stack: java.lang.StringBuilder
4: ldc "none"
5: StackMap locals: sun.security.provider.AbstractDrbg
StackMap stack: java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/AbstractDrbg;
private static byte[] lambda$0(int, int, int, boolean);
descriptor: (IIIZ)[B
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
newarray 8
astore 4
start local 4 1: aload 4
invokestatic sun.security.provider.SeedGenerator.generateSeed:([B)V
2: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 minE I
0 3 1 minLen I
0 3 2 maxLen I
0 3 3 pr Z
1 3 4 result [B
}
SourceFile: "AbstractDrbg.java"
NestMembers:
sun.security.provider.AbstractDrbg$NonceProvider sun.security.provider.AbstractDrbg$SeederHolder
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Capability = java.security.DrbgParameters$Capability of java.security.DrbgParameters
public final Instantiation = java.security.DrbgParameters$Instantiation of java.security.DrbgParameters
public final NextBytes = java.security.DrbgParameters$NextBytes of java.security.DrbgParameters
public final Reseed = java.security.DrbgParameters$Reseed of java.security.DrbgParameters
private NonceProvider = sun.security.provider.AbstractDrbg$NonceProvider of sun.security.provider.AbstractDrbg
private SeederHolder = sun.security.provider.AbstractDrbg$SeederHolder of sun.security.provider.AbstractDrbg