Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.bouncycastle.asn1.test;
  
  
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"oencO);
         }
         
         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.lengthi++)
         {
             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 stemString 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 stemString testboolean 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");
        recodeCheck("1.2.54.34359733987.17");
        
        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());
    }
New to GrepCode? Check out our FAQ X