public final class jdk.jpackage.internal.MacCertificate
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.jpackage.internal.MacCertificate
super_class: java.lang.Object
{
private final java.lang.String certificate;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
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
aload 1
putfield jdk.jpackage.internal.MacCertificate.certificate:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/jpackage/internal/MacCertificate;
0 3 1 certificate Ljava/lang/String;
MethodParameters:
Name Flags
certificate
public boolean isValid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.jpackage.internal.MacCertificate.certificate:Ljava/lang/String;
invokestatic jdk.jpackage.internal.MacCertificate.verifyCertificate:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jpackage/internal/MacCertificate;
private static java.nio.file.Path findCertificate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 2
ldc "/usr/bin/security"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
ldc "find-certificate"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 2
ldc "-c"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 2
aload 0
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 2
ldc "-a"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 2
ldc "-p"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aconst_null
astore 3
aconst_null
astore 4
9: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 5
start local 5 10: new java.io.PrintStream
dup
aload 5
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 6
start local 6 11: new java.lang.ProcessBuilder
dup
aload 2
invokespecial java.lang.ProcessBuilder.<init>:(Ljava/util/List;)V
astore 7
start local 7 12: aload 7
iconst_0
aload 6
invokestatic jdk.jpackage.internal.IOUtils.exec:(Ljava/lang/ProcessBuilder;ZLjava/io/PrintStream;)V
13: ldc "tempfile"
ldc ".tmp"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempFile:(Ljava/lang/String;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
astore 8
start local 8 14: new java.io.ByteArrayInputStream
dup
aload 5
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
15: aload 8
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
16: invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
17: aload 8
astore 1
end local 8 end local 7 18: aload 6
ifnull 21
aload 6
invokevirtual java.io.PrintStream.close:()V
goto 21
StackMap locals: java.lang.String java.nio.file.Path java.util.List java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.io.PrintStream
StackMap stack: java.lang.Throwable
19: astore 3
aload 6
ifnull 20
aload 6
invokevirtual java.io.PrintStream.close:()V
end local 6 StackMap locals:
StackMap stack:
20: aload 3
athrow
StackMap locals:
StackMap stack:
21: aload 5
ifnull 30
aload 5
invokevirtual java.io.ByteArrayOutputStream.close:()V
goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 4
aload 3
ifnonnull 23
aload 4
astore 3
goto 24
StackMap locals:
StackMap stack:
23: aload 3
aload 4
if_acmpeq 24
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
24: aload 5
ifnull 25
aload 5
invokevirtual java.io.ByteArrayOutputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
25: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 4
aload 3
ifnonnull 27
aload 4
astore 3
goto 28
StackMap locals:
StackMap stack:
27: aload 3
aload 4
if_acmpeq 28
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 3
athrow
29: StackMap locals: java.lang.String java.nio.file.Path java.util.List
StackMap stack: java.io.IOException
pop
30: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 certificate Ljava/lang/String;
1 31 1 result Ljava/nio/file/Path;
2 31 2 args Ljava/util/List<Ljava/lang/String;>;
10 25 5 baos Ljava/io/ByteArrayOutputStream;
11 20 6 ps Ljava/io/PrintStream;
12 18 7 security Ljava/lang/ProcessBuilder;
14 18 8 output Ljava/nio/file/Path;
Exception table:
from to target type
11 18 19 any
10 21 22 any
9 26 26 any
8 29 29 Class java.io.IOException
MethodParameters:
Name Flags
certificate
private static java.util.Date findCertificateDate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Date;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 2
ldc "/usr/bin/openssl"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
ldc "x509"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 2
ldc "-noout"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 2
ldc "-enddate"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 2
ldc "-in"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 2
aload 0
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aconst_null
astore 3
aconst_null
astore 4
9: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 5
start local 5 10: new java.io.PrintStream
dup
aload 5
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 6
start local 6 11: new java.lang.ProcessBuilder
dup
aload 2
invokespecial java.lang.ProcessBuilder.<init>:(Ljava/util/List;)V
astore 7
start local 7 12: aload 7
iconst_0
aload 6
invokestatic jdk.jpackage.internal.IOUtils.exec:(Ljava/lang/ProcessBuilder;ZLjava/io/PrintStream;)V
13: aload 5
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
astore 8
start local 8 14: aload 8
aload 8
ldc "="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 8
15: new java.text.SimpleDateFormat
dup
16: ldc "MMM dd kk:mm:ss yyyy z"
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
17: invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 9
start local 9 18: aload 9
aload 8
invokevirtual java.text.DateFormat.parse:(Ljava/lang/String;)Ljava/util/Date;
astore 1
end local 9 end local 8 end local 7 19: aload 6
ifnull 22
aload 6
invokevirtual java.io.PrintStream.close:()V
goto 22
StackMap locals: java.lang.String java.util.Date java.util.List java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.io.PrintStream
StackMap stack: java.lang.Throwable
20: astore 3
aload 6
ifnull 21
aload 6
invokevirtual java.io.PrintStream.close:()V
end local 6 StackMap locals:
StackMap stack:
21: aload 3
athrow
StackMap locals:
StackMap stack:
22: aload 5
ifnull 32
aload 5
invokevirtual java.io.ByteArrayOutputStream.close:()V
goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 4
aload 3
ifnonnull 24
aload 4
astore 3
goto 25
StackMap locals:
StackMap stack:
24: aload 3
aload 4
if_acmpeq 25
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 5
ifnull 26
aload 5
invokevirtual java.io.ByteArrayOutputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
26: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 4
aload 3
ifnonnull 28
aload 4
astore 3
goto 29
StackMap locals:
StackMap stack:
28: aload 3
aload 4
if_acmpeq 29
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 3
athrow
StackMap locals: java.lang.String java.util.Date java.util.List
StackMap stack: java.lang.Exception
30: astore 3
start local 3 31: aload 3
invokestatic jdk.jpackage.internal.Log.verbose:(Ljava/lang/Throwable;)V
end local 3 32: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 filename Ljava/lang/String;
1 33 1 result Ljava/util/Date;
2 33 2 args Ljava/util/List<Ljava/lang/String;>;
10 26 5 baos Ljava/io/ByteArrayOutputStream;
11 21 6 ps Ljava/io/PrintStream;
12 19 7 security Ljava/lang/ProcessBuilder;
14 19 8 output Ljava/lang/String;
18 19 9 df Ljava/text/DateFormat;
31 32 3 ex Ljava/lang/Exception;
Exception table:
from to target type
11 19 20 any
10 22 23 any
9 27 27 any
8 30 30 Class java.io.IOException
8 30 30 Class java.text.ParseException
MethodParameters:
Name Flags
filename
private static boolean verifyCertificate(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 0
invokestatic jdk.jpackage.internal.MacCertificate.findCertificate:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
4: aload 2
ifnull 12
5: aload 2
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
6: invokestatic jdk.jpackage.internal.MacCertificate.findCertificateDate:(Ljava/lang/String;)Ljava/util/Date;
astore 3
7: goto 12
8: StackMap locals: java.lang.String int java.nio.file.Path java.util.Date
StackMap stack: java.lang.Throwable
astore 4
9: aload 2
ifnull 11
10: aload 2
invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
11: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 2
ifnull 14
13: aload 2
invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
14: StackMap locals:
StackMap stack:
aload 3
ifnull 21
15: invokestatic java.util.Calendar.getInstance:()Ljava/util/Calendar;
astore 4
start local 4 16: aload 4
invokevirtual java.util.Calendar.getTime:()Ljava/util/Date;
astore 5
start local 5 17: aload 3
aload 5
invokevirtual java.util.Date.after:(Ljava/util/Date;)Z
ifeq 21
18: iconst_1
istore 1
end local 5 end local 4 end local 3 end local 2 19: goto 21
20: StackMap locals: java.lang.String int
StackMap stack: java.io.IOException
pop
21: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 certificate Ljava/lang/String;
1 22 1 result Z
2 19 2 file Ljava/nio/file/Path;
3 19 3 certificateDate Ljava/util/Date;
16 19 4 c Ljava/util/Calendar;
17 19 5 today Ljava/util/Date;
Exception table:
from to target type
3 8 8 any
1 19 20 Class java.io.IOException
MethodParameters:
Name Flags
certificate
}
SourceFile: "MacCertificate.java"