Example usage for org.bouncycastle.asn1 DERUTF8String getEncoded

List of usage examples for org.bouncycastle.asn1 DERUTF8String getEncoded

Introduction

In this page you can find the example usage for org.bouncycastle.asn1 DERUTF8String getEncoded.

Prototype

public byte[] getEncoded() throws IOException 

Source Link

Document

Return the default BER or DER encoding for this object.

Usage

From source file:de.fichtelmax.asn1.ber.BERParserTest.java

License:Open Source License

@Test
public void utf8String() throws IOException {
    String text = "something";
    DERUTF8String utf8String = new DERUTF8String(text);

    BERObject berObject = cut.parse(utf8String.getEncoded());

    assertThat(berObject.getValue(), is(equalTo(text.getBytes("UTF-8"))));
}

From source file:de.fichtelmax.asn1.ber.types.BERSequenceTest.java

License:Open Source License

@Test
public void create() throws IOException {
    DERUTF8String string1 = new DERUTF8String("some string");
    DERUTF8String string2 = new DERUTF8String("some other string");

    byte[] bcEncoded = new DERSequence(new ASN1Encodable[] { string1, string2 }).getEncoded();

    cut = new BERSequence(new byte[] { bcEncoded[1] }, Arrays.copyOfRange(bcEncoded, 2, bcEncoded.length));

    assertThat(cut.getEncoded(), is(equalTo(bcEncoded)));

    Iterator<BERObject> iterator = cut.iterator();

    assertThat(iterator.next().getEncoded(), is(equalTo(string1.getEncoded())));
    assertThat(iterator.next().getEncoded(), is(equalTo(string2.getEncoded())));
    assertThat(iterator.hasNext(), is(false));
}

From source file:de.fichtelmax.asn1.ber.types.BERSetTest.java

License:Open Source License

@Test
public void create() throws IOException {
    DERUTF8String string1 = new DERUTF8String("some string");
    DERUTF8String string2 = new DERUTF8String("some other string");

    byte[] bcEncoded = new DERSet(new ASN1Encodable[] { string1, string2 }).getEncoded();

    cut = new BERSet(new byte[] { bcEncoded[1] }, Arrays.copyOfRange(bcEncoded, 2, bcEncoded.length));

    assertThat(cut.getEncoded(), is(equalTo(bcEncoded)));

    Iterator<BERObject> iterator = cut.iterator();

    assertThat(iterator.next().getEncoded(), is(equalTo(string1.getEncoded())));
    assertThat(iterator.next().getEncoded(), is(equalTo(string2.getEncoded())));
    assertThat(iterator.hasNext(), is(false));
}

From source file:de.fichtelmax.asn1.ber.types.UTF8StringTest.java

License:Open Source License

@Test
public void create() throws IOException {
    String string = "Test string including strange chars   ";
    DERUTF8String bcString = new DERUTF8String(string);

    byte[] bcEncoded = bcString.getEncoded();
    byte[] bcValue = Arrays.copyOfRange(bcEncoded, 2, bcEncoded.length);

    cut = new UTF8String(new byte[] { bcEncoded[1] }, bcValue);

    assertThat(cut.getString(), is(equalTo(string)));
}

From source file:org.cesecore.util.CertToolsTest.java

License:Open Source License

