Example #1
0
  public static void main(String[] args) throws Exception {

    s = new String("This is just a test!");

    byte[] asciiBytes = s.getBytes("ASCII");
    byte[] utf8Bytes = s.getBytes("UTF8");
    byte[] iso8859_1Bytes = s.getBytes("ISO-8859-1");

    byte[] unicodeBytes = s.getBytes("UnicodeBigUnmarked");
    byte[] unicodeBytes2 = getBytes(s);

    // test that unicode encoder is the correct one
    if (!equalBytes(unicodeBytes, unicodeBytes2))
      throw new Exception("Problem with unicode encoder being used.");

    FileOutputStream fout = new FileOutputStream(fileName);
    DerOutputStream derOut = new DerOutputStream();

    System.out.println("Writing Java string out as various DER" + " encoded Strings now...");
    derOut.putUTF8String(s);
    derOut.putPrintableString(s);
    derOut.putIA5String(s);
    derOut.putT61String(s);
    derOut.putBMPString(s);

    derOut.derEncode(fout);
    fout.close();

    FileInputStream fis = new FileInputStream(fileName);
    byte[] data = new byte[fis.available()];
    fis.read(data);
    DerInputStream derIn = new DerInputStream(data);
    fis.close();

    System.out.println("\nReading Strings back as DerValue's...\n");

    DerValue der;

    der = derIn.getDerValue();
    verifyDER("UTF8", der, DerValue.tag_UTF8String, utf8Bytes);

    der = derIn.getDerValue();
    verifyDER("Printable", der, DerValue.tag_PrintableString, asciiBytes);

    der = derIn.getDerValue();
    verifyDER("IA5", der, DerValue.tag_IA5String, asciiBytes);

    der = derIn.getDerValue();
    verifyDER("T61", der, DerValue.tag_T61String, iso8859_1Bytes);

    der = derIn.getDerValue();
    verifyDER("BMP", der, DerValue.tag_BMPString, unicodeBytes);

    if (derIn.available() > 0) throw new Exception("DerInputStream has extra data!");

    derIn.reset();

    System.out.println("Reading Strings back as Strings...\n");

    verifyString("UTF8", derIn.getUTF8String());
    verifyString("Printable", derIn.getPrintableString());
    verifyString("IA5", derIn.getIA5String());
    verifyString("T61", derIn.getT61String());
    verifyString("BMP", derIn.getBMPString());
  }