mirrored from https://www.bouncycastle.org/repositories/bc-java
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
import java.io.IOException;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.X500NameBuilder;
import org.bouncycastle.asn1.x500.style.BCStyle;
public class TestParseDN {
public static void main(String[] arg) throws IOException {
String cn = "=^_^=";
String dn = "CN=" + cn;
X500Principal principal = new X500Principal(dn);
System.out.println("Using X500Principal: " + principal.getName());
X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE);
builder.addRDN(BCStyle.CN, cn);
X500Name x500Name = builder.build();
System.out.println("Using X500NameBuilder: " + x500Name.toString());
X500Name x500 = new X500Name(dn);
System.out.println("Using X500Name: " + x500.toString());
}
}
The output is (BC 1.83):
Using X500Principal: CN=\=^_^\=
Using X500NameBuilder: CN=\=^_^\=
Exception in thread "main" java.lang.IllegalArgumentException: badly formatted directory string
at org.bouncycastle.asn1.x500.style.IETFUtils.nextToken(IETFUtils.java:218)
at org.bouncycastle.asn1.x500.style.IETFUtils.addRDN(IETFUtils.java:191)
at org.bouncycastle.asn1.x500.style.IETFUtils.addRDNs(IETFUtils.java:154)
at org.bouncycastle.asn1.x500.style.IETFUtils.rDNsFromString(IETFUtils.java:137)
at org.bouncycastle.asn1.x500.style.BCStyle.fromString(BCStyle.java:349)
at org.bouncycastle.asn1.x500.X500Name.<init>(X500Name.java:161)
at org.bouncycastle.asn1.x500.X500Name.<init>(X500Name.java:154)
at test.TestParseDN.main(TestParseDN.java:27)
With String cn = "\\=^_^\\="; X500NameBuilder parsing is incorrect:
Using X500Principal: CN=\=^_^\=
Using X500NameBuilder: CN=\=^_^\\\=
Using X500Name: CN=\=^_^\=
Metadata
Metadata
Assignees
Labels
No labels