@Test
public void test02StringToBCDNString() throws Exception {
    log.trace(">test02StringToBCDNString()");

    // We try to examine the general case and som special cases, which we
    // want to be able to handle
    String dn1 = "C=SE, O=AnaTom, CN=foo";
    assertEquals(CertTools.stringToBCDNString(dn1), "CN=foo,O=AnaTom,C=SE");

    String dn2 = "C=SE, O=AnaTom, CN=cn";
    assertEquals(CertTools.stringToBCDNString(dn2), "CN=cn,O=AnaTom,C=SE");

    String dn3 = "CN=foo, O=PrimeKey, C=SE";
    assertEquals(CertTools.stringToBCDNString(dn3), "CN=foo,O=PrimeKey,C=SE");

    String dn4 = "cn=foo, o=PrimeKey, c=SE";
    assertEquals(CertTools.stringToBCDNString(dn4), "CN=foo,O=PrimeKey,C=SE");

    String dn5 = "cn=foo,o=PrimeKey,c=SE";
    assertEquals(CertTools.stringToBCDNString(dn5), "CN=foo,O=PrimeKey,C=SE");

    String dn6 = "C=SE, O=AnaTom, CN=CN";
    assertEquals(CertTools.stringToBCDNString(dn6), "CN=CN,O=AnaTom,C=SE");

    String dn7 = "C=CN, O=AnaTom, CN=foo";
    assertEquals(CertTools.stringToBCDNString(dn7), "CN=foo,O=AnaTom,C=CN");

    String dn8 = "C=cn, O=AnaTom, CN=foo";
    assertEquals(CertTools.stringToBCDNString(dn8), "CN=foo,O=AnaTom,C=cn");

    String dn9 = "CN=foo, O=PrimeKey, C=CN";
    assertEquals(CertTools.stringToBCDNString(dn9), "CN=foo,O=PrimeKey,C=CN");

    String dn10 = "CN=foo, O=PrimeKey, C=cn";
    assertEquals(CertTools.stringToBCDNString(dn10), "CN=foo,O=PrimeKey,C=cn");

    String dn11 = "CN=foo, O=CN, C=CN";
    assertEquals(CertTools.stringToBCDNString(dn11), "CN=foo,O=CN,C=CN");

    String dn12 = "O=PrimeKey,C=SE,CN=CN";
    assertEquals(CertTools.stringToBCDNString(dn12), "CN=CN,O=PrimeKey,C=SE");

    String dn13 = "O=PrimeKey,C=SE,CN=CN, OU=FooOU";
    assertEquals(CertTools.stringToBCDNString(dn13), "CN=CN,OU=FooOU,O=PrimeKey,C=SE");

    String dn14 = "O=PrimeKey,C=CN,CN=CN, OU=FooOU";
    assertEquals(CertTools.stringToBCDNString(dn14), "CN=CN,OU=FooOU,O=PrimeKey,C=CN");

    String dn15 = "O=PrimeKey,C=CN,CN=cn, OU=FooOU";
    assertEquals(CertTools.stringToBCDNString(dn15), "CN=cn,OU=FooOU,O=PrimeKey,C=CN");

    String dn16 = "CN=foo, CN=bar,O=CN, C=CN";
    assertEquals(CertTools.stringToBCDNString(dn16), "CN=foo,CN=bar,O=CN,C=CN");

    String dn17 = "CN=foo,CN=bar, O=CN, O=C, C=CN";
    assertEquals(CertTools.stringToBCDNString(dn17), "CN=foo,CN=bar,O=CN,O=C,C=CN");

    String dn18 = "cn=jean,cn=EJBCA,dc=home,dc=jean";
    assertEquals(CertTools.stringToBCDNString(dn18), "CN=jean,CN=EJBCA,DC=home,DC=jean");

    String dn19 = "cn=bar, cn=foo,o=oo, O=EJBCA,DC=DC2, dc=dc1, C=SE";
    assertEquals(CertTools.stringToBCDNString(dn19), "CN=bar,CN=foo,O=oo,O=EJBCA,DC=DC2,DC=dc1,C=SE");

    String dn20 = " CN=\"foo, OU=bar\",  O=baz\\\\\\, quux,C=SE ";
    // BC always escapes with backslash, it doesn't use quotes.
    assertEquals("Conversion of: " + dn20, "CN=foo\\, OU\\=bar,O=baz\\\\\\, quux,C=SE",
            CertTools.stringToBCDNString(dn20));

    String dn21 = "C=SE,O=Foo\\, Inc, OU=Foo\\, Dep, CN=Foo\\'";
    String bcdn21 = CertTools.stringToBCDNString(dn21);
    assertEquals(bcdn21, "CN=Foo\',OU=Foo\\, Dep,O=Foo\\, Inc,C=SE");
    // it is allowed to escape ,
    assertEquals(StringTools.strip(bcdn21), "CN=Foo',OU=Foo\\, Dep,O=Foo\\, Inc,C=SE");

    String dn22 = "C=SE,O=Foo\\, Inc, OU=Foo, Dep, CN=Foo'";
    String bcdn22 = CertTools.stringToBCDNString(dn22);
    assertEquals(bcdn22, "CN=Foo',OU=Foo,O=Foo\\, Inc,C=SE");
    assertEquals(StringTools.strip(bcdn22), "CN=Foo',OU=Foo,O=Foo\\, Inc,C=SE");

    String dn23 = "C=SE,O=Foo, OU=FooOU, CN=Foo, DN=qualf";
    String bcdn23 = CertTools.stringToBCDNString(dn23);
    assertEquals(bcdn23, "DN=qualf,CN=Foo,OU=FooOU,O=Foo,C=SE");
    assertEquals(StringTools.strip(bcdn23), "DN=qualf,CN=Foo,OU=FooOU,O=Foo,C=SE");

    String dn24 = "telephonenumber=08555-666,businesscategory=Surf boards,postaladdress=Stockholm,postalcode=11122,CN=foo,CN=bar, O=CN, O=C, C=CN";
    assertEquals(CertTools.stringToBCDNString(dn24),
            "TelephoneNumber=08555-666,PostalAddress=Stockholm,BusinessCategory=Surf boards,PostalCode=11122,CN=foo,CN=bar,O=CN,O=C,C=CN");

    // This isn't a legal SubjectDN. Since legacy BC did not support multivalues, we assume that the user meant \+.
    String dn25 = "CN=user+name, C=CN";
    assertEquals("CN=user\\+name,C=CN", CertTools.stringToBCDNString(dn25));

    String dn26 = "CN=user\\+name, C=CN";
    assertEquals("CN=user\\+name,C=CN", CertTools.stringToBCDNString(dn26));

    String dn27 = "CN=test123456, O=\\\"foo+b\\+ar\\, C=SE\\\"";
    assertEquals("CN=test123456,O=\\\"foo\\+b\\+ar\\, C\\=SE\\\"", CertTools.stringToBCDNString(dn27));
    String dn27_1 = "CN=test123456, O=\\\"foo+b\\+ar\\, C=SE\\";
    assertEquals("CN=test123456,O=\\\"foo\\+b\\+ar\\, C\\=SE\\\\", CertTools.stringToBCDNString(dn27_1));

    String dn28 = "jurisdictionCountry=SE,jurisdictionState=Stockholm,SURNAME=Json,=fff,CN=oid,jurisdictionLocality=Solna,SN=12345,unstructuredname=foo.bar.com,unstructuredaddress=1.2.3.4,NAME=name,C=se";
    assertEquals(//w  w  w .  j  a v a 2s. co m
            "JurisdictionCountry=SE,JurisdictionState=Stockholm,JurisdictionLocality=Solna,unstructuredAddress=1.2.3.4,unstructuredName=foo.bar.com,CN=oid,Name=name,SN=12345,SURNAME=Json,C=se",
            CertTools.stringToBCDNString(dn28));

    String dn29 = "CN=hexencoded SN,SN=1234";
    assertEquals("CN=hexencoded SN,SN=1234", CertTools.stringToBCDNString(dn29));
    String dn30 = "CN=hexencoded SN,SN=\\#CNJB";
    assertEquals("CN=hexencoded SN,SN=\\#CNJB", CertTools.stringToBCDNString(dn30));
    DERUTF8String str = new DERUTF8String("foo");
    String hex = new String(Hex.encode(str.getEncoded()));
    String dn31 = "CN=hexencoded SN,SN=#" + hex;
    assertEquals("CN=hexencoded SN,SN=foo", CertTools.stringToBCDNString(dn31));

}