class sun.security.provider.SeedGenerator$1 implements java.security.PrivilegedAction<java.lang.Void>
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=12, args_size=1
start local 0 0: invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
astore 2
start local 2 1: aload 2
invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
astore 3
start local 3 2: goto 6
3: StackMap locals: sun.security.provider.SeedGenerator$1 top java.util.Properties java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 4: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.security.MessageDigest.update:([B)V
5: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
aload 2
aload 1
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 1 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
7: aload 0
getfield sun.security.provider.SeedGenerator$1.val$md:Ljava/security/MessageDigest;
invokestatic sun.security.provider.SeedGenerator.addNetworkAdapterInfo:(Ljava/security/MessageDigest;)V
8: new java.io.File
dup
aload 2
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 4
start local 4 9: iconst_0
istore 5
start local 5 10: aconst_null
astore 6
aconst_null
astore 7
11: aload 4
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
astore 8
start local 8 12: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 9
start local 9 13: aload 8
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 11
goto 19
StackMap locals: sun.security.provider.SeedGenerator$1 top java.util.Properties java.util.Enumeration 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 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 10
start local 10 15: iload 5
sipush 512
if_icmplt 16
aload 9
invokevirtual java.util.Random.nextBoolean:()Z
ifeq 17
16: StackMap locals: sun.security.provider.SeedGenerator$1 top java.util.Properties java.util.Enumeration 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 10
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.security.MessageDigest.update:([B)V
17: StackMap locals:
StackMap stack:
iload 5
iinc 5 1
sipush 1024
if_icmple 19
18: goto 20
end local 10 19: StackMap locals: sun.security.provider.SeedGenerator$1 top java.util.Properties java.util.Enumeration java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.util.Random top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 9 20: StackMap locals: sun.security.provider.SeedGenerator$1 top java.util.Properties java.util.Enumeration java.io.File int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
StackMap stack:
aload 8
ifnull 28
aload 8
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 6
aload 8
ifnull 22
aload 8
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 8 StackMap locals:
StackMap stack:
22: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 7
aload 6
ifnonnull 24
aload 7
astore 6
goto 25
StackMap locals:
StackMap stack:
24: aload 6
aload 7
if_acmpeq 25
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 6
athrow
end local 5 end local 4 end local 3 end local 2 26: StackMap locals: sun.security.provider.SeedGenerator$1
StackMap stack: java.lang.Exception
astore 1
start local 1 27: 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 28: StackMap locals:
StackMap stack:
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
astore 1
start local 1 29: aload 1
invokevirtual java.lang.Runtime.totalMemory:()J
invokestatic sun.security.provider.SeedGenerator.longToByteArray:(J)[B
astore 2
start local 2 30: 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
31: aload 1
invokevirtual java.lang.Runtime.freeMemory:()J
invokestatic sun.security.provider.SeedGenerator.longToByteArray:(J)[B
astore 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: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/security/provider/SeedGenerator$1;
4 6 1 s Ljava/lang/String;
1 26 2 p Ljava/util/Properties;
2 26 3 e Ljava/util/Enumeration<*>;
9 26 4 f Ljava/io/File;
10 26 5 count I
12 22 8 stream Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
13 20 9 r Ljava/util/Random;
15 19 10 entry Ljava/nio/file/Path;
27 28 1 ex Ljava/lang/Exception;
29 34 1 rt Ljava/lang/Runtime;
30 34 2 memBytes [B
Exception table:
from to target type
12 20 21 any
11 23 23 any
0 26 26 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/Void;>;
SourceFile: "SeedGenerator.java"
EnclosingMethod: sun.security.provider.SeedGenerator.getSystemEntropy:()[B
NestHost: sun.security.provider.SeedGenerator
InnerClasses:
sun.security.provider.SeedGenerator$1