![JAR search and dependency download from the Maven repository](/logo.png)
nl.open.jwtdependency.org.bouncycastle.asn1.test.OIDTest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-jwt-nodependencies Show documentation
Show all versions of java-jwt-nodependencies Show documentation
This is a drop in replacement for the auth0 java-jwt library (see https://github.com/auth0/java-jwt). This jar makes sure there are no external dependencies (e.g. fasterXml, Apacha Commons) needed. This is useful when deploying to an application server (e.g. tomcat with Alfreso or Pega).
The newest version!
package org.bouncycastle.asn1.test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1OutputStream;
import org.bouncycastle.asn1.DEROutputStream;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.util.test.SimpleTest;
/**
* X.690 test example
*/
public class OIDTest
extends SimpleTest
{
byte[] req1 = Hex.decode("0603813403");
byte[] req2 = Hex.decode("06082A36FFFFFFDD6311");
public String getName()
{
return "OID";
}
private void recodeCheck(
String oid,
byte[] enc)
throws IOException
{
ByteArrayInputStream bIn = new ByteArrayInputStream(enc);
ASN1InputStream aIn = new ASN1InputStream(bIn);
ASN1ObjectIdentifier o = new ASN1ObjectIdentifier(oid);
ASN1ObjectIdentifier encO = (ASN1ObjectIdentifier)aIn.readObject();
if (!o.equals(encO))
{
fail("oid ID didn't match", o, encO);
}
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
DEROutputStream dOut = new DEROutputStream(bOut);
dOut.writeObject(o);
byte[] bytes = bOut.toByteArray();
if (bytes.length != enc.length)
{
fail("failed length test");
}
for (int i = 0; i != enc.length; i++)
{
if (bytes[i] != enc[i])
{
fail("failed comparison test", new String(Hex.encode(enc)), new String(Hex.encode(bytes)));
}
}
}
private void validOidCheck(
String oid)
throws IOException
{
ASN1ObjectIdentifier o = new ASN1ObjectIdentifier(oid);
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
ASN1OutputStream aOut = new ASN1OutputStream(bOut);
aOut.writeObject(o);
ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray());
ASN1InputStream aIn = new ASN1InputStream(bIn);
o = (ASN1ObjectIdentifier)aIn.readObject();
if (!o.getId().equals(oid))
{
fail("failed oid check for " + oid);
}
}
private void invalidOidCheck(
String oid)
{
try
{
new ASN1ObjectIdentifier(oid);
fail("failed to catch bad oid: " + oid);
}
catch (IllegalArgumentException e)
{
// expected
}
}
private void branchCheck(String stem, String branch)
{
String expected = stem + "." + branch;
String actual = new ASN1ObjectIdentifier(stem).branch(branch).getId();
if (!expected.equals(actual))
{
fail("failed 'branch' check for " + stem + "/" + branch);
}
}
private void onCheck(String stem, String test, boolean expected)
{
if (expected != new ASN1ObjectIdentifier(test).on(new ASN1ObjectIdentifier(stem)))
{
fail("failed 'on' check for " + stem + "/" + test);
}
}
public void performTest()
throws IOException
{
recodeCheck("2.100.3", req1);
recodeCheck("1.2.54.34359733987.17", req2);
validOidCheck(PKCSObjectIdentifiers.pkcs_9_at_contentType.getId());
validOidCheck("0.1");
validOidCheck("1.1.127.32512.8323072.2130706432.545460846592.139637976727552.35747322042253312.9151314442816847872");
validOidCheck("1.2.123.12345678901.1.1.1");
validOidCheck("2.25.196556539987194312349856245628873852187.1");
invalidOidCheck("0");
invalidOidCheck("1");
invalidOidCheck("2");
invalidOidCheck("3.1");
invalidOidCheck("..1");
invalidOidCheck("192.168.1.1");
invalidOidCheck(".123452");
invalidOidCheck("1.");
invalidOidCheck("1.345.23.34..234");
invalidOidCheck("1.345.23.34.234.");
invalidOidCheck(".12.345.77.234");
invalidOidCheck(".12.345.77.234.");
invalidOidCheck("1.2.3.4.A.5");
invalidOidCheck("1,2");
branchCheck("1.1", "2.2");
onCheck("1.1", "1.1", false);
onCheck("1.1", "1.2", false);
onCheck("1.1", "1.2.1", false);
onCheck("1.1", "2.1", false);
onCheck("1.1", "1.11", false);
onCheck("1.12", "1.1.2", false);
onCheck("1.1", "1.1.1", true);
onCheck("1.1", "1.1.2", true);
}
public static void main(
String[] args)
{
runTest(new OIDTest());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy