From f5d1fbc0b4a4cca29d06082ee77159617aaea648 Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Thu, 18 Jun 2009 11:12:13 +0800 Subject: [PATCH 1/2] 6712755: jarsigner fails to sign itextasian.jar since 1.5.0_b14, it works with 1.5.0_13 Reviewed-by: mullan --- .../classes/sun/security/tools/JarSigner.java | 7 +- .../security/tools/jarsigner/emptymanifest.sh | 66 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 jdk/test/sun/security/tools/jarsigner/emptymanifest.sh diff --git a/jdk/src/share/classes/sun/security/tools/JarSigner.java b/jdk/src/share/classes/sun/security/tools/JarSigner.java index 2de2e52b08a..e7ca8bc7508 100644 --- a/jdk/src/share/classes/sun/security/tools/JarSigner.java +++ b/jdk/src/share/classes/sun/security/tools/JarSigner.java @@ -1402,9 +1402,14 @@ public class JarSigner { } /** - * Find the position of \r\n\r\n inside bs + * Find the position of an empty line inside bs */ private int findHeaderEnd(byte[] bs) { + // An empty line can be at the beginning... + if (bs.length > 1 && bs[0] == '\r' && bs[1] == '\n') { + return 0; + } + // ... or after another line for (int i=0; i A +echo B > B +mkdir META-INF +printf "\r\n" > META-INF${FS}MANIFEST.MF +zip $JFILE META-INF${FS}MANIFEST.MF A B + +$KT -alias a -dname CN=a -keyalg rsa -genkey -validity 300 + +$JARSIGNER -keystore $KS -storepass changeit $JFILE a || exit 1 +$JARSIGNER -keystore $KS -verify -debug -strict $JFILE || exit 2 + +exit 0 From 5e6adf6d99496a9452ef951e285ffd99ebfe00b5 Mon Sep 17 00:00:00 2001 From: Sean Mullan Date: Thu, 18 Jun 2009 09:04:20 -0400 Subject: [PATCH 2/2] 6833839: RFE: improve ManifestDigester by instantiating StringBuilder constructor w/ initial value Reviewed-by: weijun --- jdk/src/share/classes/sun/security/util/ManifestDigester.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/sun/security/util/ManifestDigester.java b/jdk/src/share/classes/sun/security/util/ManifestDigester.java index 8530fc32b36..e43dd161d1d 100644 --- a/jdk/src/share/classes/sun/security/util/ManifestDigester.java +++ b/jdk/src/share/classes/sun/security/util/ManifestDigester.java @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -129,7 +129,7 @@ public class ManifestDigester { if (len > 6) { if (isNameAttr(bytes, start)) { - StringBuilder nameBuf = new StringBuilder(); + StringBuilder nameBuf = new StringBuilder(sectionLen); try { nameBuf.append(