< prev index next >

src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java

Print this page
*** 39,10 ***
--- 39,11 ---
  import java.security.cert.CertificateFactory;
  import java.util.ArrayList;
  import java.util.Base64;
  import java.util.HashMap;
  import java.util.Hashtable;
+ import java.util.Hex;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Locale;
  import java.util.Map;
  import java.util.jar.Attributes;

*** 473,12 ***
                          Base64.getMimeDecoder().decode((String)se.getValue());
  
                      if (debug != null) {
                          debug.println("Signature File: Manifest digest " +
                                  algorithm);
!                         debug.println( "  sigfile  " + toHex(expectedHash));
!                         debug.println( "  computed " + toHex(computedHash));
                          debug.println();
                      }
  
                      if (MessageDigest.isEqual(computedHash, expectedHash)) {
                          manifestSigned = true;
--- 474,12 ---
                          Base64.getMimeDecoder().decode((String)se.getValue());
  
                      if (debug != null) {
                          debug.println("Signature File: Manifest digest " +
                                  algorithm);
!                         debug.println( "  sigfile  " + Hex.encoder().encode(expectedHash));
!                         debug.println( "  computed " + Hex.encoder().encode(computedHash));
                          debug.println();
                      }
  
                      if (MessageDigest.isEqual(computedHash, expectedHash)) {
                          manifestSigned = true;

*** 544,12 ***
  
                      if (debug != null) {
                       debug.println("Signature File: " +
                                          "Manifest Main Attributes digest " +
                                          digest.getAlgorithm());
!                      debug.println( "  sigfile  " + toHex(expectedHash));
!                      debug.println( "  computed " + toHex(computedHash));
                       debug.println();
                      }
  
                      if (MessageDigest.isEqual(computedHash, expectedHash)) {
                          // good
--- 545,12 ---
  
                      if (debug != null) {
                       debug.println("Signature File: " +
                                          "Manifest Main Attributes digest " +
                                          digest.getAlgorithm());
!                      debug.println( "  sigfile  " + Hex.encoder().encode(expectedHash));
!                      debug.println( "  computed " + Hex.encoder().encode(computedHash));
                       debug.println();
                      }
  
                      if (MessageDigest.isEqual(computedHash, expectedHash)) {
                          // good

*** 652,12 ***
                          }
  
                          if (debug != null) {
                            debug.println("Signature Block File: " +
                                     name + " digest=" + digest.getAlgorithm());
!                           debug.println("  expected " + toHex(expected));
!                           debug.println("  computed " + toHex(computed));
                            debug.println();
                          }
  
                          if (MessageDigest.isEqual(computed, expected)) {
                              oneDigestVerified = true;
--- 653,12 ---
                          }
  
                          if (debug != null) {
                            debug.println("Signature Block File: " +
                                     name + " digest=" + digest.getAlgorithm());
!                           debug.println("  expected " + Hex.encoder().encode(expected));
!                           debug.println("  computed " + Hex.encoder().encode(computed));
                            debug.println();
                          }
  
                          if (MessageDigest.isEqual(computed, expected)) {
                              oneDigestVerified = true;

*** 666,11 ***
                              // attempt to fallback to the workaround
                              if (!workaround) {
                                 computed = mde.digestWorkaround(digest);
                                 if (MessageDigest.isEqual(computed, expected)) {
                                     if (debug != null) {
!                                        debug.println("  re-computed " + toHex(computed));
                                         debug.println();
                                     }
                                     workaround = true;
                                     oneDigestVerified = true;
                                     ok = true;
--- 667,11 ---
                              // attempt to fallback to the workaround
                              if (!workaround) {
                                 computed = mde.digestWorkaround(digest);
                                 if (MessageDigest.isEqual(computed, expected)) {
                                     if (debug != null) {
!                                        debug.println("  re-computed " + Hex.encoder().encode(computed));
                                         debug.println();
                                     }
                                     workaround = true;
                                     oneDigestVerified = true;
                                     ok = true;

*** 739,30 ***
          } else {
              return null;
          }
      }
  
-     // for the toHex function
-     private static final char[] hexc =
-             {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
-     /**
-      * convert a byte array to a hex string for debugging purposes
-      * @param data the binary data to be converted to a hex string
-      * @return an ASCII hex string
-      */
- 
-     static String toHex(byte[] data) {
- 
-         StringBuilder sb = new StringBuilder(data.length*2);
- 
-         for (int i=0; i<data.length; i++) {
-             sb.append(hexc[(data[i] >>4) & 0x0f]);
-             sb.append(hexc[data[i] & 0x0f]);
-         }
-         return sb.toString();
-     }
- 
      // returns true if set contains signer
      static boolean contains(CodeSigner[] set, CodeSigner signer)
      {
          for (int i = 0; i < set.length; i++) {
              if (set[i].equals(signer))
--- 740,10 ---
< prev index next >