src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacCertificate.java
branchJDK-8200758-branch
changeset 58647 2c43b89b1679
parent 58464 d82489644b15
equal deleted inserted replaced
58608:a561014c28d0 58647:2c43b89b1679
    41 import java.util.List;
    41 import java.util.List;
    42 import java.util.Locale;
    42 import java.util.Locale;
    43 
    43 
    44 public final class MacCertificate {
    44 public final class MacCertificate {
    45     private final String certificate;
    45     private final String certificate;
    46     private final boolean verbose;
       
    47 
    46 
    48     public MacCertificate(String certificate) {
    47     public MacCertificate(String certificate) {
    49         this.certificate = certificate;
    48         this.certificate = certificate;
    50         this.verbose = false;
       
    51     }
       
    52 
       
    53     public MacCertificate(String certificate, boolean verbose) {
       
    54         this.certificate = certificate;
       
    55         this.verbose = verbose;
       
    56     }
    49     }
    57 
    50 
    58     public boolean isValid() {
    51     public boolean isValid() {
    59         return verifyCertificate(this.certificate, verbose);
    52         return verifyCertificate(this.certificate);
    60     }
    53     }
    61 
    54 
    62     private static File findCertificate(String certificate, boolean verbose) {
    55     private static File findCertificate(String certificate) {
    63         File result = null;
    56         File result = null;
    64 
    57 
    65         List<String> args = new ArrayList<>();
    58         List<String> args = new ArrayList<>();
    66         args.add("security");
    59         args.add("security");
    67         args.add("find-certificate");
    60         args.add("find-certificate");
    85         catch (IOException ignored) {}
    78         catch (IOException ignored) {}
    86 
    79 
    87         return result;
    80         return result;
    88     }
    81     }
    89 
    82 
    90     private static Date findCertificateDate(String filename, boolean verbose) {
    83     private static Date findCertificateDate(String filename) {
    91         Date result = null;
    84         Date result = null;
    92 
    85 
    93         List<String> args = new ArrayList<>();
    86         List<String> args = new ArrayList<>();
    94         args.add("/usr/bin/openssl");
    87         args.add("/usr/bin/openssl");
    95         args.add("x509");
    88         args.add("x509");
   112         }
   105         }
   113 
   106 
   114         return result;
   107         return result;
   115     }
   108     }
   116 
   109 
   117     private static boolean verifyCertificate(
   110     private static boolean verifyCertificate(String certificate) {
   118             String certificate, boolean verbose) {
       
   119         boolean result = false;
   111         boolean result = false;
   120 
   112 
   121         try {
   113         try {
   122             File file = null;
   114             File file = null;
   123             Date certificateDate = null;
   115             Date certificateDate = null;
   124 
   116 
   125             try {
   117             try {
   126                 file = findCertificate(certificate, verbose);
   118                 file = findCertificate(certificate);
   127 
   119 
   128                 if (file != null) {
   120                 if (file != null) {
   129                     certificateDate = findCertificateDate(
   121                     certificateDate = findCertificateDate(
   130                             file.getCanonicalPath(), verbose);
   122                             file.getCanonicalPath());
   131                 }
   123                 }
   132             }
   124             }
   133             finally {
   125             finally {
   134                 if (file != null) {
   126                 if (file != null) {
   135                     file.delete();
   127                     file.delete();