diff --git a/java/org/apache/tomcat/util/buf/Asn1Parser.java b/java/org/apache/tomcat/util/buf/Asn1Parser.java
index 1d88b113d44c..1282dfc70b13 100644
--- a/java/org/apache/tomcat/util/buf/Asn1Parser.java
+++ b/java/org/apache/tomcat/util/buf/Asn1Parser.java
@@ -17,6 +17,7 @@
package org.apache.tomcat.util.buf;
import java.math.BigInteger;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayDeque;
import java.util.Deque;
@@ -36,6 +37,7 @@ public class Asn1Parser {
public static final int TAG_OCTET_STRING = 0x04;
public static final int TAG_NULL = 0x05;
public static final int TAG_OID = 0x06;
+ public static final int TAG_UTF8STRING = 0x0C;
public static final int TAG_SEQUENCE = 0x30;
public static final int TAG_ATTRIBUTE_BASE = 0xA0;
@@ -149,6 +151,12 @@ public byte[] parseOIDAsBytes() {
}
+ public String parseUTF8String() {
+ byte[] val = parseBytes(TAG_UTF8STRING);
+ return new String(val, StandardCharsets.UTF_8);
+ }
+
+
public byte[] parseAttributeAsBytes(int index) {
return parseBytes(TAG_ATTRIBUTE_BASE + index);
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 76fa899f246d..70bb21df9d05 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -149,6 +149,9 @@
Add periodic checking for WebDAV locks expiration. (remm)
+
+ Extend Asn1Parser
to parse UTF8String
s. (michaelo)
+