class sun.security.provider.SeedGenerator$1 implements java.security.PrivilegedAction<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.provider.SeedGenerator$1
super_class: java.lang.Object
{
private final java.security.MessageDigest val$md;
descriptor: Ljava/security/MessageDigest;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(java.security.MessageDigest);
descriptor: (Ljava/security/MessageDigest;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/SeedGenerator$1;
MethodParameters:
Name Flags
val$md final
public java.lang.Void run();
descriptor: ()Ljava/lang/Void;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
astore 1
start local 1 1: aload 1
invokevirtual java.util.Properties.stringPropertyNames:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: sun.security.provider.SeedGenerator$1 java.util.Properties top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 2
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.security.MessageDigest.update:([B)V
4: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 1
aload 2
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.security.MessageDigest.update:([B)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
invokestatic sun.security.provider.SeedGenerator.addNetworkAdapterInfo:(Ljava/security/MessageDigest;)V
7: new java.io.File
dup
aload 1
ldc "java.io.tmpdir"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 8: iconst_0
istore 3
start local 3 9: aconst_null
astore 4
aconst_null
astore 5
10: aload 2
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
11: astore 6
start local 6 12: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 7
start local 7 13: aload 6
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 9
goto 21
StackMap locals: sun.security.provider.SeedGenerator$1 java.util.Properties java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.util.Random top java.util.Iterator
StackMap stack:
14: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 8
start local 8 15: iload 3
sipush 512
if_icmplt 16
aload 7
invokevirtual java.util.Random.nextBoolean:()Z
ifeq 19
16: StackMap locals: sun.security.provider.SeedGenerator$1 java.util.Properties java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.util.Random java.nio.file.Path java.util.Iterator
StackMap stack:
aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 8
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
17: invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
18: invokevirtual java.security.MessageDigest.update:([B)V
19: StackMap locals:
StackMap stack:
iload 3
iinc 3 1
sipush 1024
if_icmple 21
20: goto 22
end local 8 21: StackMap locals: sun.security.provider.SeedGenerator$1 java.util.Properties java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.util.Random top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 7 22: StackMap locals: sun.security.provider.SeedGenerator$1 java.util.Properties java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
StackMap stack:
aload 6
ifnull 30
aload 6
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 4
aload 6
ifnull 24
aload 6
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 6 StackMap locals:
StackMap stack:
24: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 5
aload 4
ifnonnull 26
aload 5
astore 4
goto 27
StackMap locals:
StackMap stack:
26: aload 4
aload 5
if_acmpeq 27
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
27: aload 4
athrow
end local 3 end local 2 end local 1 28: StackMap locals: sun.security.provider.SeedGenerator$1
StackMap stack: java.lang.Exception
astore 1
start local 1 29: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.lang.Object.hashCode:()I
i2b
invokevirtual java.security.MessageDigest.update:(B)V
end local 1 30: StackMap locals:
StackMap stack:
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
astore 1
start local 1 31: aload 1
invokevirtual java.lang.Runtime.totalMemory:()J
invokestatic sun.security.provider.SeedGenerator.longToByteArray:(J)[B
astore 2
start local 2 32: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 2
iconst_0
aload 2
arraylength
invokevirtual java.security.MessageDigest.update:([BII)V
33: aload 1
invokevirtual java.lang.Runtime.freeMemory:()J
invokestatic sun.security.provider.SeedGenerator.longToByteArray:(J)[B
astore 2
34: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 2
iconst_0
aload 2
arraylength
invokevirtual java.security.MessageDigest.update:([BII)V
35: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/security/provider/SeedGenerator$1;
1 28 1 p Ljava/util/Properties;
3 5 2 s Ljava/lang/String;
8 28 2 f Ljava/io/File;
9 28 3 count I
12 24 6 stream Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
13 22 7 r Ljava/util/Random;
15 21 8 entry Ljava/nio/file/Path;
29 30 1 ex Ljava/lang/Exception;
31 36 1 rt Ljava/lang/Runtime;
32 36 2 memBytes [B
Exception table:
from to target type
12 22 23 any
10 25 25 any
0 28 28 Class java.lang.Exception
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.provider.SeedGenerator$1.run:()Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedAction<Ljava/lang/Object;>;
SourceFile: "SeedGenerator.java"
EnclosingMethod: sun.security.provider.SeedGenerator.getSystemEntropy:()[B
NestHost: sun.security.provider.SeedGenerator
InnerClasses:
sun.security.provider.SeedGenerator$1