Skip to content

Commit

Permalink
Use tryFromID to check for OID string
Browse files Browse the repository at this point in the history
  • Loading branch information
peterdettman committed Mar 12, 2024
1 parent 3790993 commit 6dc716d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
20 changes: 10 additions & 10 deletions core/src/main/java/org/bouncycastle/asn1/x500/style/IETFUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -272,26 +272,26 @@ public static String[] findAttrNamesForOID(
return aliases;
}

public static ASN1ObjectIdentifier decodeAttrName(
String name,
Hashtable lookUp)
public static ASN1ObjectIdentifier decodeAttrName(String name, Hashtable lookUp)
{
if (Strings.toUpperCase(name).startsWith("OID."))
if (name.regionMatches(true, 0, "OID.", 0, 4))
{
return new ASN1ObjectIdentifier(name.substring(4));
}
else if (name.charAt(0) >= '0' && name.charAt(0) <= '9')

ASN1ObjectIdentifier oid = ASN1ObjectIdentifier.tryFromID(name);
if (oid != null)
{
return new ASN1ObjectIdentifier(name);
return oid;
}

ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier)lookUp.get(Strings.toLowerCase(name));
if (oid == null)
oid = (ASN1ObjectIdentifier)lookUp.get(Strings.toLowerCase(name));
if (oid != null)
{
throw new IllegalArgumentException("Unknown object id - " + name + " - passed to distinguished name");
return oid;
}

return oid;
throw new IllegalArgumentException("Unknown object id - " + name + " - passed to distinguished name");
}

public static ASN1Encodable valueFromHexString(
Expand Down
21 changes: 11 additions & 10 deletions core/src/main/java/org/bouncycastle/asn1/x509/X509Name.java
Original file line number Diff line number Diff line change
Expand Up @@ -660,27 +660,28 @@ public X509Name(
this(reverse, lookUp, dirName, new X509DefaultEntryConverter());
}

private ASN1ObjectIdentifier decodeOID(
String name,
Hashtable lookUp)
private ASN1ObjectIdentifier decodeOID(String name, Hashtable lookUp)
{
name = name.trim();
if (Strings.toUpperCase(name).startsWith("OID."))

if (name.regionMatches(true, 0, "OID.", 0, 4))
{
return new ASN1ObjectIdentifier(name.substring(4));
}
else if (name.charAt(0) >= '0' && name.charAt(0) <= '9')

ASN1ObjectIdentifier oid = ASN1ObjectIdentifier.tryFromID(name);
if (oid != null)
{
return new ASN1ObjectIdentifier(name);
return oid;
}

ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier)lookUp.get(Strings.toLowerCase(name));
if (oid == null)
oid = (ASN1ObjectIdentifier)lookUp.get(Strings.toLowerCase(name));
if (oid != null)
{
throw new IllegalArgumentException("Unknown object id - " + name + " - passed to distinguished name");
return oid;
}

return oid;
throw new IllegalArgumentException("Unknown object id - " + name + " - passed to distinguished name");
}

private String unescape(String elt)
Expand Down

0 comments on commit 6dc716d

Please sign in to comment.