7049963: DISTINGUISHED NAMES FOR CERT ARE ESCAPED IN JROCKIT 1.6(NOT COMPATIBLE WITH JROC

Reviewed-by: mullan
This commit is contained in:
Mala Bankal 2011-09-14 21:43:42 -07:00
parent 16a24a909d
commit d9777d76bd

View File

@ -1071,8 +1071,17 @@ public class AVA implements DerEncoder {
* to need quoting, or at least escaping. So do leading or * to need quoting, or at least escaping. So do leading or
* trailing spaces, and multiple internal spaces. * trailing spaces, and multiple internal spaces.
*/ */
for (int i = 0; i < valStr.length(); i++) { int length = valStr.length();
boolean alreadyQuoted =
(length > 1 && valStr.charAt(0) == '\"'
&& valStr.charAt(length - 1) == '\"');
for (int i = 0; i < length; i++) {
char c = valStr.charAt(i); char c = valStr.charAt(i);
if (alreadyQuoted && (i == 0 || i == length - 1)) {
sbuffer.append(c);
continue;
}
if (DerValue.isPrintableStringChar(c) || if (DerValue.isPrintableStringChar(c) ||
escapees.indexOf(c) >= 0) { escapees.indexOf(c) >= 0) {
@ -1136,7 +1145,8 @@ public class AVA implements DerEncoder {
} }
// Emit the string ... quote it if needed // Emit the string ... quote it if needed
if (quoteNeeded) { // if string is already quoted, don't re-quote
if (!alreadyQuoted && quoteNeeded) {
retval.append("\"" + sbuffer.toString() + "\""); retval.append("\"" + sbuffer.toString() + "\"");
} else { } else {
retval.append(sbuffer.toString()); retval.append(sbuffer.toString());